Oracle vs. Google and Java Patents

Friday, August 13th 2010, 15:46

Yesterday Oracle announced that it would sue Google over the use of Java on its Android platform. The net is screaming about this subject and most of the people commenting on it are defending Google. Although Google has its fair share of excellent contributions to the computing world, I do not think it’s fair to accuse Oracle without knowing the facts first. Most of the opinions against Oracle are based solely on the argument that Oracle bought Sun Microsystems and consequently MySQL and therefore Oracle is bad.

The Java Language Specification (which is protected by many patents some of which are in question in the aforementioned lawsuit), in its copyright notes, mentions this (I have emphasized important phrases with italics):

Sun Microsystems, Inc. (SUN) hereby grants to you a fully paid, nonexclusive, nontransferable, perpetual, worldwide limited license (without the right to sublicense) under SUN’s intellectual property rights that are essential to practice this specification. This license allows and is limited to the creation and distribution of clean room implementations of this specification that: (i) include a complete implementation of the current version of this specification without subsetting or supersetting; (ii) implement all the interfaces and functionality of the required packages of the Java 2 Platform, Standard Edition, as defined by SUN, without subsetting or supersetting; (iii) do not add any additional packages, classes, or interfaces to the java.* or javax.* packages or their subpackages; (iv) pass all test suites relating to the most recent published version of the specification of the Java 2 Platform, Standard Edition, that are available from SUN six (6) months prior to any beta release of the clean room implementation or upgrade thereto; (v) do not derive from SUN source code or binary materials; and (vi) do not include any SUN source code or binary materials without an appropriate and separate license from SUN.

Oracle’s complaint is available here. By studying both the complaint and the above text one can clearly make the connections. It is also interesting to study the patents which have been used for the accusation counts.

I particularly dislike the fanboy-ism that everyone is manifesting now and of course the double standards applied by the same happy bunch. When Sun sued Microsoft for breaching the license terms nobody jumped to defend Microsoft the same way they do with Google now. My suggestion is to wait for the court to pronounce its decision without starting flame-wars for free. After all, both Google and Oracle have begun showing their evil side in the last couple of years…

You might also like:

