Beyond the JCP
Java is Not Dead – Apache is Not Dead
After years of wrangling first with Sun, and then Oracle, the Apache Software Foundation have officially withdrawn from the Java Community Process. Commentators are once again predicting that the end is nigh - both with Apache and Java itself. Neither is true. Java is not dead, and neither is Apache.
Java is alive because Oracle are currently actively working together with IBM and Apple to create the next version of JDK; because the corresponding roadmaps are public, and because in any case there were hardly any external developers involved in the development of OpenJDK in the previous four years. It is likely that we will see an increase, rather than a decrease, in JDK output. Furthermore, the merging of the HotSpot Virtual Machine and JRockit, marks the largest ever code contribution to the core Java system.
Just because one of Apache's projects, Harmony, has an uncertain future due to the dispute with Oracle and IBM's withdrawal from the development team, does not mean that the Foundation itself is dead. True, our chance to obtain an alternative implementation of the Java Virtual Machine has decreased. But, let's not forget Apache's wealth of Java related projects: Tomcat, Axis, Wicket, Lucene, Jack Rabbit, Log4J and many more – these are all alive and kicking! And no one can seriously doubt that they will continue to be active and innovative.
Then, what has happened? The Apache Software Foundation have finally followed through on a threat they have been making repeatedly since 2006: they have left the JCP because they were denied the use of the official Test Compatibility Kits (TCKs) for Harmony. Apache claim they have a right to the TCKs, but Oracle (as Sun before them) does not view the Apache Foundation as a fully-fledged license holder. It is Harmony that is in danger, not the entire Apache ecosystem.
It looks like the dream of converting the JDK into community property, is not destined to come true. Oracle and its chosen partners will continue to develop it, in the same manner it was developed before Sun's OpenJDK. During that time there were regular JDK releases, and a vital open source environment on which it depended on; so what's so bad about a return to this state?
Certainly, when Oracle was in the opposition camp, and Sun was on the government bench, Oracle fought to open Java – and Sun refused this categorically (in 2005, James Gosling even said in Java Magazin that an open source Java is virtually impossible!) And now the roles have been reversed: Oracle has the power, and trusts the corporate development process over open innovation, and James Gosling demands that Java is finally freed! This is the way opinions change, as power trades hands.
Meanwhile, the JCP is rapidly losing its credibility and significance, but is this really such a tragedy? At least in recent years, the JCP has hardly been a source of inspiration and innovation! Since around 2005, the number of JSRs has decreased significantly, and JSRs in progress have been bogged down in red tape.
For many years now, the real innovation has come from the widespread Java community beyond the JCP: from SpringSource (formerly Interface21), JRuby developers, Groovy people and Scala; from JBoss, the many Eclipse and Apache projects, from Android and many more. With this in mind, the Java world's sudden fixation on Oracle and the JCP is surprising.
Ideally, what the community should be discussing, is the reorganisation of the Java editions. Why must the Enterprise Edition contain the entire Standard Edition with all its desktop APIs? And why should the Standard Edition contain all the desktop ballast, when we know that Java only plays a minor role on the desktop? And what is the relevance of a Micro Edition – which represents a clear compatibility break with the rest of Java – in the face of increasingly powerful smartphones?
What is needed is a resolute modernisation of the Java system. There is a large field of possible activity for the worldwide Java community beyond the JDK and OpenJDK efforts. Java is not dead; Apache is not dead. But, when it comes to the Java Community Process, the future is uncertain – 2011 may be its last chance to show that it is trustworthy and capable of action.