Oracle v Google

Image from

Oracle v Google is a well known case that went on for nearly a decade. The case was a copyright claim Oracle made against Google for unlicensed use of Java APIs in its Android devices. Many developers feared that if Oracle won it would impose new limitations on open source software. However, I believe that Oracle was in the right and that copyright is beneficial for open source developers.

One good lense to put over copyright laws is are they useful for open source software developers? It’s pretty clear that they are, since a lot of the most common open source software licenses (like GPL) rely on copyright to work. In my opinion copyright laws protect the small guy as much as they protect large organisations. Take for example, who moved from MIT to a GPL license and successfully stopped cheeky competitors from making private changes to their software and reselling it.

Java SE is open source under the GPL license. The condition being that developers contribute back their innovations to the public. This doesn’t apply to companies who wish to change the Java source code for their own commercial use. Instead this would fall under the Java commercial license.

Do ordinary developers have to worry about Java’s copyright? Most likely not. Unless you are creating a derivative of Java and plan to commercialise it.

Are APIs Copyrightable?

APIs are technically lines of code and all lines of code are copyrightable. This is why the first judges decision in the case was overturned.

Google line-for-line copied code from the Java code base that even had the old Sun license at the top. So it wasn’t even an honest mistake. Email communications between senior Google employees showed they were aware they were infringing the Java license but decided to do so anyway.

It was clear there was a copyright issue. At this point proceedings continued on Google’s argument that their use of the code was fair use.

The jury found that Google infringed Oracle’s copyrights in the 37 Java packages and a specific computer routine called “rangeCheck,” but returned a noninfringement verdict as to eight decompiled security files. The jury deadlocked on Google’s fair use defense.

Stanford describes fair use as the following:

In its most general sense, a fair use is any copying of copyrighted material done for a limited and “transformative” purpose, such as to comment upon, criticize, or parody a copyrighted work. Such uses can be done without permission from the copyright owner.

Using the above definition it’s hard to see why Google won on this argument, since clearly code was copied for commercial reasons. This verdict was eventually overturned.

Why would Google copy code?

Google has enough engineers that they could’ve rewritten an entirely new language rather than risking copying Java’s code. So why not rewrite the libraries with different APIs? The reason is they then would have had to re-train the millions of Java developers who already know the current APIs. Capturing the Java developer audience was the point of creating a Java-clone in the first place.

Google could’ve also negotiated a license fee to pay. But likely they believed this would’ve been too expensive.

This feels wrong to me as you can’t have it both ways. You can’t decide that you want to use someone else’s thing because it’s valuable and also pay nothing for it.

Cleanroom Design

One way Google could’ve made a compromise is to use cleanroom design. A cleanroom is a way to get as much information as possible from another’s work but not going as far as to infringe copyright.

Cleanroom design ensures the person building the new library never sees the original code. An intermediary looks at the original code and writes down the attributes of the original code i.e. what it does, but doesn’t put down any actual code. The transcription is reviewed to ensure the information captured doesn’t infringe copyright. The docuemnt is then given to the team building the new library.

Cleanroom Design was a key point in the Nintendo v Atari case. However Atari didn’t strictly use the method and lost because they directly copied small parts of Nintendo’s design.

If Google had used cleanroom design it could’ve avoided it’s copyright issues. It would’ve resulted in APIs that had completely different method signatures to the originals which isn’t ideal, but it would’ve at least been feature-complete.


updated_at 02-08-2019