The US Supreme Court on April 5 ruled that Google did not act improperly when it copied thousands of lines of code from Oracle’s Java SE platform into its Android OS’s code. The opinion has significant implications for copyright and fair use, so it’s worth exploring in detail. Here’s a breakdown of the ruling.
- The copied code was fair use: Even though 11,500 lines of code were copied into Android code (which no longer exist in the OS’s code), the court held that the way Google used the code grants it “fair use” protections, meaning it was legal and appropriate.
- Negative consequences of copyright: The court worked on the assumption that Oracle’s code was copyrightable, but said that “Congress and the courts have limited the scope of copyright protection to ensure that a copyright holder’s monopoly does not harm the public interest,” a test they ruled Oracle’s suit failed. “It can focus on the legitimate need to provide incentives to produce copyrighted material while examining the extent to which yet further protection creates unrelated or illegitimate harms in other markets or to the development of other products,” the ruling said.
- Computer programs and monopolies: While code is copyrightable, the justices said that “Computer programs differ to some extent from many other copyrightable works because computer programs always serve a functional purpose. Because of these differences, fair use has an important role to play for computer programs by providing a context based check that keeps the copyright monopoly afforded to computer programs within its lawful bounds.” In other words, fair use is particularly useful from an antitrust perspective in programming.
- Google’s use was transformative: A useful consideration when deciding if a work is “fair use” of copyrighted content, it is decided if the work “transformed” the original substantially. The court argued that this was the case with Google’s use of Oracle’s code, as it used these lines of code in a completely different environment, i.e., a mobile OS. The fact that the use was commercial in nature does not outweigh the “inherently transformative role that the reimplementation played in the new Android system,” the court said.
- The code was a small portion of overall work: While the number of lines of code Google copied seems high — about 11,500 lines — the court said that this was a small portion of the overall Java SE codebase. “In considering [the factor of] “the amount and substantiality of the portion used” in this case, the 11,500 lines of code should be viewed as one small part of the considerably greater whole,” the opinion said. This component of the opinion is among the most important, as it could protect a lot of code reuse that might come under litigation.
- Purpose of copying: The court ruled that Google had a legitimate reason to copy the code, as it allowed programmers used to Java to operate in a new environment. “Google copied these lines not because of their creativity or beauty but because they would allow programmers to bring their skills to a new smartphone computing environment,” the opinion said, adding that this factor is important to consider when deciding fair use cases. “It copied them because programmers had already learned to work with the Sun Java API’s system, and it would have been difficult, perhaps prohibitively so, to attract programmers to build its Android smartphone system without them.”
- Java not a substitute: Another key aspect of the ruling was that Java and Android are two separate types of platforms, and as such Google’s reuse did not render Android a “market substitute” for Java. In fact, the court said, “Java SE’s copyright holder would benefit from the reimplementation of its interface into a different market.” The court also said that Google did something that Java’s copyright holders weren’t able to do, and that was not the search giant’s fault: “Taken together, the evidence showed that Sun’s mobile phone business was declining, while the market increasingly demanded a new form of smartphone technology that Sun was never able to offer.”
- Traditional copyright rules hard to apply: While US laws have provided — as early as the 1970s — for copyright protection to extend to computer software, the court held that “The fact that computer programs are primarily functional makes it difficult to apply traditional copyright concepts in that technological world.” The ruling concluded, “We do not overturn or modify our earlier cases involving fair use—cases, for example, that involve “knockoff ” products, journalistic writings, and parodies. Rather, we here recognize that application of a copyright doctrine such as fair use has long proved a cooperative effort of Legislatures and courts, and that Congress, in our view, intended that it so continue.”
The kicker: “Applying the principles of the Court’s precedents and Congress’ codification of the fair use doctrine to the distinct copyrighted work here, the Court concludes that Google’s copying of the API to reimplement a user interface, taking only what was needed to allow users to put their accrued talents to work in a new and transformative program, constituted a fair use of that material as a matter of law,” the court concluded.
Briefly, what does this mean?
The ruling is far from a license to freely reuse copyrighted code. However, it adds a significant amount of nuance to the jurisprudence around fair use for software. Future litigation in the US on code reuse can now rely on the statutory and principle-based tests that the court has established: How much of the code was reused? What impact does the reuse have on the creator’s market? Why was the code reused? Was the reuse transformative?
A lot of reuse and theft may well continue to be punished, but will companies think twice before aggressively pursuing code theft cases? Will programmers be able to reuse code from other platforms more often? Only time will tell. But this much is clear: whether or not the implications of this opinion are harmful or beneficial for computer programming per se, they are useful for the jurisprudence of computer programming.