It’s the inevitability to this week’s events that surprises. With the benefit of hindsight, the enterprise dominance of Sun’s creation can better be perceived as unnatural. Java was, after all, the product of a single commercial entity. Unlike projects such as Linux which are the product of collaborative development, Java was – the JCP notwithstanding – the original invention of Sun Microsystems. Which is why Sun and Sun alone bore the brunt of the Kodak patent litigation, and collected the profit from its settlement with Microsoft.
That Java the ecosystem is a larger work, a massive collective effort, is not in dispute. But as the JCP’s more vocal critics have observed in the past, Sun was for better or worse the commercial entity behind Java. Whether or not the profits from its work matched that of others in the ecosystem.
All that was once Sun’s, of course, is now Oracle’s, via the $7.4B transaction [coverage]. Which has naturally led to consternation and introspection on the part of the larger Java ecosystem participants. Being beholden to Sun was one thing; being beholden to Oracle, quite another.
Given Sun’s failing financial fortunes, however, the possibility that Java would end up in different hands was hardly unforeseen. The question was, and to a degree still is, what the new owner meant to the fate of the technology and the ecosystem that surrounds it. Part of our answer to came Monday, when IBM shifted its Java development efforts from the Apache Harmony project to OpenJDK. To explore the implications of that, let’s turn to the Q&A.
Q: Before we begin, do you have anything to disclose?
A: Quite a bit in this space. Sun was a client prior to their aquisition. Oracle has been a client in the past, they are not currently. IBM is a current client, as are Apache and Eclipse. Google is not a client. More specifically, with respect to Harmony’s Field of Use restrictions, our public position was in support of the ASF (not a client at that time) against Sun (our client at that time).
That should about cover it.
Q: For those that haven’t been covering the news, can you recap the events for us?
A: Certainly. IBM’s Bob Sutor succinctly summarizes the news here:
IBM and Oracle have announced that they will work together on the newly reinvigorated OpenJDK project. As described on its website, OpenJDK is “The place to collaborate on an open-source implementation of the Java Platform, Standard Edition, and related projects.” IBM will work with Oracle and the Java community to make OpenJDK the primary high performance open source runtime for Java. IBM will be shifting its development effort from the Apache Project Harmony to OpenJDK. For others who wish to do the same, we’ll work together to make the transition as easy as possible. IBM will still be vigorously involved in other Apache projects.
Q: Practically speaking, what does that mean?
A: Logistically, it means that IBM will decommit from Apache Harmony and direct its efforts to Oracle’s OpenJDK. On a macro level, this is IBM deisolating Oracle with respect to Java.
Q: What does “deisolating” mean?
A: The dynamics of an Oracle owned Java are different than when Sun was the primary steward. Ironically, Sun’s financial decline likely fueled the rise of the Java ecosystem, because the company simply wasn’t feared the way, say, Microsoft was. Oracle, on the other hand, is an aggressive and generally successful competitor with most of the larger Java ecosystem inhabitants in more markets than Sun was. SAP, for example, is threatened by Oracle in ways they never were by Sun. As was Google, obviously. Here’s how Mike Milinkovich put it:
Implicit in almost all of the recent writings on the future of Java is the notion that IBM’s interests would lie in direct competition, if not outright conflict with Oracle’s. Many have been assuming that IBM would eventually snap and declare war on Oracle’s Java hegemony, with the battles being fought in places like OSGi, Apache and Eclipse. It is now apparent that is not going to happen.
Given this dynamic, there has been a great deal of backroom speculation as to how those firms with large product commitments to Java – such as IBM – would proceed. Would it be business as usual? Would they fork? Something in between? Public actions by large entities within the ecosystem would, after all, have much to say about the future of Java.
Q: Why? Couldn’t Oracle go it alone with Java if they had to?
A: They could, yes. But the enthusiasm for Java within the enterprise has always been rooted in the fact that it’s multi-vendor. If enterprises were unsatisified with their Oracle application server, IBM and others would be only to happy to provide them with an alternative. A market in which Oracle is the only supplier of Java technologies is a constrained market. Oracle needs the Java ecosystem, which is why the Android lawsuit [coverage] was somewhat surprising.
Q: What were the implications of Oracle’s patent claims vis a vis Android for Java?
A: Many, but the most important for this discussion were the chilling effects. By suing Google, Oracle injected uncertainty into the Java ecosystem. Developers are now questioning Java as a language choice. Not in huge numbers, yet, but relative to the sound footing the platform was on previously, it’s an important shift.
In the wake of the Google litigation, nothing could be more important to Oracle than securing a public alliance with a high profile vendor to signal that – the lawsuit notwithstanding – everything was business as usual.
Q: Enter IBM.
A: Exactly. If Oracle was going to pick one vendor to stand beside them in their Java efforts, IBM would be the easy choice. Besides the blind trust enterprises place in the firm – “you don’t get fired for buying IBM,” etc – Big Blue has an enviable reputation with developers. With IBM now publicly on the same page as Oracle, the latter’s task of preserving the ecosystem becomes far, far easier. Because you don’t get fired for doing what IBM is doing, generally.
Q: So Oracle needed IBM, then?
A: They needed someone, yes. IBM was probably the first choice, but undoubtedly there were others.
Q: Why did IBM do it, then?
A: Quid pro quo, I’m sure. And possibly some legal concerns. But it’s also true that IBM needed Oracle.
Q: Why would IBM need Oracle?
A: Consider IBM’s portfolio. IBM has hundreds of software products, and of those, the easy majority are Java related. No one cares more about the future of Java than IBM. Even Oracle.
They had options available, to be sure: they could continue their investments in Harmony and hope it matured. They could fork the JDK. They could wean themselves off Java and on to another platform.
None of these represents an optimal approach for an enterprise that sells to a typically risk averse customer. Harmony isn’t mature enough to be considered a real alternative. A fork of OpenJDK would necessitate a massive rebranding effort. And a transition from Java would be lengthy and excruciating, even if they had an obvious replacement at hand. Which they do not.
So IBM’s best interests were to preserve, as best they could, the status quo. Because the status quo is making them money.
Q: Is that why Bob Sutor described the decision as “pragmatic?”
A: The pragmatism he referred to was centered more specifically on their efforts vis a vis Harmony. Basically, Oracle had made it clear that their feelings as an owner of Java were materially distinct from their feelings as an ecosystem participant. The TCK kit everyone wanted Sun to grant Harmony, then, was simply not going to happen. Neither Sun nor Oracle wanted to deal with a competitive implementation, and by denying Apache the TCK, they’d never have to.
With this reality now clear, IBM’s options were comparatively fewer. Harmony became, effectively, a dead end for the firm, first because of the inability to secure a TCK, but also because widespread usage of Harmony may have opened them to the same litigation Google now faces. True, Google’s problem stems more from the fact that it built its own VM in Dalvik than the Harmony libraries it employs, but given the state of patent suits today it would be shocking if Oracle couldn’t find something to sue IBM with if it attempted to transition its customers to Harmony.
Not that that’s likely, of course, given that the only thing worse than fighting IBM on patents is a land war in Asia. But neither would IBM want to expose itself unnecessarily to legal action.
Q: What’s to become of Harmony after all of this?
A: The fate of the project is less than clear. Tim Ellison, chair of the Harmony PMC, says:
I believe that compatibility is vital, and rather than risk divergence the right thing is to bring the key platform development groups together on a common codebase.
It’s non-specific, but clearly not positive on the future of Harmony. Stephen Colebourne, ASF member but non-committer to either Harmony or OpenJDK, is more blunt:
Here, a key IBM executive is being explicit. Their intention is to move all development work from Apache Harmony to OpenJDK. While never solely an IBM project, I would expect this to effectively mean the termination of the Harmony project.
Q: Are they correct? Is this the end of Harmony?
A: That likely depends on Google, I think. As Miguel says, they’re certainly capable of – and potentially motivated to – continue the work on Harmony. And as Jeff says, it may well be that they recruit for it. The question there will likely be whether or not Google feels the Oracle litigation relates to their usage of Harmony libraries in Android, or whether they believe the claims to be Dalvik specific.
Absent a white knight like Google, yes, it is hard to imagine the project continuing. But neither do I think it’s dead yet.
Q: What about Apache? Should they, as Jon Stevens suggests, decommit from Java wholesale?
A: That is, obviously, up to Apache. If it were my decision, the answer would be no. This is a blow to the foundation, without question, one with potentially long term ramifications for both IBM and Oracle. But it does not, in my mind, justify the abandonment of the tremendous wealth of Java related assets that are currently housed at the ASF. It’s not those project’s fault that Harmony was abandoned, after all, so denying them the right to the benefits of being an Apache project seems to me to be the wrong decision. But I respect the passion and the values of that community, and we’ll see how they move forward.
Q: What does this mean for your everyday Java developer or an enterprise that uses it?
A: Very little. As Rafe puts it, “As a practical matter for people in the business of developing applications using Java, I don’t think this changes all that much.” Long term, the impact may be negative, but in the short term this is, if anything, probably good for an end user because it means we won’t have a war of Java forks between IBM and Oracle.
Q: And what about IBM? What do they get out of this deal?
A: Well, as James Gosling says, we’ll probably never know the full story. The question is what did IBM receive in return for their support? Bob Sutor references, obliquely, two potential areas of compensation: the promise of a “leadership position” in OpenJDK and “long needed reforms in the JCP.” Influence, in other words, over the future of Java. We can only speculate as to the amount of that influence, but expect it to be substantial given the benefit to Oracle of IBM’s announcement. I’m also curious as to whether there weren’t any silent renogitiations of IBM’s Java licensing. My understanding was that IBM’s deal, signed with Sun from a position of strength, was favorable, but perhaps Oracle granted them even better terms.
Q: Oracle seems to win here, then?
A: That this is a win for Oracle cannot be debated. True, the longer term implications of the news from a developer perspective are less than positive, but that has not traditionally been an area of interest for Oracle. We can’t fully assess the deal from Oracle’s perspective until we understand precisely what influence IBM has been granted, but unless they handed over the keys to the car it’s likely to be a net win for the firm.
Q: And Google? Does this really “[cut] Android off at the knees?”
A: It’s bad news for Google, yes. First, because subsidization of the Harmony portion of their stack is over. Second, because the prior perception that Oracle was a bully with respect to Java – favorable to Google – must now be reconsidered. Last, because it eliminates IBM as a potential ally versus Oracle. All of that said, it’s not clear that this has any immediate practical import with respect to the Android litigation.
What will be interesting to watch will be how Google involves itself with Java moving forward. To date, it has been a heavily Java centric shop. Might that change?
Q: What of others in the Java ecosystem? Players like Red Hat, SAP and VMware?
A: Their reactions too will be fascinating to watch. Much will depend, I suspect, on the reconstruction of the JCP. If the revamped Java committee advantages IBM and Oracle at the expense of competitive stacks like JBoss or Spring, we could yet have a battle on our hands. If, on the other hand, IBM and Oracle act in measured fashion, making only the necessary changes, it’s likely in Red Hat, SAP and VMware’s best interests to toe the line for now. Early reactions are aggressive, as might be predicted.
Q: How about some questions from the public: here’s Simon Phipps. Will IBM actually join the community or is this a corporation-corporation deal like with OpenOffice? What else was agreed in the deal between IBM and Oracle that made this happen? Where does this leave open source developers in the software patent wars?
A: As for whether or not IBM will join the community, it’s unclear. I’ll be try to get some answers. The second, I think I’ve answered above as best I can. And as for software developers and the patent wars, my understanding is that the OpenJDK has a patent license (text). Or at least I don’t see the “explicit geographical distribution limitation” required by the terms of the license. Whether IBM’s withdrawal from Harmony might leave that project more open to claims, however, is a question worth asking.
Q: One more set: these are from K.S.
- Why didn’t the agreement include Java EE? Does its omission signal anything about the future of the standard and IBM’s commitment to it or plans to support EE 6 or (if it happens) 7?
- While likely not the primary reason for the agreement, how much did getting IBM to abandon Apache Harmony and in turn take a shot at Android play into Oracle’s desire to do this? And what happens to Harmony going forward?
- Both Oracle and IBM lobbied for changes to the JCP a few years ago, so what changes can we expect they’ll make? Will it just become IBM and Oracle together acting like Sun had to protect their own interests or will they genuinely make the changes they called for years ago?
A: Let’s see. As for #1, neither IBM nor Oracle has made that clear, as far as I know. But the focus here was likely due to IBM’s involvement in Harmony than anything else. Which brings us to #2: it seems self-evident to me that the Android litigation had some impact on this decision. Just how much is the question. Lastly, for #3, I just don’t know. As discussed above, we’ll have to wait and see, though I expect Red Hat, VMware et al are actively pursuing answers to these questions already.
John Wilson says:
October 13, 2010 at 3:45 pm
You’re using “Java” to mean the sum of three things:
1/ Java then language (in this context, a compiler for Java the language)
2/ The Java run time library
3/ The Java Virtual Machine
Harmony has all three and IBM has, as far as I can tell, contributed to all three.
Java compilers are trivial. IBM pulling out will have no impact on the Harmony compiler and even if it did there’s a slew of alternatives.
The Java run time library is very large but, on the whole, not very complex. The Harmony implementation built on existing partial implementations and there is no reason to believe that IBM brought any “special sauce” to the library implementation.
The JVM is the problem. It’s not at all hard to withe a pure interpreting JVM. The problem is that it runs dog slow. To make it run fast you need a Just In Tme compiler and JITs are very hard to do properly. I would guess there are a couple of hundred people in the world who have the skill and experience to build a high quality JIT for the JVM (probably far fewer). IBM employs some of these people as does Oracle and Google. This is where the damage is done by IBM pulling out.
Now, consider what parts of Harmony Google uses in Android:
It’s compiler agnostic – it sucks in bytecodes which can be generated by any Java or non Java compiler and turns it into its own internal representation.
It uses large parts of the Harmony run time library
It doesn’t use the Harmony JVM at all. It has its own VM which is not a JVM and it has developed it entirely on its own (at least that’s what it claims – see the lawsuit)
So if and when Apache throws a hissy fit and cans Harmony expect Google to sponsor an open source, Apache licenced project (somewhere like CodeHaus) which will continue work on the library and its test suite.
IBM has hit Harmony in the one place that Google doesn’t care about.
Shane Curcuru says:
October 13, 2010 at 3:49 pm
Thanks for the detailed and thoughtful overview!
In terms of Apache Harmony, the decision of where to go is up to the project itself. At the ASF, we view projects as communities, and the PMC managing the community as a whole decides where they go. There are a number of independent committers on Apache Harmony, so a lot will depend on where they want to take the project. I wish them luck!
Another key topic to keep an eye on is the JCP EC, both it’s upcoming elections as well as future votes on Java 7. The results of those actions will go a long way to letting the world know if this is successful in forcing Oracle to bring some “long needed reforms” to the JCP, or if it’s simply going to run the JCP directly.
Links 14/10/2010: LSE GNU/Linux On Line, Linux Tablets Domination Expected | Techrights says:
October 14, 2010 at 3:14 am
[…] IBM, Oracle and Java: The Q&A That Java the ecosystem is a larger work, a massive collective effort, is not in dispute. But as the JCP’s more vocal critics have observed in the past, Sun was for better or worse the commercial entity behind Java. Whether or not the profits from its work matched that of others in the ecosystem. […]
links for 2010-10-14 « Wild Webmink says:
October 14, 2010 at 8:09 am
[…] IBM, Oracle and Java: The Q&A Excellent summary of the situation from O'Grady (as usual). The only thing lacking is speculation about the new power distribution in the community. With Oracle winning the bet that might would defeat right, there seems space for some analysis of whether the Java community just became sharecroppers. (tags: Java IBM Oracle OpenJDK) […]
Daily links for 10/14/2010 | Blog | Bob Sutor says:
October 14, 2010 at 9:30 am
[…] IBM, Oracle and Java: The Q&A – tecosystems […]
October 14, 2010 at 8:31 pm
@John Wilson: Just wanted to thank you for putting things in a clearer perspective with your comment.
IBM 和 Oracle 改变了游戏：结成 OpenJDK 同盟 | laura's site says:
February 21, 2011 at 1:34 pm
[…] 同盟 让 Oracle 不再隔绝，RedMonk 的 Stephen O’Grady说，成功地使它在 Java […]
IBM 和 Oracle 改变了游戏：结成 OpenJDK 同盟 | 含树网 says:
May 25, 2014 at 12:59 am
[…] 同盟 让 Oracle 不再隔绝，RedMonk 的 Stephen O’Grady 说，成功地使它在 Java […]