Pages

Monday, October 25, 2010

Apache Harmony - The Java Fork In Waiting

After driving Apache Harmony by contributing the bulk of the founding code, and by 2006 12 out of the 16 developers working on the project, IBM has now abandoned Harmony in favour of the Oracle based Open JDK project. The aim of Harmony is to create a compatible, independent implementation of the Java SE 5 (6, 7...) JDK under the Apache License v2 which is comprised of a community-developed modular runtime (VM and class library) architecture.

Is is hypothesised that this effort on IBM's part, in conjunction with their support for the OSGi Alliance via the Eclipse foundation, has been to build an entirely freestanding java based enterprise platform, enabling the choice to move away from the overcooked J2EE component set called Websphere, or more probably keeping the name Websphere and changing what it means to be a set of tools centred around Eclipse Equinox, rather than the current Websphere J2EE App Server. And so the strategy goes, this platform was all going to run on the elegant, modularised, super lean, Harmony JVM. This was the line being run by IBM as recently as last month at the OSGi Community Event in London.

Then came the wrecking ball - the Harmony based Google Android Dalvik. Sooner or later the Oracle lawyers were going to get to the part of the Apache Harmony / Sun Java agreements that effectively says that Harmony cannot be put to Mobile Use via the Sun imposed 'Field Of Use Restrictions'. It seems that as soon as they discovered them the lawyers pulled the trigger on Dalvik, and that act that has brought the Java world to the brink. The historical record is clear that IBM was not happy with the Field of Use restrictions on the Harmony TCK, but given that for IBM Harmony was an enterprise play, it was not a show-stopper in going forward with the development of Harmony.

It seems IBM decided they might suddenly be drawn into a very large dispute in which they had no benefit in being forced to take sides. Hence the IBM top down push to bail out of Harmony and announce a love in with OpenJDK and Oracle. Presumably the IBM lawyers have decided this would be a big enough firewall between themselves and Oracle v Google to comfortably sit on the sidelines until it is over. But the outcome of the battle has enormous implications for Java. Either way in my view the Java technology landscape is going to permanently change.

If:

Oracle Wins :- The JVM as the the ubiquitous byte-code-platform-for-the-foreseeable-future is dead. Google will produce the Javakiller platform, based on the Register Oriented architecture of Dalvik, without the Harmony libraries. Most of the Open Source Community will go with this, including Springsource. Apache Felix will probably produce a clean implementation of the OSGi container on this platform, possibly in conjunction with Atlassian, who are tinkering with such a thing on Java today. Redhat-JBoss will probably be the Open Source standout here, and stay Java. IBM will possibly stay Java bases along with the Eclipse foundation, or they may decide to straddle both camps.

Google Wins :- Apache Harmony will fork Java at JDK 1.6, everybody will go with the fork except Oracle.

0 comments: