A decade-long dispute between Google and Oracle regarding Google’s alleged infringement of Oracle’s copyright in its application programming interface (API) will culminate in a Supreme Court decision that will have lasting effects on the copyrightability of software. This post, which summarizes Google’s opening brief, is the first in a series analyzing the briefing and issues in Google v. Oracle.
The case focuses on whether Google impermissibly copied portions of Oracle’s Java API in developing an API that would allow Java-based programs to operate on Google’s Android platform. In Java, sets of code called “methods” can be invoked to perform basic functions within a larger application. An API, which allows developers to invoke methods, includes two parts for each method: the declaring code and the implementing code. The implementing code (or “implementation”) is the code that performs the underlying steps of that method. The declaring code (or “declaration”) identifies a method by name and illustrates the method’s location within the three-level hierarchy Java requires: The declaring code takes the format Java.package.class.method.
A developer uses a “call,” which corresponds to the declaration, to invoke the method. For example, an API for a method for determining a maximum of two numbers may have a declaring code of Java.lang.Math.max, and a call to invoke this method may be Java.lang.Math.max(a, b), where a and b are the two numbers that are to be compared. The parties do not dispute that Oracle has no copyright claim to the calls used by developers to invoke the API, but they do disagree on whether Oracle has a copyright claim to the declarations. See Brief for Petitioner at 22, 25, Google LLC v. Oracle Am., Inc. (No. 18-956), available here.
According to Google, its developers permissibly “reimplemented” the implementation code of certain methods. Id. at 7. Google “reused” the declarations for the reimplemented methods because, according to Google, it had no other choice. Id. at 13-14. Google argues that if its developers had created their own declarations, “Java developers [would have been required] to learn thousands of new calls” to interface with the Android operating system. Id. at 8.
Google presents multiple legal theories to support its argument that copying Oracle’s declaring code is permissible, which can be grouped into two broad categories. First, Google argues that declaring code is not copyrightable under 17 U.S.C. § 102(b). Second, Google argues that even if declaring code were copyrightable, Google’s limited use constitutes fair use.
Google argues that the idea/expression dichotomy, codified in 17 U.S.C. § 102(b), limits the copyright protection of the declarations. Id. at 17-18. Under Google’s theory, a declaration is a “method of operation” unprotected by copyright, and the organizational system of the libraries (evident in the declarations) is an unprotectable system. Id. at 19.
A noncopyrighted call corresponds to the allegedly copyrighted declaration. “If the declaration is changed, the call will fail.” Id. at 20. Google alleges that requiring the declaring code to be different would prevent Java developers from writing applications using the common calls they already know. Id. at 3. Instead, the developers would need to learn new calls to write applications for the Android operating system. Id. at 8.
Google concludes that because the declaring code acts as an “unpickable lock” for which Java developers already use the correct “key” (the call), the declaring code is “the only instruction that performs the function” and is therefore an uncopyrightable method of operation. Id. at 20. Google “had to use the declarations from the Java SE libraries to respond properly to the existing calls that the developers then already knew.” Id. at 31.
Google extends this same argument to apply to both reuse of the declaration code and the structure of the libraries: To reuse the declarations, Google also had to reuse some of the structure of the Java libraries. Id. at 31. Google argues that the “declarations create the hierarchical organization” that Oracle describes as the structure, sequence and organization, and this structure would not exist without the declarations. Id. Google argues that it only uses the library structure by reusing the declarations. Id.
Relying on much of the same reasoning, Google alternatively argues that the merger doctrine prohibits copyright protection of the declaring code. This doctrine “holds that copyright protection does not apply when there are only a few ways to express or embody a particular function.” Id. at 13; see also id. at 18. Google asks the Court to find that the merger doctrine “applies to computer software interfaces designed to invoke the functions of a program.” Id. at 22. As opposed to computer programs, which the Copyright Act defines as “a set of statements or instructions that can be used directly or indirectly in a computer in order to bring about a certain result,” Google argues that an isolated computer instruction can generally only be written in one way. Id. at 23 (quoting 17 U.S.C. § 101). Therefore, Google argues, the merger doctrine prohibits copyright protection from applying to declaration code, an isolated computer instruction. Id.
The Federal Circuit found that the merger doctrine did not apply in this case, as the original developers of the Java API could have chosen different declaring code to perform the same function. Id. at 29. Google argues that in the context of computer software, merger should be evaluated at the time the work is reused, not when the work is first created, as the Federal Circuit found. Id. at 29-30. Google cites the CONTU Report, which explains that reusing specific instructions that “are the only and essential means of accomplishing a given task” does not amount to infringement. Id. at 30.
The main premise of Google’s brief is that API declaring code should not be copyrightable. Its secondary argument—that reuse of the API declaring code is fair use—relies primarily on the procedural posture of the case. Google argues the Federal Circuit had no basis to overturn the jury verdict of fair use. Id. at 34. It further argues that the Federal Circuit relied on a misreading of Ninth Circuit decisions to treat the jury’s verdict as “advisory only” and to “conduct its own factfinding.” Id. at 36.
Throughout the brief, Google cites the general purpose of copyright to promote creativity to support its position. Its fair use argument reiterates these equitable arguments. Google cites the “longstanding practice of software companies and developers of reimplementing declarations and other software interfaces” as evidence that fair use supports Google’s reuse of declaring code. Id. at 37. Regardless of whether the Supreme Court sides with Google or Oracle, this case will have a great impact on the copyrightability of software.
At a minimum, the visibility of this case is alerting software developers that copyright protects more than just a rote copying of an entire software program. The question remains: exactly how much more protection does copyright afford software? As this will be the first Supreme Court case to rule on the copyrightability of the nonliteral elements of computer programs (like sequence, structure, and organization), the answer should become at least a little clearer.