
Reconsider What's Behind Fair Use for Software in Oracle v. Google
The case between Google and Oracle is a long overdue battle, fighting for the copyright of software and fair use of code. This case has been disputed in court for eleven years and spurred the discussion around copyright and fair use concepts of software development in the 21st century. This essay reviews how this case develops, how the copyright and fair use elements establish, how the technology ecosystem serves the rulings, and how previous software copyright cases build the foundation in favor of the rulings.
The Case Background:
In 1996, Sun Microsystems created a Java computer programming platform, a primary language computer system containing application programming interfaces (APIs). In 2007, Google announced a platform accessible to Android mobile users using Java technology. In 2010, Oracle acquired Sun Microsystems, which resulted in the filing lawsuit against Google for using Java script on Android. In 2012, Judge William Alsup of the Northern District of California ruled that APIs are not subjected to copyright infringement and that coding language is not copyrightable, stating that "copyright law does not confer ownership over any and all ways to implement a function or specification of any and all methods used in the Java API." (McSherry, 2021). As a coder himself, he highlights that the basic principle for Javascript is that functionality in technology is not subject to copyright. In 2013, Oracle appealed Judge William Alsup's ruling to the U.S. Court of Appeals for the Federal Circuit. Judge Alsup ruled that the Java APIs are subject to copyright but left a chance for google to consider a fair use defense. Shortly after, Google filed a petition, and Electronic Frontier Foundation (EFF) filed an amicus brief on behalf of several computer science leaders to ask the Supreme Court to reverse the Federal Circuit. Unfortunately, the Supreme court denied it. After three years of back and forth between Google and Oracle arguing about fair use and copyright infringement on APIs, the Supreme Court finally agreed to grant Google's petition. In 2021, the court ruled over Google, stating Java APIs were fair use as a matter of law. The court examined the four factors of fair use in this case. The fact that Google copied the declaring code of the 37 Java API packages 11,500 lines of code, which "are inherently bound together with uncopyrightable ideas." The argument demonstrates that Google-copied APIs served functionality purposes. The idea and hierarchy of codes itself can not be subject to copyright. Justice Stephen Breyer stated, "Google copied only what was needed to allow programmers to work in a different computing environment without discarding a portion of a familiar programming language." This statement indicates the use of the work that Google implemented on phones and created an Android platform to popularize public use. Moreover, Google only took 0.4 percent of the entire API when comparing the copyright infringement portion. It is a small number of copies compared to the whole. Even though the copied APIs are some of the most critical function codes, Google constructed most of the functions for the program interface. Thus the amount it took not only served the purpose of accessible coding for programmers but also comparatively originated the rest of the ideas on its own. Finally and more importantly, by considering the market use, Google implemented Java API on the Android platform is not a substitute for Java SE. The court believed that "enforcing the copyright on these facts risks causing creativity-related harms to the public." One interesting side note while Oracle argued the importance of the Java script that Google copied from them, weighing the complicated matter of coding. However, the function code that Google copied is not complicated, simply shortcuts for prewritten codes that perform specific functions. Thus, indicating that the code that Google took from Java is merely a simple work task with originality and creativity, meanwhile limiting copyright to Oracle would result in restricting the foundation of constructing API for user interfaces for programmers. "Google is a better search engine than its predecessors not because it performs a different function, but because it performs the same function in a different and better way." (Lemley, 2012). The instructions that Google copied flourished the industry and performed a better way for Android users to connect to Google sites.
​
It All Came Down To The Code
This case is a fascinating example demonstrating the importance of API, coding, and software engineering. Upon examining the case, one must wonder about the technical component that Oracle claimed is copyright infringement. One of the aims of Java Virtual Machine is to "write once, run anywhere." As the basic language computer system, Java uses libraries and functions to support coders to interface with other platforms. While it is true that copyright protects the work of originality and creativity, it does not protect functionality, as the idea of work. The code in Javascript differs from our general concept of interfacing with computers. When we consider communicating with computers, every space, bracket, and semicolon has different meanings. API likes grammar style as compared with technology language to our communication language. Grammar is a set of instructions that helps words to combine into one sentence for communicators to understand each other. The subject, object, and verb construct the primary function for English Grammar. There are also different styles of grammar, such as descriptive, comparative, and generative. When we conduct essays, there are also different documentation styles, such as MLA, APA, and Chicago. Different grammar and documentation styles serve different messages and information. The function, structure, and hierarchy of grammar are shortcuts for people to communicate with each other. API served the same purpose. For simple object access protocol or remote procedure calls, Java Script uses specific routes to make communicators' demands come true. Java Script is one of many program languages coders operate nowadays. Through the development of technology, people have developed different types of approaches to communicating with computers and achieving their demands. Python is a general-purpose programming language. It supports prewritten packages and object-oriented and functional programming. "Java is a statically typed and compiled language, and Python is a dynamically typed and interpreted language." (Rowe). Java is faster at processing data but hard to code. Python is easier to read but takes more time to process data. For example, if programmers want to type 3+2 = 5, just simply:
​
3+2
5
However, programmers have to write a basic foundation to lay out the concept of 3+2 = 5
public class Print5 {
public static void main(String[] args) {
System.out.println("3+2=" + (Integer.toString(3+2)));}}
As the example above, what google took from javascript were lines of instruction of packages that helped programmers get used to Javascript's environment. API that Java script developed is simply the instruction and formate of primary user interface language. What google copied is simply the structure of the code. Google did create the production and execution. Therefore, the Court stated that the work that Google copied "is inherently bound together with uncopyrightable ideas."
​
The success of Google's petition over Oracle symbolized the freedom of using API and the victory of small software development companies. If Google failed the petition, not only result in a $9 billion lawsuit and cost small software development companies to become extinct. The nature of open source on Java script aims to provide accessible sources for everyone to use in productive and creative work. The uniqueness of this case is that it touched on the primary language of coding that any programmer would use to write functional code. James Grimmelmann is the Tessler Family Professor of Digital and Information Law at Cornell Tech and one of the leading tech petitioners supporting Google. He compared the API program to a football team, "We are not asking Oracle to give us its implementing code, which is the closest analog here to a football playbook. Instead, we are asking this Court to hold that Oracle cannot claim copyright in those plays and stop other teams from running a screen pass just because they ran one first. An API, like a football play, may be original under section 102(a), but because it is a method of operation, it is uncopyrightable under section 102(b)." (Grimmelmann, 2020). There are also different kinds of API, such as WebSocket APIs, that uses JSON objects to render data to support two-way communication between client apps and the server. We also have REST API that optimizes input and output data to access server data using HTTP. If Java SE libraries that Oracle claimed to be copyrightable and have no fair use options, there is hard to examine more functional API, and codes can be limited to being subject to copyright.
​
It All Comes Down To The Ecosystem
This case has been widely discussed in the programming world. Numerous technology companies and coders submitted their amicus briefs to the federal circus. The EEF argues that "Computers Rely on the Uncopyrightable Nature of APIs and Network Protocols to Communicate Over the Internet." The purpose of the Internet Interface is to allow more interaction between people and the digital world. The development of technology flourished because of the uncopyrightable technology ecosystem. Even though the fast development of technology makes everything easy and quick, the underlying logic is far more difficult to imagine. One of the most iconic examples is the hypertext transfer protocol (HTTP). HTTP is the package the coder designed for users to access the appropriate webpage with designated code from the server on which it is stored. HTTP is an application layer that features the client-server protocol; it enables users to request open a connection until it receives a response from the web. While the platform gets signals from the receiver, it will assign a unique ID for users to access. Tim Berners-Lee, the inventor of HTTP and the World Wide Web, decided no patent and royalties were due for unleashing WWW. Since then, the web gets to flourish, and everyone in the world gets benefited from it and begun their journey in creative technology development. It is hard to imagine what the world would be like if HTTP and WWW were patented and restricted by intellectual property. "We do not want to allow the copyright on the creative pieces to end up controlling the unprotectable elements." (Lemey, 2020). The ecosystem nourishes the technology invention, and fair use sets the creation free to advance society. For example, programmer Mislav Marohnić hunted out Instagram's API due to the lack of photo-sharing functionality on Instagram. The Instagram service had almost "no web presence as it is impossible to link or browse user's photo streams" before 2010. (Marohnić, 2010). While through the success of utilizing photo-sharing services and increasing demands from others, Instagram officially opened up their Basic Display API for general users and Graph API for businesses and creators to publish media, moderate comments, and hashtag media. Numerous software developers would be able to develop their businesses and engage in social media on Instagram. Within two years of operation, Instagram was sold to Facebook for $1 billion. If the property restricted API from Instagram, Marohnić would have infringed Instagram's copyright, and other software developers would not help produce compatible websites due to fear of litigation. Instagram would not be one of the most successful social media platforms, and many industries would not flourish today. Moreover, the API that Instagram provides is the instruction for users interface that help developer easier to build function on the platform. Some of the APIs that the official website has shown below:
​
Each user has a specific ID representing a call to the user node.
curl -i -X GET \
"https://graph.facebook.com/USER-ID?access_token=ACCESS-TOKEN"
The instructions for IOS users:
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me/friends"
parameters:@{@"fields": @"cover,name,start_time"}]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
(...)
}];
The instructions for Android users:
GraphRequest request = GraphRequest.newGraphPathRequest (
accessToken,
"/me/friends",
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
// Application code
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,link");
request.setParameters(parameters);
request.executeAsync();
As the examples above demonstrate, the API for Android and ios have distinct differences in calling the users ID with the user interface. Google uses API for instructions in order to allow android users to have better access to their platforms. Even though Google already has instructions for IOS users, they still need help accessing the instructions for android users. Each line of code represents different routes to call the procedures and approaches to reach developers' executions and orders. The examples above demonstrate that the technology ecosystem has been flourishing and continuing to break the glass ceiling in the spirit of sharing communities. When developers learn to code, they browse the communities and raise questions about their conundrums. Developers have been sharing their expertise and codes to advance their products further. Online platforms, like GitHub, Git Bucket, and Gitea, are free and open-source for developers to share their experiences and lines of code. Open source communities and fair use of software developments contribute to the vapid development of technology and are beneficial to the public.
The Past Build the future
While it is true that "there is no new thing under the sun," software cases' copyright was disputed before the digital era. The fight over fair use of code has been combated over centuries. Apple Computer, Inc. v. Franklin Computer Corp. is the first case to consider the possibilities of code copyright protection. Apple computer was the leader in the industry by 1981. Franklin computer designed the computer as an Apple clone, compatible with the software and peripheral equipment developed on the Apple II. The program is essentially copying Apple's operating system code.Apple sued Franklin for copyright infringement. Franklin admitted that their code was virtually identical to Apple's but argued that the operating system was not copyrightable because it is a method of operation. The district court agreed that there was some doubt that the copyrightability of object code and suggested that copyright might be limited to works designed to be read by a human reader. Franklin asserted that it was the only way to copy Apple OS to be able to run on Apple OS, "a limited number of ways to arrange operating systems to enable a computer to run . . . Apple-compatible software." Even though Apple appealed the ruling to the United States Court of Appeals for the Third Circuit and overturned the district court's ruling, it still set presidential ideals on separating and categorizing the copyrightable part of software code. Ultimately it led to the District Court in Oracle giving appropriate weight to the later circuit court rulings from the Franklin decision. Computer Associates International, Inc. v. Altai, Inc. ruled that "functional requirements for achieving interoperability were not protectable by copyright law.". (Samuelson, 2015). The Computer Associates produced a job scheduling program for the International Business Machines Corporation (IBM) mainframe computers. The program used an operating system translator, Adapter, which allowed the job scheduling program to operate with different operating systems on the IBM mainframe. Altai, the competitor of the computer associates, sold its job schedule program, Zeke. Altai decided to rewrite Zeke to run on one of the IBM operating systems in 1993. The leader of Altai recruited a programmer who worked with an Adapter from IBM to write code for Zeke. The programmer used many codes from the Adapter to create a new translating software named Oscar. Computer Associates sued Altai for copyright infringement. Altai immediately rewrote the Oscar 3.5 without the adaptive code and sold it to the market. At trial, Altai conceded that the original Oscar violated Computer Associates' copyright. The federal district court held that Altai was not liable for copyright infringement in developing Oscar 3.5. The Computer Associates appealed, arguing that the tests the court applied did not account sufficiently for a computer program's non-literal elements. The Computer Associates argued that the Oscar 3.5 non-literal components, such as flow charts and more specific organization subparts, and the program's services remain substantially similar to the Adapter even after the rewrite. This case argues to what extent the programing code violates the copyright protection. The core of copyright law states that the expression of an idea is protected but not the idea itself. When categorizing the code under copyright protection, the court divided the programming code into literal copying and non-literal copying. The keys of non-literal copying of the codes usually indicate structure, sequence, and internal organization. In order to examine the extent of copyrightable content on programming and test specifically whether Oscar 3.5 violates the copyright from the Adapter, the court developed the Altai test to draw the extension on non-literal copying. The first step is an abstraction, which traces back to the idea of the code in reverse order to examine the underlying principle of its source code, object code, and the functions of each module. The second step is filtration which draws the line between the elements that are or are not protected by copyright. The elements that must be excluded are the functions dictated by efficiency, dedicated by external factors, and taken from the public domain. The third step is comparing the remaining code against the allegedly infringing work. The court decision is largely based on copyright law elements and allows the programmer to be creative on existing non-literal content. Thus, the code's structure, sequence, and internal organization are copyrightable. It is hard to argue whether non-literal copying could play the element of fair use. However, the amount of the code copied from the Adapter to Oscar is copyright infringement. This case set a precedent for software copyright infringement and the ground rule for software copyright protection. Samuelson, who co-authored an amicus brief, stated that "the Ninth Circuit in Sega was influenced by the landmark software copyright decision Computer Associates International, Inc. v. Altai, Inc., which ruled that the functional requirements for achieving interoperability were not protectable by copyright law." (Samuelson, 2015). It also set the footprint for Sony Computer Entertainment, Inc. v. Connectix Corp in 1998. Sony sued Connectix for copyright infringement on Virtual Game Station. Sony argues that Connectix emulated Sony PlayStation on a Macintosh computer based upon reverse engineering the PlayStation's BIOS firmware. The Ninth Court ruled that Connectix Corp is coping with Playstation firmware while reverse engineering had been protected by fair use. In the words of the Supreme Court, "when the machine passes to the hands of the purchaser, it is no longer within the limits of the monopoly. It passes outside of it, and is no longer under the protection of the [patent laws]." (Cohen & Lemley, 2020). The fair use case also plays an essential part in the case. The court argued that the functional elements from the PlayStation firmware are not copyrightable. Thus, they are essential to developing code in the program. The amount that Connectix copied from Sony PlayStation plays little significance in the final product of the Virtual Game Station. The reverse engineering process minimizes the wasted labor effort and the number of intermediate copies that serve the purpose of fair use. Finally, the usage of Virtual Game Station has transformative information compared to Sony PlayStation. It protects the market from being a monopoly of Sony and Sony-licensed games.
The three cases of software copyright protection set the precedents for Google LLC v. Oracle America, Inc. They protect the copyright elements in software and diminish the chance of copyright infringement. They also examine the process of understanding how the code works through the development of technology and increasing consumption of software development.
​
Conclusions
​
This illuminating case helps us understand more about the fair use of technology, specifically programming. Some platforms grant authors the to give their codes fair use for academic purposes in the public domain. There is also a permission culture in the academic area. As deepfake and automatic-generating AI technology evolve, it is undoubted that similar cases will occur regarding copyright protection and fair use. Furthermore, as technology progresses, as more complicated chips and coding develops, everyone is entitled to use the essential software, and the harder it is to distinguish the purpose of the work. Fair use and copyright protection have helped distinguish between functional and execution codes. It is exciting to see the limitation of protection in software development. While it is brilliant to consider that the four categories of fair use components assist in distinguishing the copyrightable codes. There is also a lesson to alarm us about how the law still lacks clarification on copyright protection through the fast development of technology, such as AI authorship, deepfake, and NFTs.
In conclusion, this case established that the programming language is fair use and open source. The basic principles of fair use should be analyzed into four categories. Software language can be copyrighted. The argument is that the work is transformative enough to be fair use. Since Google uses Javascript to build an interface for Android users so that they can easily use the Google system, Google won this case. This case gives the programmer the hope to use their knowledge and creativity to benefit society with powerful software while encouraging the technology ecosystem to flourish without fearing copyright infringement.
Citation
​
Brief for Amicus Brief of Computer Scientists in Support of Petition of Writ of Certiorari Facebook graph API overview. Graph API - Documentation - Meta for Developers. (n.d.).from https://developers.facebook.com/docs/graph-api/overview
GOOGLE LLC v. ORACLE AMERICA, INC, No. 18-956 U.S. (2021) Grimmelmann, J. (2020, October 29). Google LLC v. Oracle America Inc.. Oral Argument 20
US Supreme Court Oral Argument FollowUp Analysis. Retrieved December 17, 2022, from https://argument2.oyez.org/2020/google-llc-v-oracle-america-inc/
Groves, K. (2019, May 28). The copyright permissions culture in software preservation and its implications for the cultural record. Association of Research Libraries. https://www.arl.org/resources/the-copyright-permissions-culture-in-software-preservatio
-and-its-implications-for-the-cultural-record/#.W6gFyEVKjRY
Lazarto, J. (2022, March 23). Unraveling the Oracle vs. Google Lawsuit. UpperEdge, from https://upperedge.com/oracle/unraveling-the-oracle-vs-google-lawsuit/
Lemley, Mark A. and Casey, Bryan, Fair Learning (January 30, 2020). Available at SSRN: https://ssrn.com/abstract=3528447
Marohnić, M. (n.d.). Creating the missing Instagram web interface, from https://mislav.net/2010/12/instagram-web/
McSherry, C., & Barclay, M. (2021, October 15). Oracle v. google. Electronic Frontier Foundation. from https://www.eff.org/cases/oracle-v-google
Rowe, W., & Johnson, J. (n.d.). Python vs Java: What's the difference? BMC Blogs. https://www.bmc.com/blogs/python-vs-java/#:~:text=Java%20is%20a%20statically%20yped,use%20and%20easier%20to%20read.
​
Samuelson, Pamela, Three Fundamental Flaws in CAFC's Oracle v. Google Decision (August 13, 2015). European Intellectual Property Review, October 2015, Forthcoming, Available at SSRN: https://ssrn.com/abstract=2643840
​
Shankland, S. (n.d.). Android, Java, and the Tech behind Oracle v. google (FAQ). CNET. from https://www.cnet.com/tech/tech-industry/android-java-and-the-tech-behind-oracle-v-google-faq/