James Governor's Monkchips

Java: The Unipolar Moment, On distributed governance for distributed software

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

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.

Google is another Java player. It bought Instantiations and is giving away the product. Search company becomes IDE supplier. Weird. But then Instantiations had built some slick tools for building Google Web Toolkit apps. GWT- what’s that? Oh nothing much – just a technology which brings Java and Javascript together in a development model. How many awful Java front end technologies have we seen over the years? Java ServerFaces and so on. Well GWT is a much cleaner approach to application development, and suits web apps – thus Google’s interest. Then we have Google AppEngine- a place to run Java apps. Java in the cloud? So far Google has made all the running in Platform as a Service thinking and delivery.

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)


  1. First my disclaimers: I work for a competitor (HP) and am an ASF member. I work on deployment (SmartFrog), big data (Hadoop), and cloud infrastructure stuff, and have commit rights to Apache Hadoop, Axis and Ant.

    The OSS community built Java. Without Ant and JUnit, no build and test process. Thoughtworks gave us continuous integration, even if Sun and Hudson made it easy. And as that’s now independent, it has a independent life in it. The entire build and test process of Java code ($editor|IDEA|Eclipse)+(Ant|Maven)+(JUnit|TestNG)+[HtmlUnit] is free, open source (apart from the lovely Intellij IDEA, and not controlled by Oracle. It’s controlled by people that Oracle are making enemies of.

    The development desktop: OS/X, Ubuntu or maybe Linux. Again, no oracle. And everywhere: mysql. Oracle may own that, but it’s still free.

    The interesting applications: post-SQL databases, petabyte scale filesystems built from commodity x86 hardware -stuff Sun never made a profit from.

    Oracle have to turn the clock back, not to the Microsoft era: here are your (good for the time) development tools, here is your database, you choose the server vendor, but to the IBM era. The story will become: this is the hardware, OS and database your code will run on. But there’s a problem there, what if we, the OSS tool developers don’t want to play? What if we like cross-compiling our own code to Android? What if we like Hadoop, Hive, non-SQL systems? What if don’t like NetBeans?

    I think attempting to own everything isn’t going to work, going after Android a strategic error, as it has killed the JCP and is going to make an enemy of all the OSS people. Adding JavaOne as an afterthought to the Oracle event showed how little Oracle value the Java community.

    Well, there’s always Scala.

    1. great stuff SteveL. Thats a blog post in its own right!
      thanks for the feedback Tony Baer

  2. Thinking some more

    -Spring owns the app architecture, primarily by telling you what not to do, but giving you choice. classic Java EE is over. Not owned by oracle or the JCP: It’s OSS, though SpringSource do most of the work.
    -OSGi is the classloader hierarchy. Anyone can play.
    -JavaFX is fundamentally pointless. AJAX and GWT matters more. That’s Google Web Toolkit, to spell it out.
    -classic web apps, JSP and the like are showing their age. Nobody has a good story here, other than GWT which is a radically different world view.
    -post-Java languages in the JVM: scala, JavaScript, etc, can only grow in usefulness. By Jython and JRuby, which depended on Sun support, may not survive.
    -the Java7 schedule is in trouble from the JCP signoff. It looks poisoned. Oracle could just disband the JCP, but they’ll only make more enemies.

    I’m wondering what IBM’s reaction to Oracle’s tactics will be. The oracle hardware+OS+RDBMS story will only appeal if the stack is IBMs, not Oracle’s, and they back OSGi and Eclipse.

  3. Couldn’t agree with you more on the multiple power ctrs. The Sun NetBeans crowd seems to have taken over Oracle’s Java non-strategy while JDeveloper/ADF is Oracle’s Java strategy. Go figure. They still view Eclipse as IBM hostile territory.

    And then there is the tragedy of OSGi. Teaching Java developers better code design habits after the horses have left the barn. Lots of Java products have been refactored, but the practices have not trickled down to Java developers. And sadly, neither have any tools of note. Until that changes, Java developers will use frameworks like Spring to make their java hairballs just a little less tangled.

  4. […] James Governor's Monkchips » Java: The Unipolar Moment, On distributed governance for dis… […]

  5. As a fellow analogy maker and occasional hand waver, I’d like to suggest that what we are seeing is more like the fall of the Roman Empire .. to be followed by fragmentation into many languages, cultures and domains of control….

  6. […] Some recent examples of these expectations can be seen in blog posts like James Governor’s “Java: The Unipolar Moment, On distributed governance for distributed software” and Joseph Ottinger’s “The Future of Java: forking, death, or stasis”. When I read them […]

  7. James is lame as usual.

    1. great comment Tom. thanks. really driving the conversation along there.

  8. […] TCK has been a problem for more than 5 years. Other blog posts go into far more detail about this [1] [2] [3], and I encourage you to understand all the details about the story of the TCK, Apache, and […]

  9. […] although it’s a week old, James Governor’s post on Java: The Unipolar Moment is well worth a read for a detailed analysts view on the ecosystem before this […]

  10. Random thoughts…

    I still think this is a good thing for Java.

    It means a potential for a little less fragmentation.
    It means hopefully a little more working together at the JCP area.
    It means OpenJDK running TCK on an open source Java.

    OSGI is good technology that is being incorporated into Glassfish, Netbeans, and a few other Oracle sponsored project. So I’m not fearful that OSGI will be lost any time soon.

    Jigsaw is at the language level not at the framework level like OSGI. Harmony’s modularity project is similar to what is being attempted with Jigsaw for the OpenJDK. Since there is change to better get OSGI at the language level.

    Spring cleaned up EE Java. Java EE 6 learned from Spring and now has improved the platform. I suspect there are similar opportunities to improve Java with innovations developed in the wild, then formalized into Java via a formalized JSR in the JCP. This gives the “wild prototype” time to work out the kinks and the formalized standards to become a best of breed based on that. Not sure where there is a problem there.

    JavaFX (script) is gone with new JavaFX APIs in Java in the future. Basically Swing version 2. Think this is a good thing.

    Oracle supports Eclipse, Netbeans, and JDeveloper with additional sponsorship on each. I don’t think that’s going away.

    1. ericb you may well be right. i am still digesting. and certainly for some classes of “Java Developer” this has to be seen as positive news, removing uncertainty from the equation. “pragmatic indeed”

  11. […] even ask them their advice?  Other analysts like James Governor from Redmonk aren’t that positive about where you are going with Java.  You have to start participating in these […]

  12. […] maybe even ask them their advice?  Other analysts like James Governor from Redmonk aren’t that positive about where you are going with Java.  You have to start participating in these […]

  13. […] 当Sun,现在是Oracle,把OpenJDK置于GPL许可协议之下时,TCK的许可协议的问题已经悬着5年多了。有些博客对这个问题有深入的介绍[1] [2] [3],我建议大家对TCK,Apache和Sun之间的故事都应该详细了解一下——但这不是我要在这里关注的。 […]

  14. […] 当Sun,现在是Oracle,把OpenJDK置于GPL许可协议之下时,TCK的许可协议的问题已经悬着5年多了。有些博客对这个问题有深入的介绍[1] [2] [3],我建议大家对TCK,Apache和Sun之间的故事都应该详细了解一下——但这不是我要在这里关注的。 […]

  15. […] 当Sun,现在是Oracle,把OpenJDK置于GPL许可协议之下时,TCK的许可协议的问题已经悬着5年多了。有些博客对这个问题有深入的介绍[1] [2] [3],我建议大家对TCK,Apache和Sun之间的故事都应该详细了解一下——但这不是我要在这里关注的。 […]

  16. It’s a mess really. What does this mean for developers out there in the real world? A lot of frustration and pain.

  17. […] 当Sun,现在是Oracle,把OpenJDK置于GPL许可协议之下时,TCK的许可协议的问题已经悬着5年多了。有些博客对这个问题有深入的介绍[1] [2] [3],我建议大家对TCK,Apache和Sun之间的故事都应该详细了解一下——但这不是我要在这里关注的。 […]

  18. […] 当Sun,现在是Oracle,把OpenJDK置于GPL许可协议之下时,TCK的许可协议的问题已经悬着5年多了。有些博客对这个问题有深入的介绍[1] [2] [3],我建议大家对TCK,Apache和Sun之间的故事都应该详细了解一下——但这不是我要在这里关注的。 […]

  19. […] das grandes empresas, a inovação no segmento de mercado Java tem sido, historicamente, uma força disruptiva: uma arena onde os fornecedores pequenos e os desenvolvedores de rede individuais às vezes contam […]

  20. […]   稳定是好的,创新也是好的;这两者对一个健康的 Java 生态系统来说都是必不可少的。而当稳定性建筑在巨人的肩膀上,Java 行业的创新历史上曾是 破坏性的力量:这是一个小厂商和独立、松散的网络化开发者有时比跨国企业发挥作用更大的竞技场。正是这两股大的利益集团之间的相互作用,使得 Java 行业既健康又诚实,充满希望,欣欣向荣。 […]

  21. […] 当Sun,现在是Oracle,把OpenJDK置于GPL许可协议之下时,TCK的许可协议的问题已经悬着5年多了。有些博客对这个问题有深入的介绍[1] [2] [3],我建议大家对TCK,Apache和Sun之间的故事都应该详细了解一下——但这不是我要在这里关注的。 […]

Leave a Reply

Your email address will not be published. Required fields are marked *