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…