We at the Virtualization Practice have been following the Oracle v. Google case regarding the “fair use” of Java APIs since its inception. For historical perspective, you can read these here, here, and here.
But first, a bit of history. This case started in August 2010, when negotiations between Oracle and Google about licensing Java broke down. The case was assigned to Judge William Alsup, who split it into three distinct phases, these being copyright, patent, and damages. The court stated that there was no infringement of patents, and therefore no damages were awarded to Oracle. With regard to the API copyright infringement, the jury ruled that there was infringement, but it could not reach a decision on Google’s fair use defense. When the court released its decision, Judge Alsup ruled that:
“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.” The ruling found that the structure Oracle was claiming was not copyrightable under section 102(b) of the Copyright Act because it was a “system or method of operation.”
The judge drew upon several major cases in his ruling. These included Baker v. Selden, Whelan v. Jaslow, Computer Associates v. Altai, Gates Rubber v. Bando Chemical Industries, Lotus v. Borland, Hutchins v. Zoll, Feist v. Rural, Johnson Controls v. Phoenix Control Systems, Brown Bag Software v. Symantec Corp., Atari v. Nintendo, Sega v. Accolade, and Sony v. Connectix.
In this case, Alsup, who coincidentally is also a trained programmer, noted:
“…the above summary of the development of the law reveals a trajectory in which enthusiasm for protection of ‘structure, sequence and organization’ peaked in the 1980s, most notably in the Third Circuit’s Whelan decision. That phrase has not been re-used by the Ninth Circuit since Johnson Controls in 1989, a decision affirming preliminary injunction. Since then, the trend of the copyright decisions has been more cautious. This trend has been driven by fidelity to Section 102(b) and recognition of the danger of conferring a monopoly by copyright over what Congress expressly warned should be conferred only by patent. This is not to say that infringement of the structure, sequence and organization is a dead letter. To the contrary, it is not a dead letter. It is to say that the Whelan approach has given way to the Computer Associates approach, including in our own circuit. See Sega Enters., Ltd. v. Accolade, Inc., 977 F.2d 1510, 1525 (9th Cir. 1992); Apple Computer, Inc. v. Microsoft Corp., 35 F.3d 1435, 1445 (9th Cir. 1994).”
This should have been the end of the matter, but of course Oracle appealed. This is when it all went pear shaped, as the Court of Appeals for the Federal Circuit ruled for Oracle, stating that APIs that hold “structure, sequence, and organization” are protected under copyright, thus throwing the entire history of software development and machine interaction into potential chaos.
Of course, Google then appealed to the Supreme Court in October 2014 to hear the case. The Supreme Court made a submission to the Solicitor General for a ruling, who expressed agreement with the Court of Appeals’ decision regarding copyright infringement. This ruling, unfortunately, means that until another case with similar facts reaches the Supreme Court, US law states that APIs are copyrightable. The case was then referred back to the district court for trial on the matter of fair use. This started on May 9, 2016, and was complete on May 26, when the jury found that Android does not infringe on Oracle-owned copyrights because the re-implementation of the Java APIs are protected by fair use.
With the current state of the law, a very dangerous precedent has been set. Now companies can chase other companies for the use of their published APIs. As the tech writer Sarah Jeong put it, “the problem with Oracle v. Google is that everyone actually affected by the case knows what an API is, but the whole affair is being decided by people who don’t.”
To be fair, given the current state of the law, the result is the best that could have been hoped for. But it does now mean that companies that are more litigious in their outlook can chase developers for damages in the courts. When those companies are the size of Google, with the pockets to match the vast legal fees, that is not too much of an issue; they can afford the legal fees for such a case. However, think about this for a moment. Consider PowerShell, which can be used to interact with companies’ APIs, Perl, etc. We could go on. The entirety of cloud automation is built upon the use of APIs to automate the data center.
What to us is the most annoying thing about this entire case is that at its heart, it rests on an erroneous proposition. At the original trial in 2012, former Sun CEO Jonathan Schwartz stated that the Java APIs were open. Oracle, since its acquisition of Sun Microsystems, however, has decided that is no longer the case.
Now, all things being equal, this trial should have been the end of it: a half-baked compromise deal in which APIs were copyright-covered but governed by a very lax interpretation of the doctrine of fair use (due to the original ruling by the appellate judges and a Solicitor General who, by his own admission, knew nothing of the software industry). However, Oracle has already announced its intention to appeal the decision. So, off it goes back to the Court of Appeals for the Federal Circuit. One can only hope that the original Court of Appeals judges recuse themselves from the case, and that those that sit are more knowledgeable about how the software industry works. But I do not hold out much hope.