Almost 10 years to the day since Sun first introduced Java, the news comes that it may finally become open source code. Sun will deny it, but the move has been inevitable for some time. On Feb. 1, it was open source Solaris 10. Now it's J2SE, which will take a year or more to become available, if and when it gets past all the political hurdles. Next up: J2 Enterprise Edition? That will take a bit longer, although it does have three major J2EE F/OSS projects -- JBoss, Jonas, and Geronimo -- all committed to compatibility with the JCP's specs and all with good relationships with Sun.
A group of 12 Apache developers have put together a proposal called Harmony. The proposal appeared as a simple project call last Friday on an Apache incubator mailing list. It would make this new, built-from-the-ground-up version of Java available under the Apache 2.0 free software license. And it's causing quite a stir in the Java community, especially since respected Sun frontmen Tim Bray, Simon Phipps, and Graham Hamilton have given the project their blessing. As yet there has been no reaction from Dr. Java, James Gosling himself, who is in Brazil talking to developers.
'Next step in Apache's work around Java'?
Hamilton, who has become one of the new "media faces" of Sun in recent months, posted this in his blog on Saturday: "In many ways launching a J2SE project is the obvious next step in Apache's work around Java. Personally, I am very curious about how the Harmony project will work out -- creating a full scale implementation of J2SE is a mammoth task, as the Sun J2SE team knows only too well. However I wish Apache success and we'll certainly be tracking this as it develops."
Phipps' response: "Things like this (and the new openness of the v6 -- Mustang -- work) renew my confidence in the promise of the Java community ... This is just the sort of responsible, community-led evolution that the JCP rules were changed to facilitate."
In a FAQ on the Apache site, Harmony project leader Geir Magnusson Jr. wrote: "We believe that there is broad community interest in coming together to create and use an open source, compatible implementation of J2SE 5, the latest version of the Java 2 Standard Edition specification. While the Java Community Process has allowed open source implementations of JSRs for a few years now, Java 5 is the first of the J2SE specs that we are able to do due to licensing reasons."
Could this lead to a fragmentation of the Java community? Magnusson said he doesn't think so. "Our intent is to bring people together, let us share what we know, solve common problems, and collaborate on things where we can," he wrote. "A diverse Java community is a healthy Java community. Multiple implementations of the Java specifications show the value of Java -- that we do have a specification, that anyone is free to make a compatible implementation, and that users of Java have the
opportunity to run their Java code in more places, on more platforms. This is the central promise of Java, and we think that
our efforts support this."
Brian Behlendorf, director of the Apache Software Foundation, told ITMJ via email that he's not personally involved in Harmony, "aside from being a fan of the idea, following passively, and talking with others outside Apache about it."
Asked if he thinks Harmony could eventually offset Sun's own "clean-room" J2SE in the marketplace, Behlendorf said: "This is a long-term project, and yet to be decided are how it would work with the other existing open source efforts in the J2SE space, as well as whether there are existing codebases that could bootstrap the effort. While even the goals of the project are still up for discussion, no one is interested in this being a purely academic exercise. The implicit assumption is that we're working towards a J2SE implementation that one day we would run our own applications upon in a production setting. Whether it becomes the preferred Java platform remains to be seen, of course."
Asked if this project might finally be the answer to Java developers' prayers of freedom from lock-in, Behlendorf said:
"One answer to this question is that Java has not been 'locked in' for a while now -- there are many vibrant and legal open source implementations of different parts of J2SE, from Kaffe to Classpath to Jikes and GCJ. As with Geronimo, we seek to prove to Sun and the rest of the Java community that open source is not antithetical to the concept of adhering to standards, so we will be seeking certification by passing the J2SE TCK when it's ready.
"Sun has long held to the premise that as Java technologies evolve (both specific projects and the Java effort as a whole) there's a gradual handoff of responsibility and authority to the community. We definitely think Harmony can play a part in that."
Sun, a company in financial trouble for the last four years, made some inroads last year with the development community and with several market foes (namely, former sworn enemy Microsoft) in order to get back into the IT business race. Observers say Sun is beginning to learn how to use sales and manufacturing channels -- national and international -- much more effectively, and this also can be traced back to strategic moves (mostly personnel) it made last year.
Sun can't stop development of open source Java
But Sun needs more than that, and the company knows it. Because so much of its revenue is tied up in long-term licenses involving J2EE enterprise hardware and software, it knows that it can't come out and open the code just like that. There is simply too much to lose right off the top; too many potentially irate customers and too many already designated dollars. But if someone else were to attempt it ... someone respected, like, say, Apache ... well, hmmm. That's a thought.
Sun cannot control what the open source community wants to do. But open source Java appears to play into Sun's most pressing need right now: good will from the development community at large, so that the company has better chances to land server, software, and service sales. If this indeed comes to pass, and Java becomes open, Sun can put its hands up and claim legitimate innocence about how it happened. And the Java community will rejoice in victory.
Sun had already announced in March that it is loosening up the licensing requirements for J2SE anyway. This is the next logical step.