6 Comments

  • Evil side of both companies: agree. But still, I think Google is less evil than Oracle.

    Did you look at Google’s counterclaims? There are also some interesting comments on that document on groklaw. Essentially, Google says three things: first, they did not breach the copyright and did not infringe on patents, second, Oracle’s patents are not valid anyway and if there is copyright breach in Android’s code it’s not in code written by Google, and third, Oracle should lose the case even if it is right in its statements, because neither Sun nor Oracle have previously enforced the patents in Java, Oracle has defended a complete opening of the Java platform in the past, but changed its mind later on and by doing so has misled people into believing they can use the Java platform openly, even after it was acquired by Oracle.

    Furthermore, by not being specific in their claims, and not putting their fingers on the Android code which violates copyright or infringes patents, although the Android code is freely available for quite some time, Oracle has put itself at risk to have the case dismissed for different reasons (there is a precedent).

    Google has to get only one statement accepted by the court on each count, and the entire case is dismissed. I think Oracle’s position is weak. But then again, American justice is weird, so we’ll never know until it’s over.

  • Just remembered one more thing: at the time MS was sued by Sun, MS was clearly in breach of licensing terms, since they provided a Java VM which was not 100% compatible with Sun’s VM. As opposed to Google, who doesn’t provide _any_ Java VM. So I don’t think there’s double standards being applied when people defend Google although they didn’t defend MS.

    • Dalvik is a JVM… Furthermore Google has infringed the patents granted by not respecting the copyright notice you see in the post. Dalvik is a subset of the JVM which doesn’t allow code written for another JVM to be executed. No more cross-platform implementation, although that’s the strongest attribute of Java.

      The Java platform is open (since 2007, with some minor proprietary exceptions – see here), only that when one creates a JVM has to respect the standards.

      Regarding the code example, I have tweeted a picture a few weeks ago which is now an admitted proof to the case. So, do you still think that Google is not evil regarding this? :P

      • Dalvik is a VM indeed, but IMO it’s definitely not a JVM. Its bytecode format is different. Even its architecture is different (stack machine vs. register-based – says wikipedia). The fact that there is a translator from Java source code to Dalvik bytecode does not make it a JVM, IMO. The only thing that would make it a JVM was proof that it can run Java bytecode, which it cannot. There are lots of other translators, for other languages, too.

        Since Dalvik is not a JVM (MO), what JVM-related copyright notices has Google infringed? If you disagree, could you please explain what makes Dalvik a JVM in your opinion?

        I agree, Dalvik took over lots of concepts and tried to stay as compatible as possible with an actual Java platform regarding the provided APIs. But these APIs are not copyrighted in themselves. IMO, it would be a quite damaging thing to allow APIs, not implementations, to be copyrighted or even worse, protected by patents. Can you imagine what this would mean for ReactOS or Samba? Or even Wine? I think even gcj would be in danger of being discontinued.

        Particularly about the code in the picture you have posted on twitter, here’s a comment on the issue (IMO a pertinent one): http://carlodaffara.conecta.it/?p=549. The code in question is not Google’s code, but was taken over from Harmony, which is licensed under the Apache license, which took it from OpenJDK, which is licensed under the GPL. Which supports Google’s claims that if there is any copyright infringement, it isn’t in Google’s code.

        Additionally, you are a coder. Try to code the same logic that’s expressed in the code you list. Then look if your code looks significantly different. I think you’ll find that there are no larger differences between any two of the code samples you posted plus your version. The code clearly isn’t identical to the bit. A claim of copyright infringement on that code is IMO almost similar to a claim on copyright infringement on two C versions of “Hello World”.

        I think Google has definitely not created Android for fun, but for its potential to make money. But I don’t think this is evil in itself. IMO, Google’s evilness is to be found in the way it uses the information it collects – there are lots of cases emerging where Google was evil in this regard. But still, what Google does for the open source movement is IMO laudable. Not so what Oracle does – it contributes very little, and now puts thousands of open source projects at risk of being shut down or loosing user/sponsor confidence. Besides, Oracle’s openly admitted policy on open source is to prey on it, not to contribute to building a viable services-based business model based on open source (like IBM does, for instance). Like if Google was a gardener, whereas Oracle was just a gatherer. Which automatically makes Oracle more evil for me – in the open source world, it consumes resources in an unsustainable way.

      • I corrected myself in the same comment by saying that Dalvik is a subset of a JVM (it includes classes from Java SE 1.5 – at least collections and threads from what I’ve read until now). I shouldn’t have written that Dalvik is a JVM. Regarding the code in the picture I posted on Twitter, check this out.

        Anyway, as I have said in the post, let’s let the court decide on the validity of the case and let’s not jump to rushed conclusions.

        And Oracle does contribute to the FOSS movement. More details here.

        I am not on any company’s side, I just want people to stop being so radical when it comes to conflicts like this.

      • Just one more comment: if you look at the open source projects Oracle supports they are of two sorts: first, the most of them, open source projects which Oracle got through acquiring other companies (Glassfish, MySQL etc.), second, projects pushing a technology in which Oracle has a specific commercial interest (Apache MyFaces Trinidad – JDeveloper didn’t get off as a commercial product, so they open sourced a tiny piece of code related to it, in the hope they’ll get more developers using it).

        BTW, are you aware that the ASF has quit the JCP? Did you look up the ASF’s motivation? I think it’s interesting to read, not necessarily in relation to the Oracle vs. Google lawsuit.

        OTOH, I like Java, and I like the ecosystem built around it even more. What Oracle does makes me think I’ll have to switch to something new – something that will most probably come from Google. So I’m obviously biased.

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


CODE EXAMPLES: When you want to include source code or terminal output, please use the the following tags like in the next example:

    [language]
    code lines
    [/language]
	

where you substitute language with the programming laguage used throught the code example (for terminal output that would be bash), e.g:

    [bash]
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    [/bash]
	

To see a list of all the supported languages, please check this page.

If you want to include code bits inline, please use the code tags like in the following example:

    The <code>$USER</code> variable holds the current logged in username.
	

Projects that I support

Recent Comments

  • nope said:
    yeah that was my first thought too, but: mount: warning: seems to be mounted read-write. too bad, would have been just perfect. more»
  • Klaus Deiss said:
    Dear Radu, I tried it on Ubuntu 10.0.4.2 and 10.0.4.3 with different kernel versions (amd64 server 2.6.32 kernel). No... more»
  • scompo said:
    Nope.. Now it’s not working again.. This printer it’s a real pain in the butt.. The other hp printer I had... more»
  • Dmitrij said:
    Thank you Peter and Patrice. Could you please post the updated script? more»
  • hd_flash_pains said:
    didn’t work for me more»

Recent Tweets

Bear