The ongoing Google v Oracle could be heading to the US Supreme Court. This after Google urged the court to overturn the decision.
Can an API be copyrighted? Oracle seems to think so. So far, they are on the winning side in a high stakes court battle could could have wide-ranging implications for technology. Google submitted a file to the US Supreme Court urging them to overturn a lower courts decision which said that Oracle can claim copyright infringement for others using an API. From Bloomberg (May be reg/pay walled for some):
Google, in a filing to the court dated Monday, largely repeats the search giant’s well-established arguments in a case that has been contested for almost a decade: That it was legal to use parts of Oracle’s Java programming language to help make Android communicate more easily with other software. A defeat, Google has argued, would restrict further innovation in the computing industry.
Oracle, which acquired Java when it bought its original developer Sun Microsystems, argues that it’s owed at least $8.8 billion for Google’s use of the code without a license. Much of Google’s business success over the past decade came from its ability to place its search engine — and advertisements — on phones running Android, which account for roughly one of every four smartphones worldwide.
The case is likely to have ramifications beyond Google and Oracle — many tech companies and startups rely on using bits of code other companies develop or own when building new software. That’s the plea Google is making to the court.
“An Oracle win would upend the way the technology industry has always approached the important issue of software interfaces,” Kent Walker, Google’s legal chief, wrote Monday in a blog post. “It would for the first time grant copyright owners a monopoly power to stymie the creation of new implementations and applications.”
Given how this case has been going on for the better part of a decade, it may be a bit difficult to keep up with how this case has developed. Luckily, the Electronic Frontier Foundation (EFF) has been maintaining an information page documenting how this case has developed. The EFF supports Google in this case. From the EFF:
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.
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 expects to file an amicus brief supporting Google on the merits. Oral argument is expected in March 2020, and a decision by June. (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.)
Over at ArsTechnica, one writer is arguing that Oracle might have copied an API at one point itself. From the article:
Consider Amazon’s popular data storage platform, S3. To allow programmers to store and retrieve files on S3, Amazon built a comprehensive, detailed API for interacting with the service. To get a list of stored files, for example, one sends the command name GET with the folder name as a grammatical object, along with cryptically tagged information such as encoding-type, continuation-token, and x-amz-date. Software must use these exact, cryptic terms and a bevy of others to work with Amazon S3.
Unsurprisingly, competitors have sprung up to Amazon’s market-leading cloud services. To convince programmers to switch away from Amazon’s offerings, those competitors reimplement S3’s API. In doing so, the competitors must mimic the command names, parameter tags, “x-amz” phrasing, grammatical structure, and overall organization of the S3 API—in other words, exactly the kind of thing Oracle argues is protected by copyright.
To be sure, a competitor may use a different programming language than Amazon did so the internal software code might not look like verbatim copying. But implementing an API in another computer language is simply an act of translation, and translating a copyrighted work into another language is specifically known to be a copyright infringement.
Among the companies offering a copy of Amazon’s S3 API is Oracle itself. In order to be compatible with S3, Oracle’s “Amazon S3 Compatibility API” copies numerous elements of Amazon’s API, down to the x-amz tags.
Did Oracle infringe Amazon’s copyright here? Ars Technica contacted Oracle to ask them if they had a license to copy Amazon’s S3 API. An Oracle spokeswoman said that the S3 API was licensed under an Apache 2.0 license. She pointed us to the Amazon SDK for Java, which does indeed come with an Apache 2.0 license.
However, the Amazon SDK is code that uses the S3 API, not code that implements it—the difference between a customer who orders hash browns and the Waffle House cook who interprets the orders. Code that uses an API will be organized completely differently from code that implements one; it may not even contain the whole API. And Oracle has for years argued that using an API is unrelated to reimplementation and not an infringement of copyright (or else every app developer using Java would infringe). Oracle can’t simultaneously argue that API-using code does not embody copyrighted material from an API, and yet API-using code embodies all copyrights in the API necessary to give Oracle the right to reimplement S3.
As the article also notes, API’s are so frequently used and re-implemented, the legal ramifications of the Google v Oracle case could be widespread and put a chilling effect on the development of applications in general.
If the Supreme court refuses to hear the case and the case ends up being dead, it could force a major restructuring of how applications and programming happens. One possible outcome is that the open source movement could step in and re-build various API’s from the ground up. Unfortunately, this would most certainly take time (possibly a lot of time). In the mean time, the damage that this could cause is potentially immense. So, little wonder why many programmers are nervously watching this case.
Drew Wilson on Twitter: @icecube85 and Facebook.