Blogxter: The new cold war: IBM and Oracle against Google.
The new cold war: IBM and Oracle against Google.
Oct 12, 2010 12:31:23 PM, steve

Once upon a time, there was a computer company that did everything: the hardware, the OS, the storage, the programming language. It's name was IBM, and it's crowning glory, the 360 Series mainframe, and OS/360 is something that isn't recognised enough. With VM/360, it even gave us virtualisation.

Some people -troublemakers that they are- wanted independence and freedom, hence, from the Minicomputers and the homebrew computers of the 1970s, and then the IBM PC, we ended up in a world with horizontal integration: you could choose hardware from multiple x86 server vendors, built from Intel or AMD CPUs, and run the Microsoft windows stack on it. Initially client side, but later evolving to a mostly-coherent server story: Windows Server, MS SQL Server, ASP.NET, C#, and a very good IDE - Visual Studio- to glue it together. For those people with the MSDN subscriptions and a willingness to stay in this world, it works really well. Interestingly though, no major open source ecosystem around it. Why improve NUnit when VS.NET has some editions with testing built in? Why contribute to a build an open source platform when MS won't go near it, instead just pre-announce their plans and starve you of users and hence contributors.

Java was different. Sun took on the heavy lifting of building the JVMs for each platform, but left out all the stuff needed to make it useful for developing. IDEs? The early ones all sucked to the extent that jEdit (used for writing this post) were a fantastic improvement -because their console window offered a great command line for running Ant. Because yes, the build and test tools were open source. Ant, JUnit, the testing around it. With these and Cruise Control, something very profound came together: a new way of developing. We moved away from IDEs whose strength was the edit-and-continue debugger, into a world where test-first development took hold. To me, this is the biggest change in the last decade, though I still despair at how some people have failed to embrace the world of unit tests.

Sun did want to make money from the hardware, the OS, the app server, but failed. App server money went to BEA (now owned by Oracle) and IBM. Database money went to IBM, Oracle and perhaps MySQL, though they changed the rules there by saying "paying for persistence is now optional". Oracle didn't like that, and I doubt IBM did either.

Meanwhile, the app server story changed. JBoss said "app servers can be free", Tomcat said "app servers are overkill", and then Spring said "glue is better". The IDEs came back: Eclipse, IDEA, NetBeans, though the build tools: Ant, Maven, Buildr say "automation is handy". Sun still failed to make money, to the extent that Oracle ended up buying them.

So, what now? I think Larry and Hurd pine for the old days, the 360 series days, when the account team would turn up and say "here is your future, this is the bill". The lawsuit against Google is part of it -an attempt to say "Oracle owns Sun, so Oracle owns Java and anything similar". Missing the point, obviously, that the JVM is a starting point and the only time most people go near the Sun web site is download a JDK -and that's if their Linux distro doesn't do that for you.

I've been wondering for a few weeks what IBM's reaction to the Google lawsuit would be, mostly in comments on a posting by James Governor of Redmonk Java: The Unipolar Moment, On distributed governance for distributed software. James was observing that a lot of the power of the Java platform wasn't in Oracle's hands -it was elsewhere, and I was agreeing with him.

IBM's announcement of their effective departure from Harmony and involvement in OpenJDK changes things. It's an attempt to put Oracle and IBM in charge of the stack. Yes, things like OSGi may go into Java 7, but what won't change is Oracle's attempt to say "we are in charge, we decide", except now IBM gets to help a bit.

Question then: why did IBM do this? Did they decide there was no alternative? Or did Oracle make them an offer they couldn't refuse? Something like better Oracle DB pricing/support on IBM hardware and the ability to get their needs for Java listened to? Maybe even some OpenJDK licensing deal that lets IBM embed their derivative works for $0 and no GPL restrictions? I could imagine that.

I could also imagine that IBM quite liked Oracle's "single vendor" story, because, well, it's IBM's original story. IBM know they managed to do well out of the app server business, and so perhaps they feel confident that they can sell the same story, on IBM servers, the DB2 database, and all the layers up. So being able to work with Oracle on what this story is, how it is reflected in the JVM would help them. And IBM may not gain anything by helping Google. Indeed, everyone who uses Google docs and mail is one less person using Lotus; everyone using Google App engine is one less developer trying to get their code working on WebSphere; one less developer writing code to persist their data to DB2.

Anyway, the announcement is out. IBM: friends with Oracle, no longer likely to support Apache's demands for Sun/Oracle to fulfil their JCP requirements to supply the Java 6 test kit without adding extra restrictions. This may not mean the end of Harmony -I can see Google's interest in staying alive- but it doesn't bode well for the whole JCP program. I think Apache is going to have to consider it's relationship with Oracle and IBM too -as well as the Java language. Apache has grown through Java, and is a key part of the Java ecosystem, but if Oracle wants to own that ecosystem, what does Apache want to do? Does it just want to do the logging and build tools that Oracle and IBM need from it, or does it want to be independent?

Usual disclaimers: personal opinions only, etc.

(C) 2003-2006 1060 Research Limited
1060 Registered Trademark and NetKernel Trademark of 1060 Research Limited
Powered by Netkernel