Sun has been dealing with calls to loosen its grip on Java for years. During the last several weeks, these calls have intensified, with open-source advocate Eric Raymond and IBM Vice President of Emerging Technologies Rod Smith both challenging Sun to make its Java code available under an open-source license.
Should Sun set Java free? Lightening the license restrictions on Java might be in IBMs best interest, and it would certainly be a boon to the open-source community, but the key questions are whether and how an open-source Java would benefit Suns goals.
The way that Sun has begun to embrace Linux suggests that the company understands that its future is tied to free software. If Sun expects to participate in and exert its influence on open-source software development through Java, it will have to make some changes.
While Java source code is available for perusal and while the Java Community Process allows for community participation in the shaping of Java, ultimate control of Java rests completely in the hands of Sun—a fact thats hindered the use of Java in core open-source projects. This is why, despite its name, Suns Linux-based Java Desktop System contains no significant Java-based components.
Even where open-source software makes use of Java, such as in the Java-based Eclipse IDE or parts of OpenOffice.org, the fact that theres no up-to-date free JVM available means that most Linux distributions must ship without one.
As a result, the features that require Java are disabled in the version of OpenOffice.org that ships with Red Hats Fedora, and the version of Eclipse included with Red Hat Enterprise Linux is compiled into native machine code with the free-software project GCJ rather than run on a JVM. While GCJ produces a version of Eclipse that runs much faster than the standard JVM-based version, GCJ is a work in progress. For example, it isnt possible to debug an Eclipse plug-in with the GCJ version of Eclipse alone.
Dont Fear the Fork
Dont Fear the Fork
So far, Sun seems unconvinced about the merits of opening Java, citing fear that an open-source Java would be vulnerable to forking, or splitting into multiple incompatible implementations.
Sun is still smarting from its Java battles with Microsoft, which attempted to subvert Java with Windows-specific extensions, and Suns afraid that a powerful vendor like IBM might likewise splinter Java for its own purposes.
I think Suns fears of forking are overblown, and these fears underestimate how important Java compatibility is to customers and, by extension, to other Java vendors.
Jonathan Schwartz, executive vice president of Suns software group, points to Linux as an example of forking in the open-source world, but the Linux kernel has actually proved fork-resistant. While its true that there are many different Linux distributions, each runs a kernel from the same project.
Its also true that binaries packaged for Red Hat Enterprise Linux may not work properly on Debian or another Linux distribution. However, the work required to repackage a piece of software to move from one Linux distribution to another isnt so different in scale from the work now required to move a J2EE application from one application server to another.
Far from sounding the death knell for Java compatibility, a freer Java would allow for greater compatibility among Java implementations, particularly in places where current license restrictions force projects to turn to hacks and workarounds, as with OpenOffice.org and Eclipse.
If Sun were to release a portion of its Java code—such as Java Runtime Environment and J2SE—under a dual license, similar to what Sun does with StarOffice and OpenOffice.org or what Trolltech does with Qt, Sun could maintain control of the Java brand and remain the final voice on what is Java—much as Linus Torvalds does with the Linux kernel.
By moving Java into open source, Sun would broaden the platforms reach and help cement Java as a development language for open-source software—both of which will boost the value of Java to Sun and to the rest of the technology community.
Senior Analyst Jason Brooks can be reached at firstname.lastname@example.org.