U.S. Government Gets It Wrong on Critical Software IP Case (Again)
The U.S. Government has reiterated a legal stance that software developers can use copyright law to prevent competitors from developing innovative products in new markets.
Last week, the Solicitor General of the United States (“SG”) filed an amicus brief advising the Supreme Court not to hear Google’s appeal from the Federal Circuit’s decisions in 2014 and 2018 that the Android application program interface (“API”) infringed Oracle’s copyright in the Java API. This is the second time the SG has advised against Supreme Court review in this case; back in 2015, the SG urged the Court not to hear Google’s appeal from the Federal Circuit’s 2014 decision. See here for a summary of the long-running litigation and here for an analysis of Google’s petition for Supreme Court review.
The SG’s brief is disappointing because of its superficial analysis, its internal contradictions, and its adoption of Oracle’s facile comparison of Java programmers to “admirers” and “fans” of artistic works.
Protectability of the Declarations
In its discussion of the facts of the case, the SG noted that Sun Microsystems, the creator of Java, had developed a library of modular subprograms that programmers could use to write new, more complex programs. Each subprogram, known as a method, consists of a header, referred to as a declaration or declaring code; and a body or implementing code that actually performs the method’s function.
The SG appeared to understand the role of the declarations in the Java library and their relationship to the commands used by Java programmers. A programmer can call a particular method by “typing a command consisting of the name of the method and the appropriate input data.” Significantly, “that command is determined by the method’s declaring code.” The programmer can use the method “without seeing or understanding the implementing code;” the programmer only needs to employ the correct command, which links to the declaration and thereby to the implementing code.
The SG acknowledged that Google “created much of the Android library from scratch,” including all the implementing code for the methods in the library. At the same time, Google incorporated some of the Java declarations in the Android library “so that programmers familiar with the Java platform would be able to program for the Android platform without learning new commands for invoking commonly used methods.”
In short, in its discussion of the facts, the SG recognized the fundamental differences between declarations and implementing code. The declaration contained the name of the method and defined its parameters. The implementing code, by contrast, told the computer “how to perform the method.” The declaration determined the command a programmer could use to call the method. The implementing code, conversely, was completely invisible to the programmer. Accordingly, Google had to incorporate a specific Java declaration for each Java command it wanted to function in the Android environment. At the same time, the Android implementing code for the method called by that command could be—and was—completely different from the implementing code for that method in the Java library.
Notwithstanding its recognition of these fundamental differences, the SG asserted, with virtually no analysis, that these differences were irrelevant for copyright purposes. The SG correctly summarized Google’s argument that “because the declaring code dictates the commands that Java programmers must use to invoke prewritten methods, the declaring code is the ‘method of operating those methods,’ whereas the implementing code is not.” The SG then summarily declared that this “distinction does not withstand scrutiny.” The extent of the SG’s “scrutiny” is three short sentences: 1) “Both declaring code and implementing code ultimately perform the same practical function: They instruct a computer to work;” 2) “Both are necessary components of a Java or Android method;” and 3) “Neither is what a programmer physically types when invoking a method.”
Under this superficial analysis, every element of a computer program would always be protectable; every element “ultimately…instructs a computer to work.” But from the many decisions cited by Google and its amici in their briefs, we know that not every program element is protectable by copyright. In particular, the First Circuit’s decision in Lotus v. Borland teaches that a program’s command structure is a method of operation unprotectable under 17 U.S.C. § 102(b). Moreover, while it is true that the programmer does not type the complete declaration when invoking a method, the command the programmer does type is just an abbreviation of the declaration. The syntax and semantics of that abbreviation is dictated by the Java language and the declaration. Given the highly functional nature of computer programs, it often can be challenging to distinguish an unprotectable method of operation from protectable expression. But here there is a bright line between declarations and implementing code. The declaration is an aspect of the method by which the programmer operates implementing code for a particular subprogram.
The SG’s fair use discussion is even more problematic than its analysis of the protectability of the declarations. On remand after the Federal Circuit’s 2014 decision that the declaring code was protectable, a federal jury in California found that Google’s use of the declarations was a permitted fair use under 17 U.S.C. § 107. Rejecting a motion for a judgment as a matter of law, the district court judge found that a reasonable jury could have found fair use on the record before it. Last year, the Federal Circuit reversed, finding that no reasonable jury could find Google’s copying to be a fair use. The SG agreed, asserting that “the Court of Appeals correctly held that no reasonable jury could find fair use on this record.” However, elsewhere in its brief, the SG conceded that “the question whether to grant judgment as a matter of law on this record is not free from doubt.” These statements are in direct conflict with one another. If the granting of judgment as a matter of law is “not free from doubt,” then how could the Federal Circuit have correctly held that no reasonable jury could have found fair use?
The first fair use factor, the purpose and character of the use, focuses on whether a use is transformative—whether the use “adds something new, with a further purpose or different character.” The SG agreed with the Federal Circuit that Google did not make a transformative use of the Java declaring code because it “used the declaring code for the same purpose for which it was created, without any changes to the expression or to the meaning.” As support for this conclusion, the SG cited a lower court decision concerning the incorporation of the Abbott & Costello Who’s On First routine in a play. The SG then declared that Google did not transform the declarations by using them in the new environment of the Android platform, “just as a copier does not ordinarily give a copyrighted poem a ‘further purpose or different character’ by including it in his own book of poetry.”
These analogies to the reuse of a comedy routine or a poem are ridiculous. In functional works such as computer programs, any element that is reused almost invariably will have the same function as in the original work. Accordingly, in such cases, the new context of the use must be given weight. There was ample evidence in the record of how Android was optimized to function in the space- and battery-constrained smartphone environment. The Java platform, in contrast, was designed to function in the far less constrained desktop environment. Thus, Google used the declarations for approximately 20 percent of the files in the Java library because the other 80 percent were not appropriate for smartphones. And it wrote its own, more efficient implementing code corresponding to the declarations it used. In total, Google used less than .05 percent of the code in the Java library.
Further, the examples of possible fair uses of computer code provided by the SG are parsimonious. The SG mentions the excerpting of code in a textbook illustrating coding technique and the making of temporary copies in the course of reverse engineering. This short list of uses implies that the fair use of functional works would be even more limited than the fair use of artistic works, contrary to Supreme Court precedent.
Additionally, the SG misunderstood the significance of one of the reverse engineering cases it cited. In Sony v. Connectix, the Ninth Circuit found that the Connectix product was transformative because it provided a new platform on which consumers could play games designed for the Sony PlayStation. Android is at least as transformative as the Connectix Virtual Game Station, and represents far more creative effort by Google than Connectix invested in the development of the Virtual Game Station. The Virtual Game Station provided similar uses and functions as the Sony PlayStation, while Android provides many different functions from Java.
The SG also was completely dismissive of Google’s desire to allow programmers to “draw on their preexisting knowledge of the Java platform.” The SG stated that Google’s approach “would allow any copyist to carve out the most popular parts of a pre-existing work, on the ground that familiar content is likely to make the second work more commercially appealing to the admirers of the first. That result would be antithetical to the purposes of copyright.” Similarly, the SG averred that the fair use doctrine “does not permit copying valuable parts of a work to attract fans to a competing commercial project.” The declarations Google copied were not the “most popular part” of the Java platform. Rather, they were the declarations that matched the commands that would be most appropriate for use in the smartphone environment. Additionally, Java programmers are not “admirers” or “fans” of the Java library. Instead, the library is a basic toolset they use in their profession. Finally, allowing Google to use the Java declarations in Android enabled Java programmers to create new programs on a new platform serving a new market. It led to an explosion of creativity, completely consistent with the purposes of copyright.
In any event, even if the SG believed that the first fair use factor tilted in Oracle’s favor, it was simply implausible for it to claim that no reasonable jury could reach the opposite conclusion. There would be nothing unreasonable about a jury finding that enabling Java programmers to use their skills in the mobile environment constituted a transformative use of the declarations.
Impact of the Case
The SG was equally dismissive of amici’s concerns about the impact of the Federal Circuit’s fair use decision on industry practices. The SG asserted that the Federal Circuit “simply endorsed the unremarkable proposition that wholesale copying of thousands of lines of copyrighted code into a competing commercial product for the purpose of attracting developers familiar with the copyright owners work, while causing actual commercial harm to the copyright owner, is not fair use.” The SG diminished the significance of this case because it did not involve the copying of code for an ordinary program, but rather “a ‘platform’ of programing tools designed to assist programmers in writing other programs.”
It is precisely the fact that this case involves programming tools that has sparked industry-wide concern. The software industry is prone to domination by incumbent firms. As a practical matter, new entrants can compete only if they can use existing programming tools in new ways, either to develop programs that can function in the incumbents’ environments, or to create new environments in which some programmers can use their existing skills.
The SG misrepresented Google’s actions as the “wholesale copying of thousands of lines of copyright copyrighted code.” Rather, Google selectively extracted declarations interspersed in millions of lines of code for the purpose of enabling Java programmers to create new programs in the smartphone market not served by the Java platform.
By allowing incumbents such as Oracle to employ copyright to control the use of programming tools, the Federal Circuit’s decisions threaten competition in the software industry. The SG correctly observed that the fair use doctrine “permits courts to consider whether ‘rigid application of the copyright statute’ in a particular case ‘would stifle the very creativity that law is designed to foster.’” But the SG then endorsed the Federal Circuit’s incredibly rigid application of the copyright statute. Fifteen briefs, filed by amici as diverse as Microsoft, Red Hat, Mozilla, copyright treatise author David Nimmer, 78 computer scientists, and the American Antitrust Institute, called for Supreme Court review. Sadly, the SG disregarded their understanding of the adverse impact the Federal Circuit’s decisions would have on the software industry.