Oracle v. Google, cynical lawsuit
Oracle Sues Google for Using Java API in Android!
Oracle acquired Sun, the creator of Java, in April 2009 for $7 billion.
Some dissatisfaction with this investment was expressed by shareholders whose income was disproportionate to the amount paid. Perhaps this prompted Larry Ellison to file a lawsuit against Google, demanding $6 billion for the use of its code.
The judge denied the motion as exorbitant. Oracle then revised its numbers twice, first seeking $2 billion in damages, then an unknown but still staggering amount. Annoyed, the judge appointed his own expert, who estimated damages if Oracle won, at $5 million for patents and $100 million for copyright infringement.
Initially, the complaint concerned seven software patents. 5 invalidated. Oracle pressured the USPTO to reconsider its decision, as a result of which one of the invalidated patents was again declared valid, but it was too late for it to be considered in this lawsuit. The copyright issue is more serious. If the courts recognize Oracle's Java API rights, then the same rule will apply to all programming languages, and no programmer can use the language without risking harassment! Can I copyright the API? Seeing the grounds for the lawsuit to melt like snow in the sun, Oracle then took a gamble: it added a complaint about the use of copyrighted code, namely the use of the Google 37 Java API. Not for class code, but for interface object names. Until now, APIs have not been considered copyrighted; only the code was.
What is an API?
Judge Alsup gave a good definition. Designing an API is similar to organizing a library of books. Google has organized its library exactly like Oracle so that Java developers can migrate to Android faster. However, the books in this library were written by Google; there is no copyright infringement in connection therewith.
More formally, an API is a set of declarations in a reusable code module. If the module contains this class:
Class math { int addition(int a, int b) { int z = a + b return z } }
Class math, int addition (int a, int b) declarations are part of the API. The code of the addition method is part of the implementation.
The essence of the dispute
To better understand what is at stake, it is important to know that the Java framework consists of 166 APIs. Most are either in the public domain or under open licenses. Only 37 of them have their own licenses, which does not mean they were written by Sun or Oracle. 97% of the code for these 37 APIs comes from Google, not Sun.
Google said it used class names in this API to make life easier for developers, so this is fair use. The jury could not reach a decision on this point.
According to the jury, they focused on the functional rather than the creative aspect. Since Android is primarily practical, the principle of "fair use" This is what prevails, 9 jurors versus 3. Which doesn't matter anyway, because...
On May 31, 2012, Judge Alsup issued his ruling on the API issue: Java APIs cannot be copyrighted. (PDF) This is consistent with a more general European decision on this issue.
This command structure is a system or method under section 102 (b) of the Copyright Act and therefore cannot be copyrighted. Duplicate command structures are required for interoperability.
Others are free to write their own implementations to perform identical functions because, in essence, ideas, concepts, and functions cannot be monopolized by copyright.
The only remaining problem is 9 "borrowed" lines of code actually donated to Java by the author of the Android code.
Code common to Java and Android
As for the code itself, Oracle used a program to compare Android and Java code: out of 15 million lines, only 9 are distributed.
The lines of code in question were actually written by a Google programmer who included them in Java code to help developers. It falls no less under Oracle ownership.
Undaunted, Oracle lawyers declare "Copy is Copy" and seek millions of dollars in damages.
Judge Alsup warned that potential damages could not exceed $150,000, but the others are unwavering and want to make a closing argument before a jury asking for high damages.
During this process, it was discovered that Judge William Alsup of the Northern District of California knew how to program and already used numerous programming languages. This is very bad news for Oracle, because in this type of trial, the prosecutor relies on the ignorance of the judge and tries to impress him with a stream of technical arguments (as is done with the patent office).
The judge shot back at Oracle attorney David Boyce:
I've written blocks of code like rangeCheck (editor's note: nine duplicated lines of code) hundreds of times before. I can handle it, you can handle it. My point is that someone copying it when they could have done it themselves just as quickly is just an accident. You can't argue that they got faster market access. You're one of the best lawyers in California, how can you make that argument?
rangeCheck! All it does is check that the numbers you enter are in the range and apply some special treatment to them. The expert said it could be done by any student...
And the lawyer replied:
"I'm not a Java specialist. This is my second Java case, but I'm not an expert and I couldn't program it in six months."
Google's luck is that it deals with a judge who has technical knowledge in this area.
On June 20, 2012, a judge ruled that Google should pay Oracle $0 (zero) for the "losses" incurred, which Oracle accepted (which will appeal the rest). This concerned the above function and configuration files. In addition, Oracle will bear the costs of the lawsuit, which will also have to pay Google $1,130,350 to cover part of its costs (Google sought $4 million).
Google offered a settlement based on $28 million, which Oracle refused.
Nonintellectual patents
This is followed by the question of two patents allegedly used by Dalvik, an Android virtual machine.
Two experts were called to the stand to assess the damage. Terence Parr, a professor at the University of San Francisco, a specialist in virtual machines and well known to the authors of the programming language for his ANTLR generator. This allows grammar analysis and is used by both language compilers (not the interpreter).
Terence Parr stated that patent 6,061,520 is of minor interest for creating a virtual machine. This is a way to initialize the array statically (i.e. at compile time).
Another expert, David August, a professor at Princeton University, said that the second incriminated patent RE38,104 not have been used at all by the Dalvik virtual machine. This is a method of accessing memory content by reference by assigning names to regions.
Nothing in the two incriminated methods seems to be a product of fertile imagination, and it is not surprising that Android programmers used similar processes.to achieve the same goals.
In March 2012, Oracle experts estimated the damage incurred by Oracle for using these two "inventions" at $2 billion (at the beginning of the trial, they asked for $6 billion). With this kind of assessment, each of my scenarios contains enough "inventions" to cost billions of euros.
On May 23, 2012, a jury in the Northern California District Court in San Francisco unanimously decided that Google did not infringe on the two patents cited by Oracle. American lawyer Denise Howell estimates Oracle's legal costs at tens of millions of dollars .
Google statement:
This is a victory for Android and the Android ecosystem!
Judge's statement before dismissing jurors:
I've never had a jury in a civil trial that has gone on for so long, "the longest civil trial," and you've all been an excellent jury, and this country is a great country because citizens like you are willing to sacrifice and come forward to do it like you did. I thank them on behalf of the country and the Federal Court.
After the decision on May 31 that APIs are not protected by copyright, the question of fair use is no longer worth it, and this is a complete victory for Android and Google .

