It took 11 years, but we finally got there: SUN Java’s implementation will be open sourced!

 

Bottom line: that is excellent news for the Java ecosystem and for the Free Software.movement

 

First of all, it means that Java can now be made available on more platforms while making sure we get consistent behavior. Also, it means that OS and hardware vendors will be able to customize and fine-tune Java for their environments. This openness will further increase Java platforms competitiveness and increase Java’s pervasiveness. All of that is a net positive for the Java ecosystem at large.

 

Last but not least, I bet this will also lead to some very interesting innovations either in the JDK, JVMor the compiler that could, in turn, be standardized through the JCP. JVM-level AOP integration, scripting languages and optimizations are great examples of what could be achieved. This will lead to a fast turnaround of innovations in Java (much like what happened with Hibernate/EJB3 or SEAM/Web Beans).

 

As suggested for a long time by JCP members, SUN will use the strong value of “Java” trademark/brand to protect the ecosystem from incompatible implementations (only those that have fully passed the TCK will be allowed to use the “Java” branding/trademark - the FOSS project is named “Open JDK”). That is a simple, clean and efficient solution. This also means it wouldn’t be possible to release a broken “Unbreakable Java” JVM, not that anybody would want to do something that smart though… ;)

What and How?

 

In order not to disrupt the release cycle of Java 6, SUN will start by releasing Java 7 code (mostly a fork of 6 at this point and some minor changes), and will later open source Java 6 code.

 

From a licensing standpoint, here is a summary of what was announced:

  • Java SE will be dual licensed: GPLv2+E (i.e. “GPLv2 + exceptions”) and commercial license.
  • Java ME will be dual licensed: GPLv2 (no exceptions) and commercial license.
  • Java EE will be trial-licensed: GPLv2+E, CDDL (already the case) and commercial license.

 

The GPLv2+E is a modified GPL version that drops the GPL “virality” clause for any code using that library (which is very similar to what the LGPL does). Bottom line: code/applications running on top of the GPLv2+E JVM will not need to be (re-)licensed under the GPL, they can use any license they like, open source or proprietary.

 

Consequently, the real announcement here is pretty much for Java SE “only”:

  • Java EE had already been open sourced under the CDDL (SUN is just adding another license to the mix), and
  • Given that Java ME will not benefit from the GPL+Exception treatment (it will be released under a straight GPLv2), phone vendors will still have to license a commercial implementation of Java (or otherwise would have to GPL all of their software running on this JVM)

 

Given that SUN is making most of its JVM revenues in ME-land, licensing the JVM under the GPL certainly fits with SUN’s commercial reality. In case phone vendors are not satisfied by the license, they could either decide to open source their phone software under the GPL (low probability) or fork SUN’s SE implementation and adapt it for ME environments (which could be accelerated by some donation given that vendors have already implemented SE JVMs). Both solutions will take some time to implement though, enough time to let SUN grow other JVM-related revenue streams. However, I do hope that SUN finds a solution to this in the mid-term so that the ME ecosystem can also fully benefit from this announcement.

 

So, shouldn’t have SUN opted for an Apache/BSD-like license? No, I really do think they made a good choice here. SUN is going to release a tremendous amount of IP under an Open Source license. I do think it is fair to ask that any changes and extensions to this IP be released in the Open Source as well. As for users of that technology, this will have no impact on them: they can freely choose the license for their software, and that is really all they care about. Only would-be proprietary forkers will not be happy with that choice and that’s fine.

When?

 

We will have to wait until mid-2007 to get a full-fledge JVM available in FOSS. The Hotspot JVM and the compiler will be open sourced in 2006 but we will have to wait Q2 2007 for a fully buildable JDK. That will leave companies time to work on the JVM customization/optimization.

Conclusion

 

The Java saga that SUN has led is a unique success story. 11 years ago, SUN (a hardware company!) successfully put in place the conditions that led to this multi-billion multi-vendor open ecosystem. More than a decade after, Java is not only alive but is leading the middleware space. Such an open and successful ecosystem is unique in IT. Sun’s constant inability to monetize that ecosystem might be one of the reasons why it has been successful: you don’t want the referee to mark goals and, even less, to win the match.

 

As this ecosystem matured, a move was required to rejuvenate it. That’s what SUN just did with this announcement.

 

Congratulations to those of you at SUN who have been listening to the market and pushing for that courageous move. I know this wasn’t an easy one. A few months back, you made the commitment to Open Source all of your software. We were all hoping you would start with Java, but that is not quite how it happened and that is where you finally ended. But here we go and that is probably one of the smartest moves you could do to further extend the ecosystem.

 

Tighten your seat belts, the Java ecosystem is about to move full throttle ahead!