For a brief few moments after the invasion of Iraq US conservatives crowed that we had entered a Unipolar Moment – where US global hegemony was assured. This was an echo of Fukuyama’s End of History. We have heard a lot less of this triumphalism lately. Events have gotten in the way- not least the disastrous financial downturn driven by the great god “leverage”.
So Oracle acquired Sun. Game over. We had entered the Unipolar Java world – where top down governance by the sole Java superpower was assured. First step – sue Google over Android. At the risk of taking this metaphor way too far, the suit against Google is kind of like the debaathification of Iraq – it seems to have dramatically destabilised things (which helps explain why Sun didn’t just sue Google itself).
Java now seems to have more power centers than ever, which could prove to be the real future of the platform. I was at the OSGi Community Event this week in London – where I keynoted on how power in Java is becoming more widely distributed. It’s easy to be dismissive of the C in JCP, but that’s the only part of Java that really matters in the end – community. Sun was always smart enough to realise that “innovation happens elsewhere”. Open source governance is no longer a side activity in Java innovation – its the very heart of it.
Take NoSQL for example – which is set to become the most important trend in enterprise Java over the next few years, by the simple expedient of delivering sustantive business value, but also because the skills needed for enterprises are already present in abundance. NoSQL is a massive shot in the arm for Java skilled architects, developers and engineers. Oracle and the JCP? Isn’t even in the game. The Apache Software Foundation on the other hand, is the home of Cassandra, CouchDB, Hadoop, and Voldemort.
The Eclipse Foundation has of course been disrupting, and enriching the Java ecosystem since its inception, keeping Sun honest, and helping to clean up some horrific messes/poor architectural decisions.
OSGi meanwhile you may never have heard of – but it essentially makes Java modular. One of the ironies of Scott McNealy’s constant screeds against the Windows Hairball is that Java became not one, but three, giant hairballs. If Sun really wanted a clean extensible Java that leant itself to reuse, and separation of concerns, without unnecessary interdependencies, driving exponential complexity… why didn’t Sun fix the modularity problem? Thankfully it didn’t need to – because OSGi provides a mechanism to turn Java into a Stackless Stack, where a runtime consists of only the classes needed to run a particular application.
Sadly because Java didn’t focus on modularity – neither did Java developers. Now, having been one of OSGi’s big supporters, Oracle has decided to take one last stab at killing the technology. Sun has tried and failed to kill OSGi a few times through the JCP, and now Oracle is putting weight behind Jigsaw. But Jigsaw won’t be here until 2012 at the earliest. Its DOA. Its way late- because pretty much every commercial software vendor in the Java middleware space, and most open source projects, are supporting OSGi. From Progress to Day Software, To WS02, to Apache Sling. Even where vendors are concerned that OSGi is too complex to expose to corporate developers – they are making OSGi work for plugin architectures, supporting dependency injection as it does: Atlassian and MuleSoft are both taking the latter approach. Whether or not anyone works out how to deliver OSGi for humans – for ISVs and really big enterprise Java shops it will be an important infrastructure approach. The point I am making is that OSGi is loosely coupled to Java, rather than tightly coupled to the JCP. Intriguingly OSGi is also making real progress in the space from whence Java was also originally intended for – embedded devices, automotive, industrial automation and so on – embedded computing doesn’t like hairballs, but loves over the air class loading for system refreshes. NTT is using it, and the company knows a thing or two about mobile service delivery, having been the inventor of Docomo, the first app store. Or take for example, Kirona – which offers field force automation running OSGi (on windows mobile too!) so that apps can be refreshed without bringing engineers back into the field.
Which brings me to IBM. In the good old days everyone knew that Sun defined Java, while BEA and IBM made money from it. These days not so much. But if IBM’s can’t influence the JCP as much as it would like it can now play divide and rule. I expect to see IBM giving Eclipse and OSGi a concerted push over the next couple of years.
EMC VMWare SpringSource is another major center of gravity for Java leadership. SpringSource CEO Rod Johnson after all is the guy that found a way to make JEE not so painful to develop. With his ambition and technical skill, and EMC’s heft- and of course Paul Maritz in the picture- there is now way Oracle will have Java leadership all to itself. It speaks volumes that Rod didn’t even bother to attend Java One this year- then, neither did the RedMonks.
I’d really like to know your thoughts on the the idea of a multipolar Java world. Who is going to be China?
My biggest issues is that Oracle seems to think benign neglect will work in the Java world. It won’t. And when your salesmen start denying that your app servers run OSGi, when they do, then you have a problem.
I could see positive scenarios for the JCP before the Sun acquisition closed, but I certainly don’t see them playing out the way I hoped. Oracle isn’t treating Java as an accountant would, its looking at it as a warrior. But the world needs soft power and diplomacy, as much as hard. I hope Oracle understands this sooner rather than later.
Maybe Oracle doesn’t care – but the forking of so many of its technologies can’t be a good thing. OpenSolaris now has a fork called Illumos, with some of the very best engineers Sun used to have working on it. This week also saw the arrival of a new fork of OpenOffice- LibreOffice (to which Oracle was invited). The bottom line? Java is a lot bigger than Oracle, and seemingly more diverse than ever. Alternative governance models such as OSGi, ASF and Eclipse are now just as important as the core Java platform, if not more so.
disclosure (please note that pretty much everyone I mention in this post except Oracle is a client – take that as you will. We do occasional project work for Oracle)