Justices Curious about the Building Blocks of Software
(Originally published in Los Angeles Daily Journal 12/29/2014)
On Jan. 9, the U.S. Supreme Court invited the views of the solicitor general on whether to hear the Oracle v. Google copyright litigation relating to the Android operating system. At issue is whether Oracle can protect through copyright the command structure for its Java Application Programming Interface (API), which Google copied so Java-based code could be run on Google’s Android operating system.
The dispute dates back to 1991 – that’s when Sun Microsystems (acquired by Oracle in 2010) developed Java, including a new programming language, a Java virtual machine, and a Java API with its own structured, organized set of library packages.
APIs are a set of routines, protocols and tools for building software applications. They are ready-to-use Java programs to perform common computer functions and they were organized by Sun into API “packages.” These API packages are shortcuts; they let programmers use the prewritten code to build certain common functions into their own programs so they don’t have to start from scratch.
Sun called the code for a specific function a “method.” It defined “classes,” such as “Math,” each having specified methods, for example, “max” – finding the larger of two values. To organize the classes for users, it grouped classes into packages. Oracle’s collection of API packages is like a library. Each package is like a bookshelf; each class is like a book on the shelf; and each method is like a how-to chapter in a book. For example, the package “java.lang” included the class “math,” and within this class, one could find the method “max.”
Google announced it would use Java technologies in its 2007 Android operating system.Â Oracle discussed licensing Java with Google but the companies never reached agreement. Oracle insisted Google make the implementation of its programs compatible with other Java programs, but Google refused. This was a deal breaker for Oracle because of its “write once/run anywhere” philosophy. Oracle markets Java as a platform that lets developers write programs that run on any hardware without having to rewrite them for each type.
Oracle sued Google in 2010, asserting patent and copyright infringement against the Android operating system. Google had copied the taxonomy of all the names of methods, classes, interfaces and packages covering 37 packages, with over 600 classes, with over 6,000 methods. Google explained that it copied this taxonomy because it knew Java application programmers would want to find the same 37 sets of functionalities in the new Android system callable by the same names they were used to using in Java.
Google prevailed on the copyright infringement claims after trial in 2012 when U.S. District Judge William Alsup determined, as a matter of law, that 37 API packages copied by Google, including their structure, sequence and organization, were not protectable by copyright. Alsup explained that accepting Oracle’s copyright claim to its taxonomy-like command structure for these API packages would allow anyone to copyright one version of code to carry out a system of commands and then prevent all others from writing their own versions to carry out the same commands. Alsup held Oracle’s command structure is a functional system or method of operation that cannot be protected by copyright.
The ruling was reversed on appeal. The U.S. Court of Appeals for the Federal Circuit had jurisdiction because the case included patent claims, but it applied 9th Circuit regional law on the copyright issues. The Federal Circuit found Oracle could claim copyright protection in the structure, sequence and organization of the API packages. It found the district court had conflated issues of copyrightability and fair use and had relied on a 1995 1st Circuit case, Lotus Development Corp. v. Borland International Inc., which conflicts with 9th Circuit law on copyrightability of software code. Lotus held “expression that is part of a ‘method of operation’ cannot be copyrighted.” The Lotus decision was decided by a divided court, and it was appealed to the Supreme Court, which affirmed the decision without opinion by an equally divided court.
Although the Federal Circuit remanded the case for trial on the fair use defense, Google filed an interlocutory petition last October for certiorari review by the Supreme Court. It argued that APIs were a functional method of operation that should not be afforded copyright protection.
Computer programmers are familiar with the Java programming language, Google argued, and to them, the structure of the Java commands are basic vocabulary they expect to be able to use when they write code. These commands and their organization are like the organization of letters on a QWERTY keyboard, Google said. The keyboard required creativity to organize, but if it had been protected by copyright, its inventor, Remington, could have monopolized typewriters for 95 years, preventing companies like IBM from using or improving it. The APIs represent “basic building blocks of computer design and programming,” Google argued, which software developers should be entitled to use.Â Perhaps most convincingly, Google urged the Supreme Court to decide the circuit split on this issue the court left undecided in Lotus.
Oracle argues it spent years and millions of dollars writing packages of software code and nurturing a fan base of millions of programmers attracted to the code’s elegance. Google copied 7,000 lines of that code to implement API functions, functions that Google should have implemented by writing its own code. According to Oracle, what Google did was equivalent to plagiarizing the topic sentences of each paragraph of a blockbuster novel, along with the chapter and subchapter titles, and then paraphrasing the rest of the book. Oracle also argues that Google’s interlocutory appeal should not be granted because the case has not yet reached a “final” state in the lower courts.
The Supreme Court, however, by requesting the views of the solicitor general, has signaled that it may accept the case. That will be welcome news to Google and to many in the programming community who believe that fundamental building blocks, such as APIs, are not entitled to copyright protection any more than Remington’s QWERTY keyboard.