At issue in Oracle v. Google is whether Oracle can claim a copyright on Java APIs and, if so, whether Google infringes these copyrights. When it implemented the Android OS, Google wrote its own version of Java. But in order to allow developers to write their own programs for Android, Google's implementation used the same names, organization, and functionality as the Java APIs. For non-developers out there, APIs (Application Programming Interfaces) are, generally speaking, specifications that allow programs to communicate with each other. So when you read an article online, and click on the icon to share that article via Twitter, for example, you are using a Twitter API that the site’s developer got directly from Twitter.
Oracle sued Google in 2010. In May 2012, Judge William Alsup of the Northern District of California ruled that APIs are not subject to copyright. The court clearly understood that ruling otherwise would have impermissibly—and dangerously—allowed Oracle to tie up “a utilitarian and functional set of symbols,” which provides the basis for so much of the innovation and collaboration we all rely on today. Simply, where “there is only one way to declare a given method functionality, [so that] everyone using that function must write that specific line of code in the same way,” that coding language cannot be subject to copyright.
Oracle appealed Judge Alsup's ruling to the U.S. Court of Appeals for the Federal Circuit. On May 30, 2013, EFF filed an amicus brief on behalf of many computer scientists asking the Federal Circuit to uphold that ruling and hold that APIs should not be subject to copyright. On May 9, 2014, the Federal Circuit issued a disastrous decision reversing Judge Alsup and finding that the Java APIs are copyrightable, but leaving open the possibility that Google might have a fair use defense.
On October 6, 2014, Google filed a petition asking the U.S. Supreme Court to review the Federal Circuit's decision. On November 7, 2014, EFF filed an amicus brief on behalf of many computer scientists that asked the Supreme Court to grant Google's petition for review, reverse the Federal Circuit, and reinstate Judge Alsup's opinion. Unfortunately, in June 2015 the Supreme Court denied Google's petition.
The case returned to the district court for a trial on Google's fair use defense. Fortunately, in May 2016, a jury unanimously agreed that Google's use of the Java APIs was fair use. Oracle filed another appeal. In May 2017, EFF (along with Public Knowledge) filed an amicus brief asking the Federal Circuit to affirm the jury's verdict. However, in March 2018, the Federal Circuit reversed the district court again, in a decision that made even less sense than its 2014 opinion. The Court rejected the jury's verdict (after previously saying that the jury had to decide the case), and held that Google's use was not a fair use as a matter of law. Google petitioned the entire Court to rehear the case, and EFF filed an amicus brief supporting Google's petition. The Federal Circuit denied Google's petition in August 2018.
In January 2019, Google filed another petition asking the U.S. Supreme Court to review both Federal Circuit decisions. EFF filed an amicus brief supporting Google's petition in February 2019. In November 2019, the Court granted Google's petition; EFF filed an amicus brief supporting Google on the merits. The Court heard oral argument in October 2020. (One procedural note: because of the Supreme Court’s rules on citing cases, the lawsuit will now be known as Google v. Oracle, since Google asked the Supreme Court to hear the case. After nine years, we’ll have to get used to calling the case by this new name.)
In April 2021, the Court issued an opinion reversing the Federal Circuit and holding that Google's use of the Java APIs was fair use as a matter of law. The Supreme Court's ruling represents a victory for programmers, developers, and other users who want to use their acquired knowledge and experience with software interfaces in subsequent platforms.