Judge William Alsup, who recently finished presiding over the six-week Oracle v. Google trial, ruled that the structure of the Java APIs that Oracle was trying to assert can't be copyrighted.
Alsup, who is a programmer himself, said that only the code and not the "how-to" instructions represented by APIs can be the subject of a copyright claim.
Alsup said that so long as the specific code is different, anyone is free under the Copyright Act to write his or her own code to carry out exactly the same function.
In this case Google had copied names, declaration and header lines, of the Java APIs. Alsup decided that even though Google could have rearranged "the various methods under different groupings among the various classes and packages," the overall name tree is "a utilitarian and functional set of symbols, each to carry out a pre-assigned function... Duplication of the command structure is necessary for interoperability."
The ruling means that Oracle's case is dead in the water. It followed a copyright trial and a patent trial that Oracle also lost.
But the case means a lot more than that as far as legal precidents are concerned. Alsup compared APIs to a library, with each package as a bookshelf in the library.
He said that each class is a book on the shelf, and each method a chapter out of a how-to book.
He said that the Java and Android libraries were organised 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.
Alsup said that the declarations, or headers, "must be identical to carry out the given function."
He added that 97 percent of the source code in the API packages was different and it was only the three percent that overlaps that formed the heart of Oracle's copyright claim.
But since that three percent included packages, methods, and class names and the language demands that the method declaration take a particular form," notes Alsup.
The European Court had made a similar decision saying that programming APIs can't be copyrighted because it would "monopolise ideas."
Oracle has promised to appeal the decision, saying it will continue to support "the broader Java community" of over nine million developers.
According to reports, Google claimed that the court's reliance on "interoperability" ignores the undisputed fact that Google deliberately eliminated interoperability between Android and all other Java platforms.
Google intentionally fragmented Java and broke the "write once, run anywhere promise, Orachle moaned.
To get any copyright royalties from Google, Oracle have to get Alsup's API decision overturned on appeal and then win a new jury trial as well.
If Oracle had won, it could have reversed the open-source process by making users have to pay for Java if they wanted to use it for commercial purposes.
Alsup said that the copied function, called rangeCheck(), was "innocuous and overblown by Oracle." Joshua Bloch, the Google engineer who wrote rangeCheck(), wrote it in his own spare time, as part of a larger block of code which he donated to an open implementation of Java.
Alsup said that it was an innocent and inconsequential instance of copying in the context of a massive number of lines of code.
We doubt that Oracle will get much damages from its use.