Judge Alsup has delivered his verdict on the issue of whether or not the API packages involved in Oracle's claim of copyright infringement against Google were copyrightable. His ruling is that in this specific case the elements replicated by Google were "free for all to use under the Copyright Act."
Judge Alsup's conclusion:
Oracle’s claim based on Google’s copying of the 37 API packages, including their structure, sequence and organization isDISMISSED
comes at the end of a 41-page document that has involved a great deal of research and effort, both in terms of legal precedent and in terms of computer science.
The Summary of Ruling section states the principle on which the judgement has been made in a clear and understandable manner:
So long as the specific code used to implement a method is different, anyone is free under the Copyright Act to write his or her own code to carry out exactly the same function or specification of any methods used in the Java API. It does not matter that the declaration or method header lines are identical. Under the rules of Java, they must be identical to declare a method specifying the same functionality — even when the implementation is different. When there is only one way to express an idea or function, then everyone is free to do so and no one can monopolize that expression. And, while the Android method and class names could have been different from the names of their counterparts in Java and still have worked, copyright protection never extends to names or short phrases as a matter of law.
Later it continues:
But the names are more than just names — they are symbols in a command structure wherein the commands take the form
Each command calls into action a pre-assigned function. The overall name tree, of course, has creative elements but it is also a precise command structure — a utilitarian and functional set of symbols, each to carry out a pre-assigned function. This command structure is a system or method of operation under Section 102(b) of the Copyright Act and, therefore, cannot be copyrighted. Duplication of the command structure is necessary for interoperability.
In a detailed Statement of Findings section we are treated to an overview of Java and Android that wouln't be out of place in a primer on computer programming languages. The following analogy is used to explain the idea of an API:
An API is like a library. Each package is like a bookshelf in the library. Each class is like a book on the shelf. Each method is like a how-to-do-it chapter in a book. Go to the right shelf, select the right book, and open it to the chapter that covers the work you need. As to the 37 packages, the Java and Android libraries are organized in the same basic way but all of the chapters in Android have been written with implementations different from Java but solving the same problems and providing the same functions. Every method and class is specified to carry out precise desired functions and, thus, the “declaration” (or “header”) line of code stating thespecifications must be identical to carry out the given function.
In a subsequent section we are treated to an analysis of Java syntax and to the structure of Java methods being a header followed by a block of code responsible for implementation. Classes are then introduced and the judge even presents some commented code, reminding us that he is no stranger to programming.
U.S. District Judge William Alsup, Northern District of California
Luckily he is no stranger to law either and the second half of his ruling moves on to look at The Development of the Law on the Copyrightability of Computer Programs and their Structure, Sequence and Organization in an equally comprehensive and comprehendable manner,
The verdict doesn't give carte blanche for riding roughshod over software intellectual property. It states:
This order does not hold that Java API packages are free for all to use without license. It does not hold that the structure, sequence and organization of all computer programs may be stolen. Rather, it holds on the specific facts of this case, the particular elements replicated byGoogle were free for all to use under the Copyright Act.
Despite having run expenditure estimated at around $50 million on legal costs, Oracle has already stated its intention to appeal, but Judge Alsup has made the chances of an easy overturn of his ruling difficult. One way in which it does this is in pointing out that by stressing the notion of interoperability Oracle is being self-contradictory.
While Judge Alsup's ruling is unlikely to go unchallenged, and at some point in the future we'l see some further writhing on the part of Oracle, for the time being at least the Android ecosystem is safe. Moreover, thanks to this judge, there is a precedent that should make it more difficult to argue copyright infringement of basic computing constructs in the future.