Sun Microsystems took advantage of LinuxWorld to announce that, at long
last, it was serious about releasing much of its Java system under an open
source license. The upcoming releases - which could happen by the end of
the year - will include both the Java Standard Edition and Java Micro
Edition products. The Hotspot VM and the Java Development Kit are to be
part of this release. For many Java developers, this is the moment they have
been waiting for. Of course, there are a few remaining questions.
For years, Sun has resisted calls to release Java. The company's primary
reason for keeping Java proprietary was that it was necessary to keep Java
implementations compatible. A truly free Java would compromise the "write
once, run everywhere" promise frequently made (if less frequently kept) by
Sun. So, one might well ask what has changed. Here's the story from Sun:
now think the benefits of accelerating innovation, opening new
markets and opportunities, and fostering creativity that the open
source model brings now outweigh the risks to compatibility. These
risks are real, but at Sun, we believe that the wisdom of the
community has evolved to where the market and developer community
itself will act to demand compatibility as a bedrock feature of any
implementations based on Java technology.
So, in other words, we are now smart enough to be entrusted with a free
Java. Better late than never.
The usual post-announcement routine will have to be endured before a free
Java is a reality. A thorough review of the code must be done so that
Sun's lawyers can convince themselves that Sun has the right to release it
all, and any encumbrances must be dealt with. Some sort of governance
model must be chosen: who will decide what changes make it into mainline
Java? Sun will want to retain some control here, but an overly
tight-fisted approach could encourage a fork of the code and a potential
loss of the compatibility that Sun values so highly.
Then, there is the issue of what license is to be used for the Java
release. One might expect Sun to reach for the CDDL first, and that might
be just how it plays out. But Sun might just want to consider how the
newly-licensed Java would play with existing free projects. GNU Classpath is licensed
under the GPL, so mixing of Java and Classpath code can only happen if Java
carries a GPL-compatible license. On the other hand, the Apache Harmony project,
which has made great strides toward an independent and free Java SE
implementation, is using the Apache V2 license, which is not
compatible with the GPL. This license difference has helped to keep
Classpath and Harmony separate until now, and Java may have to choose a
side (or neither).
One intriguing possibility is that Java could be released under GPLv3 (as
soon as that license is real); version 3 of the GPL is intended to be
compatible with the Apache license.
All of this depends on whether Sun places any value on license
compatibility with the other projects or not - and how that value compares
to Sun's other goals. Sun will have to work through a lot of issues before
it can come to a real answer to these questions. But it does appear that
the company has committed itself to releasing Java under a free license,
and that can only be a good thing.
to post comments)