What the Oracle vs. Google case was all about
By: dgun
June 6th, 2012
8:30 pm
Some of you may have heard about a recent court decision in a lawsuit filed by Oracle against Google. The following is a summary in what I hope is simple terms everyone can understand. And I should also note that I am not a programmer by occupation; for me it is only a hobby/interest.
Sun Microsystems created a programming language/platform in the 90's called Java. Java became very popular because Java programs can run on various systems (Unix, Linux, Windows, etc.) without being recompiled and because the Java language is programmer friendly. Sun released most of the Java language and platform under the GPL license in 2007, making the intellectual property freely available for anyone to use. For details on the GPL and similar licenses, see the Free Software Foundation.
At the time Sun open sourced Java, Google was interested in getting into the mobile phone market (Android) and needed something like Java, meaning something like the Java virtual machine and something like the Java language, to provide a programmer friendly framework for its phone (on top of the Linux kernel they intended to use). Discussions with Sun over a license didn't work out, so Google decided to pursue a different strategy.
Instead of adopting an already open version of Java, Google created their own implementation of the Java virtual machine called Dalvik, which was based on another separate implementation of Java by the Apache project called Harmony. Dalvik and Harmony are both licensed under a different open source license, the Apache license, which is not compatible with the GPL license. Part of the reason Google made the decision to create their own implementation was to avoid the GPL license.
When Google created Dalvik they used what is called a “clean room implementation”. The fact that Java was already open source made this relatively simple. Basically what happened is that one group of software engineers looked at the Java code and wrote a set of design documents and another group of software engineers implemented Dalvik based on those design documents.
A couple of years ago Oracle acquired Sun Microsystems. It is clear to almost everyone now that Oracle bought Sun primarily for the purpose of either forcing Google into a license agreement over Java or suing for damages. Oracle claimed patent and copyright infringement.
Oracle had a legitimate complaint in one sense: Google basically forked Java and broke the “compile once run everywhere” concept that made Java so popular to begin with. And although a legitimate gripe, it's not a very good grounds for a lawsuit. All I will say about the patent claims is that Oracle lost. The really interesting part of this case, and the part that could have had a negative impact on all of us, was Oracle's claim that API's are copyrightable. API's are application programming interfaces, which basically means “a standard, consistent way of doing stuff”.
This is why Google's clean room implementation of their own Java virtual machine is so significant. For example: When software engineer Joe Bob looked at the open source Java documentation, he saw various classes and methods for doing various things. Forget about what classes are (basically a named group of properties and methods), but consider that Joe Bob has to write a specification for the “bark” method of a “dog” class. Joe Bob describes what type of information the bark method needs (parameters), the name of the bark method, what type of information is returned by the bark method, and certain other qualities of the bark method. Joe Bob might even explain in some detail what the bark method does. What Joe Bob does not do, however, is explain how the bark method does what it does.
When programmer Susie Que gets the design document for the bark method, she creates a bark method based on Joe Bob's description, but then has to implement the functionality of the method from scratch.
So Oracle's hypothetical bark method might look like this:
public String bark(int loud){
switch(loud){
case 1: return “bark”;
case 2: return “BARK”;
case 3: return “meow”;
default: return “moo”;
}
}
public String bark(int loud){
if(loud == 1){
return “bark”;
}
else if(loud == 2){
return “BARK”;
}
else if(loud ==3){
return “meow”;
}
else return “moo”;
}
Therefore, in order to have copyright claims against Google, Oracle had to take the extraordinary position that API's are copyrightable. The judge in the case, William Alsup, instructed the jury to assume that API's are copyrightable and they did in fact find that Google had infringed. However, Alsup had reserved the right to rule as a matter of law whether or not APIs are copyrightable and he ruled that they are not.
An Oracle win would have made the current intellectual property mess in the United States much worse by encouraging more litigation, and thereby hurting innovation and the technology field as a whole. Oracle and Java would likely be infringing on other people's IP if their argument had won the day. Java's implementation of the “printf” method comes to mind. A great resource for more information on this case and similar cases is Groklaw.net.
Post Reply


7 comments on "What the Oracle vs. Google case was all about"
June 6, 2012 at 8:35 pm
So Oracle's bark was worse than its byte?
June 6, 2012 at 9:00 pm
Hmmm. The finding that APIs are not copyrightable is wonderful. There are lots of popular APIs that programs have already been written to, and copying them would allow much lower barriers to entry for a lot of content-provider companies.
June 6, 2012 at 9:06 pm
So Oracle's bark was worse than its byte?
What is funny is that Oracle is now going after a pesky patent troll who has been bugging them for money on some idiotic patents. Actually, they've been bugging a lot of people. I will be cheering for Oracle in that case, but the hypocrisy of Oracle makes me chuckle.
June 6, 2012 at 9:08 pm
Terr, do you have an opinion on intellectual property in general?
June 6, 2012 at 9:13 pm
Terr, do you have an opinion on intellectual property in general?
Google basically rewrote Java from scratch. All power to them.
I in my programming career came up with a few innovations, usually in visual UI, that have been widely copied in the industry. I never patented them, never wanted to do so, and actually enjoy seeing them today in various programs. Now, if someone steals my actual code, I would be pissed.
June 7, 2012 at 8:41 am
So Oracle's bark was worse than its byte?
June 7, 2012 at 7:42 pm
Definitely. But APIs should not be counted as such. Neither should file formats be. The fact that GIFs were patented and the patent aggressively defended for a while was a travesty.
Google basically rewrote Java from scratch. All power to them.
I in my programming career came up with a few innovations, usually in visual UI, that have been widely copied in the industry. I never patented them, never wanted to do so, and actually enjoy seeing them today in various programs. Now, if someone steals my actual code, I would be pissed.