Rabu, 13 Oktober 2010

IBM joins Oracle on OpenJDK

The basic announcement today was that IBM would join with Oracle to work on the OpenJDK. The reciprocal IBM announcement said the same thing.

These press releases are very bland of course, and the far more interesting comments come from the blogs of the key players. In particular, from Bob Sutor, VP of Linux and open source at IBM:

With that preamble, 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.
(My highlights)

The press release is coy. 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.

Bob continues:

We think this is the pragmatic choice. It became clear to us that first Sun and then Oracle were never planning to make the important test and certification tests for Java, the Java SE TCK, available to Apache. We disagreed with this choice, but it was not ours to make. So rather than continue to drive Harmony as an unofficial and uncertified Java effort, we decided to shift direction and put our efforts into OpenJDK. Our involvement will not be casual as we plan to hold leadership positions and, with the other members of the community, fully expect to have a strong say in how the project is managed and in which technical direction it goes.
We also expect to see some long needed reforms in the JCP, the Java Community Process, to make it more democratic, transparent, and open. IBM and, indeed Oracle, have been lobbying for such transformations for years and we’re pleased to see them happening now. It’s time. Actually, it’s past time.
(My highlights)

I've spent a lot of time writing up the politics and issues behind the Sun/Apache Harmony TCK dispute. Here Bob clearly outlines the end game of that dispute.

IBM clearly came to the conclusion that there was never, ever going to be a TCK for Apache Harmony, and that they had no means of recourse against Oracle. Its clear that they disagreed with this, but took the pragmatic view that the dispute needed to end, and they had the weaker hand.

That said, it is clear to me that IBM have got some elements that they want in a form of quid pro quo. This is outlined in the "leadership position" and "reforms in the JCP" sections.

It is perhaps not widely known that there was a JCP face to face meeting at the end of last week. It is clear that discussions at that meeting were key to the announcement today.

The blog from Henrik Stahl, Senor Director Product Management Oracle, summarises Oracle's views and links to the JCP:

What happens next?
* Oracle will create JSRs for Java SE 7 and Java SE 8 and submit them to the JCP.
* Development on JDK 7 will continue to make progress, and we expect to publish an updated build schedule shortly. Please expect this to be revised as we move through the standardization process.
* We will continue to work with IBM and others to enhance and improve the JCP. This organization has been hugely successful in pulling together a wide range of organizations and individuals, but it is 15 years old and there is always room for improvement. There were some really good discussions on this within the JCP last week, but you'll have to wait a little bit longer for a more detailed update on that topic :-)

This blog links the announcement today back to the JCP and discussions of its future. As indicated, we are not going to see the results of that meeting for a few weeks.

Other blogs have indicated that IBM is likely to contribute primarily to the class libraries, rather than the JVM (where Oracle and IBM compete). This is obviously a pretty pragmatic, simple and practical way for two large companies to work together without damaging their businesses. Providing that management/leadership can be worked out - which appears to be an improved JCP.

My views

In my opinion, Sun Microsystems behaved atrociously towards Apache Harmony. The promise made was clear:

JSR 270: JavaTM SE 6 Release Contents
...
2006.10.24:
2.18 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.
...
7. Nothing in the licensing terms will prevent open source projects from creating and distributing their own compatible open source implementations of Java SE 6, using standard open source licenses. (Yes, you can create your own open source implementation of Java SE 6 if you really want to. But we're also doing everything we can to make it easy for you to use the original RI sources! See http://jdk6.dev.java.net.)

JSR-270
(My highlights)

That promise (and associated legal agreements) were broken.

Pretending that Sun behaved with the slightest element of decency in this matter is being utterly blind to the facts. They made an executive level choice to shaft the Apache Software Foundation with the explicit knowledge that they would not be sued by a Not-For-Profit.

But lets not reserve that much credit for Oracle, who supported Apache up until the point they bought Sun. And then opposed them. Once again, another game of executive level politics. (Remember that when Oracle sued Google it became impossible for Apache Harmony to be recognised, as doing so would destroy Oracle's case.)

Apache and the JCP

Clearly, IBM have decided that Apache Harmony has served its purpose. There was no way that Oracle was going to be the "nice guy" it once professed to be. There was no way Harmony was ever going to be certified as Java. So IBM made the pragmatic choice.

Given the actions of Oracle, frankly IBM had little choice. What remains to be seen is what deal was done in the JCP as the balancing factor.

Because that deal really matters.

Clearly, there will be no TCK for Apache Harmony, ever. The legal agreements that Apache signed which entitle them to the TCK have been rendered useless.

So, why should Apache stay in the JCP?

This is the Billion Dollar Question. And its answer could terminate projects like Apache Tomcat, Geronimo, MyFaces, OpenEJB and OpenJPA in their current form if Apache decides to leave the JCP.

I hope that the deal cut in the JCP is good. Because for the sake of the industry, it needs to be. The Java community needs Apache, and Apache implemented specifications, and I hope everyone recognises that.

I'd also note that the executive committee in charge of the vote on Java SE 7 has 16 members. IBM and Oracle are only two votes. Oracle needs to have got the support of others to actually get the vote to pass. My guess is that the vote will pass, simply because there is no other game in town.

Summary

Today, IBM took the pragmatic decision to end hostilities over Apache Harmony and move on. This is clearly a good choice for IBM, and probably the best we could hope for Java. It does mean that Apache Harmony is effectively dead.

But frankly, Sun, now Oracle, have got away with murder.

Whether the Apache Software Foundation can stomach staying in the JCP is, I would say, still an open question. Lets hope the deal that was cut is really positive. Because it really is time for the Java industry to move on.


Stephen Colebourne
Apache Software Foundation member, speaking personally
Oracle Java Champion, speaking personally
Not a committer on Harmony or OpenJDK

http://www.jroller.com/scolebourne/entry/no_java_7_the_end

Tidak ada komentar:

Posting Komentar