Google v. Oracle: Will Software Be Free?
Referred to as “the copyright case of the century,”1 the Supreme Court could determine the fate of software protection in Google v. Oracle, namely that of Java. At its core, the case asks whether software programmers may copy functional names present in software code (known as a software interface; e.g., the “print” function) so long as they do not copy the underlying source code implementing the function. Indeed, this issue the Court will address relates to the following two questions: 1) whether copyright protections extend to a software interface; and 2) whether Google’s use of a software interface in the context of creating a new computer program constitutes fair use. Deciding this issue could influence how future software and other computer technology develops. Google has already submitted its brief, and Oracle is expected to submit its brief on February 12, 2020. This article breaks down the arguments likely to be heard by the Supreme Court.
Java is the one of the most popular computer languages. Originally developed by Sun Microsystems (“Sun”) in 1996, the Java platform grew in popularity with developers in part because of its “write once, run anywhere” ability.2 This ability allowed a programmer to write a Java program on a computer using one operating system (e.g., IBM using DOS) and run that program on a computer using a completely different operating system (e.g., Apple Macintosh). But to function properly, the Java language requires the use of the Java Application Programming Interface (“Java API”), a library of pre-written functions organized into packages which includes declaration code and implementing code.3 Attempting to obtain wide adoption of its new Java programming language by computer programmers, Sun emphasized the Java API’s preexisting code as an easy and practical way to further develop software.4
Google wanted to use the Java programming language in developing its Android operating system for use in mobile phones. Google, therefore, entered into negotiations with Sun for a Java license, but no deal was reached. Instead, Google used the declaration code and integrated it into Android on the theory that the declaration code was not copyrightable.5 Given the constrained computing power of a mobile phone, as compared to a desktop computer, Google did not use Java’s implementing code for any Java declaration.6 Instead, Google created its own implementing code for use in Android’s mobile phone operating system.7 With respect to the Java declaration codes embedded in Android, only a small portion of these declarations was used.8 At the time of its release in 2007, Android was praised by Sun as a very exciting use of Java.9 However, in 2010, Sun was acquired by Oracle America, Inc. who began enforcing the Java licensing provisions and, in particular, sued Google for copyright infringement due to use of Java APIs in Android devices. The Court of Appeals for the Federal Circuit found Google to have infringed Oracle’s copyright in Java and to have no defense of fair use.
Whether copyright protection extends to a software interface
The first issue at the Supreme Court is whether Java API is eligible for copyright protection. Typically, computer programs can obtain copyright protections as a literary work. However, the law states “an author cannot claim a copyright in an idea, system, or method indirectly, by copyrighting one of only a few possible means of expression” because that would grant the author exclusive use of “the idea, system or method itself.”10 This is referred to as the Merger Doctrine, i.e., where the idea (which is not copyrightable) merges with its expression (which is otherwise copyrightable).
The question before the Court is whether the Merger Doctrine should apply to Java APIs because the APIs are purely functional and can be written in only one way for the computer to be able to understand calls by Java developers. Oracle will likely rely on the Federal Circuit’s decision on this point and argue the Merger Doctrine should not apply. According to the Federal Circuit, computer programs are copyrightable as literary works as long as they “incorporate authorship in the programmer’s expression of original ideas, as distinguished from the ideas themselves.”11 Oracle may again rely on the Federal Circuit’s decision here which stated “Java API packages are . . . expressive and could have been written and organized in any number of ways to achieve the same functions,” indicating that Java API was creative and therefore copyrightable.12 Indeed, the “unique arrangement of computer program expression . . . does not merge with the process so long as alternate expressions are available.”13
Whether Google’s use of software interface in the context of creating a new computer program constitutes fair use
If the Court holds that the Java APIs are copyrightable, the next question will be whether Google’s inclusion of declaration codes constitutes fair use. A fair use determination utilizes a four-factor test: 1) the purpose and character of use; 2) the nature of the copyrighted work; 3) the amount and substantiality of the portion used in relation to the copyrighted work as a whole; 4) the effect of use upon the potential market for or the value of the copyright.14
This is a highly fact-specific test and although the Federal Circuit found no fair use, the Supreme Court could come to a different decision. Facts such as: (i) only a minuscule portion of Java API was used, (ii) a massive amount of new code was created by Google, and (iii) the declaration codes were highly functional may be taken into account in a fair use analysis.
The Supreme Court’s decision – expected this Summer – will likely have a significant effect on software development. For example, if the Court affirms the Federal Circuit, the result will be that all software developers must either (i) pay for a license to use both Java’s declaration and implementing codes or (ii) use a declaration code that does not rely on Java API. This could change how many software applications (i.e., apps) are developed and whether or not apps would be accessible to each different platform. In fact, Google specifically chose to use the declarations from Java API because the difficulty of starting from scratch would stifle new software development as developers would have to learn new declarations for every type of hardware. It may also mean that the cost of software will significantly increase to compensate either for Oracle’s licensing fee or to pay for additional research and development in creating new APIs for every platform. However, if the Court reverses the decision, then software developers may lose what little protections they have, resulting in less software innovation and/or an increase in competition.
1 Stanford Law Professor Mark Lemley, “Supreme Court, Finally, Takes Up ‘Google v. Oracle’,” available online.
2 Oracle America, Inc. v. Google Inc., 750 F.3d 1339, 1348 (Fed. Cir. 2014).
3 Id. at 1349.
4 Writ of Certiorari, Google v. Oracle, at 3.
5 Oracle America, Inc. v. Google Inc., 2016 WL 3181206, *7 (N.D. Cal. 2016).
6 Oracle America, Inc. v. Google Inc., 886 F.3d 1179, 1200 (Fed. Cir. 2018).
8 Android used only about 11,500 lines of code from Java, which is less than 0.5% of Java’s SE Libraries and only about 0.1% of Android’s total code.
9 Brief for Petitioner, Google v. Oracle, at 3.
10 Brief for Petitioner, Google v. Oracle, at 18 (referencing 17 U.S.C. §102(a)).
11 Oracle America, Inc. v. Google Inc., 750 F.3d 1339, 1355 (Fed. Cir. 2014).
12 Id. at 1358-59.
13 Oracle America, Inc. v. Google Inc., 750 F.3d 1339, 1360 (Fed. Cir. 2014) (citing Atari Games Corp. v. Nintendo of America Inc., 975 F.2d 832 (Fed. Cir. 1992)).
14 Oracle America, Inc. v. Google Inc., 886 F.3d 1179, 1190-91 (Fed. Cir. 2018)