Java and Linux - an open marriage in search of success
Two-years and counting
That could change soon, though, as the Linux Foundation has announced the Linux Standard Base 4.0, due in "late" 2008", will work with Java SE 6.0. The LSB should at least ensure certified Linux distros and the applications on them work consistently with Java SE 6.0.
LSB 4.0 due to be supported by Asianux 3.0, Mandriva Corporate 5.0, RHEL 5.0, SLES Enterprise 10 and Ubuntu LTS 8.04, according to the Linux Foundation.
Underlying this, though, are two important facts. LSB 4.0 won't - as ever - be supported by all distros so consistent development and administration will remain a challenge.
Also, it's unlikely Java is ever going to be the "de facto" language of choice for Linux developers: they'll stick to their FOSS favorites. Take Glassfish: Sun's failed to prove where Glassfish is being used to change the market or challenge paid-for rivals. Indeed, there's already an established enterprise-edition tuned to a new, light-weight world that's doing very well nicely: it's called Spring.
Next, there's the test compatibility kit (TCK) issue. The TCK provides the compatibility yardstick to measure the Java Virtual Machine (JVM's) purity. Sun seems adamant that the TCK will never be opened: if it were, then it could be forked, then there would be much fear and chaos in this darkened world.
But then, isn't the freedom to choose to fork the whole point of open source? Detractors point out that while the move to put Java out there under the GPL appears to be more than mere lip service, beneath it all Sun hasn't really opened up anything. Sun still holds tight control over its intellectual property.
Then again, one wonders how much Sun would really be obligated to give away, to appease Stallman and the Slashdotters.
What I'm left with is a sense that opening up Java with GPLv2 was the right thing to do and was a shrewd move by Sun: but, while it may have silenced a few open-source zealots, two years later in purely practical terms it hasn't really achieved very much.
The one notable exception was that OpenJDK helped bring Java 6 SE to OS X and looks set to put it in the LSB.
Aside from that it's not clear whether we are really any further forward. You can now download a Java Runtime Environment (JRE) for your mum's favorite brand of Linux, but then you already could. You can now ship the JRE with your own product, but then Sun's licensing allowed that already.
Elsewhere, native Linux developers are as unlikely as ever to use Java to create new applications and if anyone sees fit to fork Java they'll have a hard job without an OpenTCK. As far as corporate programmers go, they may have read about OpenJDK in their lunch breaks but that's probably about as far as it goes for them. Not exactly deep impact.
Java is already king in the land where it matters - on the serverside - and Sun is still doing silly walks when it comes to client-side Java.
It seems that Sun being prepared to talk the talk about OpenJDK had a far greater effect than walking the walk. But for all of that, opening up Java was the right move, and I'm excited to see what inroads the OpenJDK will have made in another two years from now.®
Matt Stephens is co-author of Use Case Driven Object Modeling with UML: Theory and Practice, which illustrates how to get from use cases to source code and tests, using Spring Framework, JUnit and Enterprise Architect.
Additional reporting by Gavin Clarke