The test is not over
On August 7, 2012, Judge Alsup ordered that both sides disclose the names of journalists and bloggers who commented on the case and had ties to either company.
Among bloggers, one of Oracle's most ardent supporters was Florian Muller, who has already admitted to being on Oracle's payroll.
Google, for its part, admits it has compensated James Gosling, the creator of Java, for his part in the lawsuit. Gosling sided with Google.
The oracle didn't see it coming...
By adopting Java for its Android platform, Google gave Sun a huge service that Oracle, which acquired Java, benefited from. The then Sun CEO wrote enthusiastic articles about Google's initiative and its contribution to the Java expansion.
Indeed, Java is far from without alternatives. Apple uses Objective-C, and Google could also choose the LLVM platform after optimization, as could the Qt used by Sailfish (Update 2014, Meego replaced by Sailfish). Other systems like webOS use Node.js and HTML 5, which work great on mobile devices too.
Therefore, Oracle is completely dishonest to sue Google, accusing it of both fragmenting Java and copying its API, two incompatible things, and of wanting to take over Android revenues, whose success is due to Google's reputation. On the contrary, the Oracle mobile virtual machine was not successful. And even more so to threaten the entire IT world by protecting API copyrights.
With extreme cynicism, Oracle still requires millions of dollars for nine lines of code that a software student can write in a few minutes, and which, by the way, was used by an Android code writer who became a Google employee, who used his own code out of habit. Perhaps they counted on the ignorance of the judge and jury and hoped to impress them with obscure and intimidating lawyers? I would not want to be a client of this company. Are they not trying to impress me with the quality of their product with incomprehensible and frightening technical formulations?
May 9, 2014 Update: APIs Copyrighted
The Federal Circuit Court of Appeals found that Oracle is entitled to copyright in its API. The District Court ruled on May 31, 2012 that it was not subject to copyright. This new ruling was expected, given that this appeals court almost always rules in favor of patent and rights holders. But this establishes a copyright on the API, considered "structure, consistency and organization," that it is an expression of an idea, not the idea itself. This has not happened before, and this is specifically denied in Europe. The Court of Appeal also provided an opportunity for a new trial to decide whether there was fair use.
The Court of Appeal recognizes "creativity" in the selection and placement of declarations about the method, which is only speculation. APIs are genetic. They are usually determined by the following rules. In addition, programming languages are not subject to copyright (implementation is free) and are basically similar to APIs that extend them. The creator of the language always has the opportunity to include the function in the language or deport it to a separate API .
Judge Alsup distinguished between declarations (function interface) and implementations, which are expressions of functions. The former are considered part of the language. The Court of Appeal did not take this aspect into account and ruled that the interfaces are not functional, since they could have been designed in different ways, and therefore constitute an act of creation. It therefore concluded that Google was under no obligation to use them, that a previous court decision had mixed creation and use, the latter to be assessed later in relation to fair play.
While the previous ruling made clear that it applied only to a specific case of the Java language, the appeals court relied on more general concepts defining copyright. However, he ignored the functional aspect of the Java API and made a general judgment about the copyright of the API, which was inappropriate.
In fact, the basics of copyright here are defined with a rather narrow vision: a programmer who chooses between several ways to declare a function is like a plumber who can choose between a socket wrench or a draw wrench to unscrew a bolt... choosing one instrument from several would be a creative act!
10 October 2014 Update: Appeal to the Supreme Court
Google is asking the Supreme Court to overturn the appeal ruling, decrying a possible monopoly on basic building blocks of computer design and programming. He compares the case to that of Remington, which could claim a QWERTY keyboard from all typewriter manufacturers and thus appropriate the proceeds of the work done to make them marketable. Even if the Supreme Court refuses to rule (which is most often when asked), a new proceeding will be held before Justice Alsup to determine possible damages.
In any case, it is regrettable that Google chose Java over LLVM or any other solution as the language for the Android platform, especially since it completely rewrote the Java API implementation; it could implement another API in a different language. And Oracle, of course, does not take into account that it brought Java when it counts its results.
June 30, 2015 update: Supreme Court withdraws
On June 29, the Supreme Court denied Google a ruling challenging the appeal verdict, meaning the APIs remain copyrighted in the United States. However, it believes that their use can be considered fair game, and directs both sides to a new court for a decision. It is possible that it will rule on the case as soon as the lower courts exhaust their trials.
Oracle says this is a victory for innovation and those who rely on copyright to fuel innovation. It should be remembered that Java dates back to 1995, and Dalvik - 2008. It is also true that Oracle filed this lawsuit against its software patents, and only when it saw that they were not being used by Google added the API issue to its complaints.
December 30, 2015 update: Google moves to OpenJDK
Google has decided to replace its implementation of the Oracle API with OpenJDK, a GPL 2 version. This will not change anything for already compiled programs, and not much for developers of new applications because the APIs are similar. Google will also contribute to OpenJDK.
Google used a fork of a standard API called Harmony. Sun and then Oracle developed OpenJDK to counter Harmony (in 2007), but after Android was developed (around 2004). Google could have switched to OpenJDK earlier, but had no reason to. This lawsuit gave him such a reason.
To summarize, as a result of Oracle's actions against Google, APIs are protected by copyright, which may apply to developers of any programming language, but this no longer applies to Google, which uses Oracle APIs implemented under a free license!
May 26, 2016 update: Fair use determined by jurors
Following the Supreme Court's decision to send the parties back to the lower court to decide whether using the Google Java API is fair use, the jury ruled in favor of Google: out of the $9 billion that Oracle sought, it would not be awarded a cent. This is a complete defeat for the new Java rights holder.
Oracle's case for Claiming this amount seemed low from the start. Its lawyers struggled to demonstrate that sales of Java Mobile licenses had plummeted due to competition from Android, a free operating system, but they failed to demonstrate that it was the use of the Java API that made Android successful. It could be as successful under Objective-C (as the iPhone), under LLVM or .NET, as Google has created its own virtual machine (Dalvik) and its own API implementation. In such a scenario, Java would even lose its significance altogether.
Moreover, the dispute concerns 11,500 lines of "code" for declarations that make up this part of the Java API, while Android has 13 million lines of code.
2016 to 2018 updates: Overturned on appeal
On September 27, 2016, Judge Alstup denied Oracle a new trial, finding that his arguments for one were unfounded. (Source)
But on March 27, 2018, an appeals court ruled that the jury could not decide on fair use; only the facts were within his jurisdiction, and returned the case to a new court to assess Google's damages.
In January 2019, Google filed a petition with the Supreme Court asking that the appeals court reverse the decisions and uphold the verdict in its favor from the Northern District of California.
Updated November 15, 2019 - Supreme Court agrees to issue fair use order
The U.S. Supreme Court has decided to agree to rule on the case, which it does only for a portion of the cases that are before it.
The opinions of 78 computer scientists and 12 associations will be considered by the court, and this will not be in favor of Oracle.
Updated 4 April 2021 - Supreme Court final verdict
By a 6-2 majority, the United States Supreme Court ruled in favor of Google. One judge in court before the division did not vote. Oracle demanded $9 billion for 11,500 lines of code, essentially a declaration of classes and functions (rather than their implementation), for the Java library interface that Google used for Java applications on Android. Google believed that using the Java API, including function and class names, was necessary to use Java code, even though the body of functions and classes had been rewritten by Google for Android. After correspondence between courts and appellate courts, the case reached the Supreme Court, which ruled that the use of the API was, as Google put it, "fair use," meaning fair and without intent to copy and appropriate the work of others.
What the Supreme Court said:
The court found that copying the Google API to reintroduce the user interface, accepting only what was necessary to allow users to apply their accumulated talents to a new, transformative program, constituted fair use of that material in law. (Translation: allow Java programmers to use their expertise to program for Android.)
To the extent that Google used parts of the Sun Java API to create a new platform that could be easily used by programmers, its use was consistent with the creative "progress" that is the fundamental constitutional goal of copyright law itself.
This would come as a relief to any programmer who feared that using the interface of any software library to build an application - which is what they are designed to do - would expose them to copyright infringement.
Google exactly copied parts of the Sun Java API, and partly did it for the same reason that Sun created these parts: to allow programmers to call implementation programs that would solve certain problems. But since virtually any unauthorized use of a computer program protected by copyright (for example, for training or research) will do the same, stopping here will greatly limit the scope of fair use in the functional context of computer programs. Rather, to determine whether use is "transformative," we should go further and examine the purpose (s) and nature of copying. written more accurately. (Breuer)
Happy ending. Because there's no post-Supreme Court recourse for Oracle, which took a big slap in the face.
More info...
- Complaint about
- Mono creator's view of Oracle-Google controversy