The Open Sourcing of Java?
So the word on the street is that Sun will open source Java, the news came out this week from JavaOne.
Sun has been pressed for quite some time to open source Java. On the corporate side, we have IBM who likes to be portrayed as the paladin of open source by sending open letters asking for the opening of Java. IBM, a big supporter of software patents (a concept that goes against the very spirit of the open source crowd), managed to earn trust points by making these public demands. The real motivation is probably related to the terms attached to IBM's current license of Java from Sun. The terms were probably acceptable when they originally entered into an agreement to license Java, back in the days of Java Applets, and the "WebRunner" that was going to take over the web. Java over-engineered architecture failed strepitously as a Web platform, a place that has been taken over by the vastly simpler and actually useful Flash. But IBM played an important role in turning Java into a programming language for server-side applications and now a big chunk of their revenues are tied to Java. Java is not only over-engineered, but also has severe architectural limitations that no Java licensor has been able to address.
And this is the genius of Sun's licensing of Java. Sun, being a fairly poor as a software house, managed to slow down every single one of their competitors that adopted their Java technology. Sun was able through this licensing to dictate the pace of innovation effectively slowing down everyone to a grinding halt.
And this poses a problem for companies like IBM with large revenue streams based on technology from a competing company. Their honeymoon with Linux continues to grow as they can outcompete everyone else with their services business, and they would love nothing more than to be able to treat Java as a commodity.
Over the years, Sun has used a number of tactics to avoid third party implementations of Java to compete. They introduced a certification suite that effectively requires folks to license their software, tune it for their platform and get Sun to rubber stamp it.
When the pressure mounted they created the Java Community Process. The JCP addressed some of the community grievances and was also a moderately slow process that it would fit well with Sun's software development practices.
In the last few years there have been a few trends that probably forced Sun to take some new steps.
Red Hat has been funding the development of another Java implementation for the past couple of years (as pointed by Eugenia Loli) and has managed to produce something that is not tied directly to Sun's implementation.
On the other side of the open source spectrum (yes, there is another end of the spectrum), the Apache foundation decided that they needed something with their own license and they would start everything from scratch. This is was called the Apache's Harmony project. Apache's Harmony project under normal circumstances would be another harmless project and an easy one to dismiss as a threat (considering that nobody in that group had any coding skills and the group only managed to produce a lot of extra smtp traffic with grand visions of the ultimate Java Virtual Machine implementation) finally got some code in the form of a large code dump from Intel.
Intel has been developing Java VMs for as long as the eye can see and they have released them in some form or another over the years, but this time they have decided to make their effort last and have dumped the code on the Harmony project. Now, Harmony is composed mostly of idealists with no time or experience to code has on its hands a serious foundation to start with.
IBM was coincidentally, one of the original instigators to create Harmony and even volunteered to provide some code. Whether their contractual Java obligations allowed them to is a completely different matter. IBM has distinguished itself by staffing all their executives with drones who hate Microsoft, but hate Sun much more. It is not unconceivable to think that IBM probably negotiated some kind of deal with Intel to get that code contributed to Apache.
And finally, a minor inconvenience to Sun is the existence of the Mono project, a .NET implementation for Linux that has been taking hold in the space and key applications are being written on it. And for a company as proud as Sun, having a technology originally developed on Windows by Microsoft on its home turf its something that they are having problems stomaching.
Where does this leave us? Red Hat most likely is sinking money into a project that will never materialize, but if this ultimately forces Sun to open source a technology that, like IBM, its betting its future on it is money well spent. Half a million dollars spent on a skunkworks efforts is peanut change for them.
The Sun announcement might be for real, like the OpenOffice and OpenSolaris announcements in the past, and they might deliver an open source implementation. But the dynamics of Java are very different and they might be using this merely as a stalling technique to get both Harmony and GNU's effort to slow down. The Harmony mailing list is already showing some of these cracks.
I remain unconvinced, despite Sun's track record in open sourcing those two technologies, they have also played English games to stall people, and have more than once claimed that they would open source a technology and deliver something completely different.
With OpenOffice and OpenSolaris they remained in charge and to this date they have not been out engineered. Java presents a more threatening scenario, loosing control over it might mean that Sun becomes the laggard and is unable to keep up with changes done by forks of Java.
So far the only substance in this week's JavaOne announcement is that they offer yet another license to distribute Java. Stephen O'Grady's of Red Monk has the details.
The announcement has every Sun employee, twitching with joy. It seems to be a victory over a group of lawyers over at Sun, but it smells like a minor change (Simon Phipps).