It was the dawn of the third age of Java, ten years after the Sun/Microsoft war.
The Java Community Process was a dream given form.
Its goal: to prevent another war by creating a place where technologists and vendors could work out their differences peacefully.
It's a port of call, home away from home for diplomats, managers, entrepreneurs, and developers.
Technologists and vendors wrapped in two million, five hundred thousand lines of spinning legal document, all alone in the night.
It can be a dangerous place, but it's our last best hope for peace.
This is the story of the last of the JCP's chances.
The year is 2009. The name of the place is the Java Community Process.
The Java Community Process was our last, best hope for peace.
A self-contained world 333 JSRs long, located in neutral territory.
A place of commerce and diplomacy for ten million developers and managers.
A shining beacon in the community, all alone in the night.
It was the dawn of the Third Age of Java, the year the Great War came upon us all.
This is the story of the last of the JCP's chances.
The year is 2010. The name of the place is the Java Community Process.
The Java Community Process was our last, best hope for peace. It failed.
But in the year of the Great War, it evolved into something greater: our last, best hope for victory.
The year is 2011. The place is now the Java Community Process.
With apolgies to Babylon 5.
Babylon 5 and the Great War of Java
I'm re-watching the amazing Babylon 5 TV series at the moment on DVD. I was struck by how the voiceover at the start of each series could be adapted to the current situation. But also how one of the key themes plays out in two key questions - "Who are you?" and "What do you Want?"
The Java Community Process truly was a great hope for peace. A neutral place where everyone from developers to vendors could work together to produce specifications, reference implementations and tests to drive the success of Java.
But the JCP has always been flawed.
The many, many lines of spinning legal agreement have tied up the JCP on more than one occasion. Initially, for example, it wasn't possible to implement any specification in open source. The Apache Software Foundation had to fight for that right in 2002. A right that was then taken away by Sun in the Apache Harmony dispute. And a right that could not be won by the combined forces of every other particpant except the ruler (Sun then Oracle).
And now, in the past few months we are seeing the unravelling of the JCP turning into the wider "Great War of Java".
- the denial of Apache Harmony
- the delay of JDK 7
- the lawsuit by Oracle on Google and Android
- the pragmatism of IBM
- the capitulation of the rest of the JCP
- the honourable sacrifice of Doug Lea
- the questionable choice of Hologic
- the deprecation of the Apple JDK
- the lack of coordination with Oracle on the deprecation announcement
- the blocking of Java apps on all Apple devices
- the end of Java on new Nokia mobiles
- the silence of Oracle
In a short period of time, Java has gone from the platform designed to unify the entire industry to a highly politicised punch bag.
Java on the desktop now looks pretty meaningless if Apple wants nothing to do with it. (I subscribe to the view that there will be some desktop machines from Apple before too long that will not permit access via any means other than the App Store.) Of course, that could well make Java FX DOA.
Whichever way you look, Java is being squeezed - even by new programming languages on the JVM bypassing much of the Java platform.
Which leads me back to the questions posed in Bablyon 5:
Who are You? What do you Want?
These are questions every single member of the Java Community should be asking themselves right now.
Do we care if Oracle chooses to assert control and break legal agreements?
Do we care if the poison of the last few years from this dispute may have been the cause for the recent moves away from Java?
Do we want to save Java on the desktop? And on the Mac?
What do we "as a community" really want?
Can that question ever be answered when the community is just a diverse group of individuals?
Would an independent JCP really make much difference now?
Can things still get worse?
On the last point, I certainly think they can, if Apache leaves the JCP and ends the rights of Tomcat, Geronimo, OpenJPA, OpenEJB, MyFaces and many more to implement JSRs. Ironically, Doug Leas principled stand makes it harder for Apache to choose a compromise position.
I ended my Babylon 5 word-play above by striking out the "Process", and leaving it as just the "Java Community". And I am still a believer that the community can be a tremendous asset when treated well. But, perhaps as Oracle have found recently, the community knows how to bite back when mistreated.
Bablylon 5 reaches its principle climax in the fourth series:
It was the year of fire.
The year of destruction.
The year we took back what was ours.
It was the year of rebirth.
The year of great sadness.
The year of pain.
And a year of joy.
It was a new age.
It was the end of history.
It was the year everything changed.
Could now be the start of the year of fire and destruction - the year of rebirth?
We all have to look to ourselves - developers, community members, vendors, Oracle - and decide "Who we Are" and "What we Want". And then find a way to bring all the different answers to those questions together for a common purpose.
Because it really is "The dawn of the third age of Java". Its arriving much faster than we expected. And it looks very much like decline into COBOL from where I'm standing.
There are still a few opportunities to prevent that decline and turn it into renewal. Every decision made now matters.
Apache Software Foundation member, speaking personally
Oracle Java Champion, speaking personally
Not a committer on Harmony or OpenJDK