What Does Android Mean for Sun’s OpenJDK

David Berlind was the first person to point out in his article that Android may be the start of a power stuggle for Java. Stefano has also an interesting perspective on Google’s plans to get around Sun’s IP restrictions for Java ME.

Now that the Android SDK is out, it is clear that Sun and the OpenJDK are not part of Google’s plans. Android includes a new virtual machine, called Dalvik, and makes significant use of the class libraries provided by Apache Harmony; no OpenJDK and no Java ME. In fact, the Android documentation makes very careful reference to the ‘Java programming language’ but not specifically stating that Android includes Java. Despite Jonathan Schwartz lame attempts of PR spin by congratulating Google on Android, this is definitely bad news for Sun, OpenJDK and JavaME.

IMHO, this is not a good situation for the Java community but I think it was predictable. Sun has been hyping the fact they have open sourced Java but in reality they have open source Java with a lot of restrictions.

First, they have limited the ability to certify other Java implementations . The Apache Software Foundation has been trying to access the Java TCK to test their version of Java, called Harmony. Sun’s response has been to impose ‘field of use’ restrictions that would limit the ability of Harmony to run on mobile phones or any embedded devices. Sun has made the TCK available only to those Java implementations that are GPL licensed and significantly derived from OpenJDK. Basically Sun is saying ‘we will only certify implementations of Java we have influence over and we will not mess with our license revenue from the mobile industry’. Kind of like saying we are kind of open.

Second, when Sun open sourced Java they chose the GPL license but included the classpath exception for the SE version. In the Java ME version, the GPL license is used without the classpath exception. For mobile operators that want to use Java but not GPL their Java applications, they have to purchase a commercial license from Sun. Again, Sun is protecting their license revenue from the mobile phone industry. I am all for companies making software revenue but don’t try to call it open source.

[Update: please see the comments before flaming me on this last sentence.  I do not plan on changing it but I regret not being more specific in my thoughts.  :-)] 

Finally, Sun has made very little progress on establishing a governance board for OpenJDK. Last year they announced at JavaOne an interim council to help create the governance board for OpenJDK. However, based on the mailing list, progress is very slow. It would appear the last meeting they had was in July? I hope they are making more progress behind the scenes. Open governance is important to creating a community of trust. Right now, OpenJDK is firmly controlled as a Sun product line.

IMO, these three factors have created an environment that made it an easy decision for Google to go it alone with Android. Google wants to have an open platform that is quickly adopted with a vibrant ecosystem supporting it. In essence they want a bazaar not a cathedral for the mobile phone industry.

Sun has set the bar too high for OpenJDK. Yes, OpenJDK is a step in the right direction for creating an open source Java but so far Sun is limiting the full potential of what OpenJDK could accomplish.

btw, Happy 1st Birthday Free and Open Source Java lets hope you have a successful adolescence.

