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.