What the Oracle vs. Google case was all about

By: dgun
June 6th, 2012
8:30 pm

What the Oracle vs. Google case was all about

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:

Code:
public String bark(int loud){

switch(loud){
case 1: return “bark”;
case 2: return “BARK”;
case 3: return “meow”;
default: return “moo”;
}

}
Whereas Google's might have looked like this:

Code:
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”;

}
These two methods have the same signature, which basically means they: 1) Have the same name 2) Have the same arguments 3) Return the same type of data. These two methods also behave exactly the same. That being the case, they are compatible. A programmer who has used the bark method in Java knows exactly what to expect when using the bark method in Android's Dalvik. More importantly, code that already existed which used the bark method on Java virtual machines does not have to be changed to be used with Dalvik. The whole point of an API is to provide this consistent basis and common understanding of how things work and to facilitate interoperability.

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.

Join the Discussion!

7 comments on "What the Oracle vs. Google case was all about"

  • rcclydeinside
    June 6, 2012 at 8:35 pm

    So Oracle's bark was worse than its byte?

  • Terr
    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.

  • dgun
    June 6, 2012 at 9:06 pm

    Originally Posted by
    So Oracle's bark was worse than its byte?
    It was a disaster for Oracle. If they had felt their patent claims had more of a chance, they would probably not have pursued the copyright case. It was a faulty premise to begin with and they were thoroughly thumped by Google's defense and by a Judge with refreshingly good common sense.

    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.

  • dgun
    June 6, 2012 at 9:08 pm

    Terr, do you have an opinion on intellectual property in general?

  • Terr
    June 6, 2012 at 9:13 pm

    Originally Posted by dgun
    Terr, do you have an opinion on intellectual property in general?
    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.

  • Levski
    June 7, 2012 at 8:41 am

    Originally Posted by rcclydeinside
    So Oracle's bark was worse than its byte?
    No, Google's hardware byte-sized Oracle's microchip. It was all a very sad malfunction of patent/copyright lawmaking.

  • dgun
    June 7, 2012 at 7:42 pm

    Originally Posted by Terr
    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.
    We are in agreement. And I hate software patents.

    Originally Posted by
    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.
    Cool. I never knew that about you. But tech stuff hardly ever comes up on this forum anymore. Boogeyman and I use to discuss tech off and on.



Post Reply