We have just received the news that Judge Alsup ruled against Oracle, finding that APIs are not subject to copyright protection.
In a 41-page opinion (1202 [PDF]), Judge Alsup summarized his ruling as follows:
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.
In his analysis Judge Alsup displays an understanding of programming and of the Java language that is not to be expected from a federal judge. He has also been very thorough in his review of the law. He has done his best to assure that this decision will withstand the anticipated appeal.
It is true that the very same functionality could have been offered in Android
without duplicating the exact command structure used in Java. This could have been done by re-arranging the various methods under different groupings among the various classes and
packages (even if the same names had been used). In this sense, there were many ways to group
the methods yet still duplicate the same range of functionality.
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.
At the same time, the Court has also ruled on the equitable defenses posed by Google (1203 [PDF]). The Court found the defenses of implied license and waiver to be ineffective. At the same time, the Court withheld its determination of the applicability of the defenses of laches and equitable estoppel, stating that it would only decide those issues if the case is remanded on appeal.
Finally, Judge Alsup has called for a case management conference to be held on June 21 to address what further proceedings are needed. (1204 [PDF]) Given this decision and the earlier stipulation with respect to damages, it is likely that this case is now closed.
Oracle has nothing to show for all of its efforts.
For those who have depended on the self-described patent expert for your understanding of this case . . . well, maybe now you will know better than to trust a paid spokesman.
05/31/2012 - 1202 - ORDER RE COPYRIGHTABILITY OF CERTAIN REPLICATED ELEMENTS OF THE JAVA APPLICATION PROGRAMMING INTERFACE by Judge William Alsup [granting 984 Motion for Judgment as a Matter of Law; granting 1007 Motion for Judgment as a Matter of Law; finding as moot 1105 Motion for New Trial]. (whasec, COURT STAFF) (Filed on 5/31/2012) (Entered: 05/31/2012)
05/31/2012 - 1203 - FINDINGS OF FACT AND CONCLUSIONS OF LAW ON EQUITABLE DEFENSES re 1049 Proposed Findings of Fact filed by Oracle America, Inc., 1047 Proposed Findings of Fact filed by Google Inc.. Signed by Judge Alsup on May 31, 2012. (whalc1, COURT STAFF) (Filed on 5/31/2012) (Entered: 05/31/2012)
05/31/2012 - 1204 - NOTICE OF CASE MANAGEMENT CONFERENCE. Signed by Judge Alsup on May 31, 2012. (whalc1, COURT STAFF) (Filed on 5/31/2012) (Entered: 05/31/2012)