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.
It's a shame. Sun has been criticized in the past for not being able to make up its mind about Linux, and for not being able to make up its mind about open sourcing Java. But the truth may be much more problematic. It seems Sun can't make up its mind about what kind of company it is. Does it really believe that the future of the software business lies in the subscription/support model, as it claims? Does it really plan to open source all its software in the next 12 to 18 months? Or does it want to continue acting like a closed, proprietary software company, relying on license fees from partner companies?
Sun claims to want consistency across its software business. Unfortunately, it appears the question is not how it wants to do this, but whether it really wants to. And as for when it will make up its mind, that continues to be anybody's guess.