Have you heard? Sun Microsystems is open sourcing Java.
Scratch that. Truthfully, there were no champagne corks popped here at the InfoWorld offices following Sun's announcement. This is nothing more than the same equivocation we've heard again and again. The biggest question of all remains: When will it happen? And to that question there is still no answer.
So why does Sun keep dragging its feet? I suspect the answer could be in your pocket right now.
Green and others claim compatibility is the foremost concern, but I'm skeptical. If Java were fully open sourced, competing Java environments could break cross-platform compatibility and lock users into a single vendor's implementation. That's exactly what Sun alleges Microsoft tried to do back in the 1990s, which became the subject of a bitter lawsuit.
But wait a minute. If a programmer writes Java code that accesses Mac OS X's Cocoa APIs, that software won't run on any other system but a Mac. Similarly, although the Eclipse project's SWT (Standard Widget Toolkit) GUI toolkit is cross-platform, it is optimized best for Windows. The truth is that developers often write Java code that's never meant to be cross-platform. To a certain extent, the compatibility argument is something of a red herring.
Meanwhile, every time Sun invites InfoWorld staffers to hear about the bright future of Sun's software business, company execs always seem to spend a lot of time talking about the cool new games that run on Java cell phones. This leaves us scratching our heads somewhat -- we deal in enterprise IT, not consumer gadgets. But it's clear that this topic is very close to Sun's heart.
And why not? While you and I can download Java for free for our Macs, PCs, and Linux boxes, mobile device manufacturers pay a license fee to Sun Microsystems for every Java-enabled handset they ship. For Sun it is (of all the unheard-of things) a revenue stream.
Now imagine what would happen if Java were truly open source. What if Motorola, Nokia, Sony-Ericsson, and all the rest were free to create their own custom versions of Java that ran on their mobile handsets and other hardware?
Something tells me that the kind of "compatibility" Sun wants to preserve in the Java community is the kind that keeps all those mobile device licensees compatible with Sun's bottom line -- not to mention all its other licensees, such as BEA and IBM. The full scope of the fees Sun receives from these has never been disclosed.