20 thoughts on “What Does Android Mean for Sun’s OpenJDK

  1. “For mobile operators that want to use Java but not GPL their Java applications, they have to purchase a commercial license from Sun. Again, Sun is protecting their license revenue from the mobile phone industry. I am all for companies making software revenue but don’t try to call it open source.”

    Not that I agree with everything does, but this is plain wrong. Licensing the mobile version under pure GPL (no classpath exception) does not make it any less open source. It may make it less useful for mobile operators who want to build *proprietary* software with it, but it does not reduce it’s open-sourceness in any way.

    (I do agree with most of what you say in the post though 🙂 ).

  2. Igor,

    You are correct, it is still open source. What I meant to say was that Sun shouldn’t expect a wide community to embrace Java ME as an open platform. Certainly some community will develop but I think it will be limited based on Sun’s desire for a revenue stream in this area.

  3. Ian;

    “I am all for companies making software revenue but don’t try to call it open source.”

    1) Are you saying Sun’s OpenJDK is “fake” open source?

    2) Are you really saying companies should *NOT* make money from open source projects?

  4. To me it appears that the licensing stuff is only half of the story. This doesn’t explain, for instance, why Android does not include a full JDK5, which technically is possible since Harmony covers 99% of it. There has been some technical motivation here.

  5. So do you consider QT not to be open source either then? Because they require you to GPL any software you write with it unless you buy a commercial license?

    Java ME most certainly is open source. The GPL is, by definition, a legitimite open source license. The most popular one in fact. So I don’t see how you can claim that Java ME is not open source, and Sun should not call it that. It’s just as open source as Linux is.

  6. Augusto and Pantheraleo

    You are correct Java ME is definitely open source and as I mentioned in the comment above I regret not being clearer.

    It is open source and Sun should be able to call it open source. However, I think the lack of the classpath excpetion for Java ME was part of the strategy to ensure Sun protects it commercial proprietary revenue. This strategy has created an environment that makes something like Android interesting to the traditional Java ME licensees. If Sun had released JavaME with the classpath exception then benefit of Android available under a different license goes away.

  7. (Disclaimer: I work for Google but am not involved in Android.)

    Dual-licensing under GPLv2 has a long history. Sun’s moves with mobile Java licensing are neither original nor surprising. Borland did it with Kylix; MySQL does it; Sleepycat does something similar too. If you don’t like it, make your own VM and license it the way you want. Like, you know, Google just did.

  8. The interesting question is, of course, why doesn’t anyone have the courage to ask the same questions of Google, that they ask about OpenJDK? 🙂

    Android is proprietary, despite being marketed as open source. Android has a compatibility pledge, signed and kept behind closed doors. Android has no governance model, nor any indication there will be one. Android has no spec, and the license prohibits alternative implementations, as that’s not a use licensed by Google in the SDK license. Android is completely controlled by Google, and Google reserves the right to kill off competitors applications if they hurt Google financially, etc. It’s only as open as it is in Google’s financial interest to allow openness, by design. Same old proprietary Java wine, in a different bottle.

    It’s as if we’re witnessing the rebirth of the JCP, with folks lined up to lend open source community ‘street credibility’ to another closed off vendor cartel around a single, proprietary implementation, this time with Google instead of Sun.

    Isn’t one JCP enough to show that that model inevitably leads to a deadlock?

  9. Just when you hope that there is realization on the part of platform providers that fragmentation can lead to a disruptive “defrag” process, some more bits are splintered about. What is a developer to do? I do agree with Dalibor that this may be another attempt to gain the strategic heights, perhaps on the back of the momentum of Java, only to later channel that current into a different technology/language (as Neil Bartlett has suggested: http://neilbartlett.name/blog/2007/11/13/google-android-now-100-java-free/). Thats fine, competition is good. I think Sun has every right to monetize Java, just as does Google with their apps, just as does IBM with Eclipse. It would be good long-term strategy, in my opinion, if a unification of some sort is attempted — Java is not the only mobile tech around — such that continuity of present investment around Java can advance in the face of more closed, yet potentially better equipped competitors.
    Splintering Java may drain it for good, but then we’ll all just have to adapt…

  10. Dailbor,

    I think all of your questions are fair game for Google and they need to answer them if they want to be successful. In particular, I think it is pretty bad that they announced it as open source but the license is different. Pretty misleading. However, they have demonstrated a reasonable track record with GWT so I open to giving them time.

    In the grand scheme of thing I think it would be nice to find a way not to splinter the Java community. No one wants another JCP 🙂

  11. The existing JCP has been quite amusing to watch from outside over the years, a bit like some filthy rich people soap opera from the 80s.

    Unfortunately, we can’t just let the proprietary vendors screw the platform up, as they are incapable of finding a common ground without external pressure, so we’ll have to generate that pressure from within the JCP. It’s a lot more efficient to fix the problems there, rather than to have to take over the potential SWT-CP, JavaFX-CP, and Android-CP to agree. 🙂

  12. Chuaigh mé ag campáil | áilleacht néal a chur ar leathanach gréasáin . Bookmarked Inseoidh mé aon duine leathanach gréasáin . !

Comments are closed.