Choosing Java sides

Recent events highlight community's division on how to work with Java

With all the drama going on with Nokia this month, it was easy to miss other goings on. But one thing of note to the open source community was the Free and Open Source Software Developers' European Meeting (FOSDEM), where FOSS developers from around the planet congregated in Belgium Feb. 5-6 to groove on all things FOSS.

One of the FOSDEM sessions that caught my eye was "IcedRobot: The GNUlization of Android," which announced a new project that hopes to take Android and change it so it has a clean-room OpenJDK-based Java VM and will be based on what they refer to as a more standard Linux kernel.

The idea here is to get this Android fork to run on something like a Linux desktop, hence the need to have IcedRobot on a more vanilla Linux kernel. The swapping out of the Dalvik VM for something from OpenJDK is a clear move to get this project out from the litigious crosshairs of Oracle, which is currently suing Google for trademark infringement over Oracle code that's allegedly in Dalvik and shouldn't be.

I wasn't in Belgium, and I am curious to hear how the community will be reacting to this. The push to get Android running on a desktop environment seems to be a bit... dated. Android is doing quite well on the platforms upon which it runs now, and desktop Linux is, while solid and stable, not exactly growing as fast at the mobile platform base. In that context, IcedRobot comes across as one of those "hey, let's see if I can run Linux on my microwave" projects.

Still, if they can pull off the getting a new Java VM running well in their code, that could be something of interest to developers interested in Android and not interested in getting caught up in what is sure to be the long and protracted legal battle between Oracle and Google over Dalvik.

It's a genuine concern: there were rumors flying around in late January that RIM was thinking about using a Java VM and other tools so they could run Android apps on BlackBerry devices. One of the VMs they were looking at was supposedly Dalvik, which--if true--would have been a strong validation for Google's claims they haven't lifted Oracle's code. The rumors have settled down to a new thread: RIM is still considering using somebody's Java VM to run Android apps, but it won't be Dalvik. Rumors being rumors, we can only speculate why RIM backed away from Dalvik, but it's a reasonable assumption that they didn't want to tough the Oracle/Google third rail.

OpenJDK itself is an interesting choice in and of itself. IBM left Apache's Project Harmony (the OpenJDK alternative from which Dalvik is based) last year to join OpenJDK, a move that surprised quite a few people. Recently, IBM's seen the fruits of their move pay off, having been granted a new measure of control over OpenJDK governance, thanks to a change in the OpenJDK bylaws. While IBM will still have to be first officer to Oracle's captain, it's a lot more influence over Java development than they've had before.

Oracle is working hard to get all of its Java ducks in a row now, and to me that's a good indicator that Java was the one thing of Sun's that Oracle really wanted. Oracle's assertion of control is also disruptive to a degree: we now see the community choosing sides on what kind of Java they want to use.

But is this disruption negative? Cynics may say it is, but I am not so sure. Oracle may simply be exercising the power over Java that Sun had all along--power Sun was too afraid to use for fear of risking the community's wrath. While few are thrilled with everything Oracle is doing regarding Java, one thing's for sure: Oracle's definitely making better business use of Java.

ITWorld DealPost: The best in tech deals and discounts.
Shop Tech Products at Amazon