The Supreme Court is set to hear arguments in Google v. Oracle, a case that could determine the fate of software protection. Referred to as "the copyright case of the century," the Supreme Court could determine the fate 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, the 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 context of creating a new computer program constitutes fair use. Deciding this issue could influence how future software and other computer technology develops. Google and the amici have already submitted their briefs. 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. 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. 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.
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. 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. Instead, Google created its own implementing code for use in Android’s mobile phone operating system. With respect to the Java declaration codes embedded in Android, only a small portion of these declarations were used. At the time of its release in 2007, Android was praised by Sun as a very exciting use of Java. 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.
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." 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." 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. Indeed, the "unique arrangement of computer program expression…does not merge with the process so long as alternate expressions are available."
Whether Google’s use of software interface in the context of creating a new computer program constitutes fair use.
If the Court holds the Java APIs copyrightable, the next question will be whether Google’s inclusion of declaration codes constitutes fair use. A fair use determination utilizes a 4-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; and 4) the effect of use upon the potential market for or the value of the copyright.
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 miniscule 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 which may be taken into account in a fair use analysis.
The Supreme Court's decision will likely have a significant effect on software development. 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 (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 the cost of software will significantly increase to compensate for either 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, software developers may lose what little protections they have, resulting in less software innovation or an increase in competition.