Thursday, 28 October 2010

Four viewpoints of war

I wanted to summarise, comment on and respond to four recent blogs - Doug Lea, Henrik Stahl, Bill Burke and Mike Milinkovich.

Doug Lea

Doug Lea's resignation statement is in essence a pretty straightforward and clear piece summarising the problems with the JCP.

I believe that the JCP is no longer a credible specification and standards body, and there is no remaining useful role for an independent advocate for the academic and research community on the EC.

Some have argued that JCP was never a credible standards body. I once disagreed: Sun initially placed in the JSPA and Process documents enough rules to ensure that the JCP could foster innovation, quality, and diversity, independent of that from Sun, with few enough (albeit annoying) exceptions to allow JCP to drive consensual progress more successfully than seen in most standards bodies. However, some of these rules, and violations of rules, have been found to be the source of stalemates and lost technical ground. Rather than fixing rules or ceasing violations, Oracle now promises to simply disregard them. If they indeed act as they have promised, then the JCP can never again become more than an approval body for Oracle-backed initiatives. (Oracle's choice of timing submission of SE release JSRs forced me to decide not to stand for another term based only on those promises, not on the actual actions.) I urge other EC members to consider whether short term "pragmatism" in voting outweighs such consequences.

This is the statement from someone on the inside. Someone whose technical contribution everyone respects. He outlines that the JCP managed well for long enough, but no longer.

The key phrase is "Rather than fixing rules or ceasing violations, Oracle now promises to simply disregard them." This is a reference to Sun, then Oracle, deliberately breaking their legal agreement with Apache.

Not unreasonably, Doug makes an honourable decision to step down in the face of such actions. Instead, he is choosing to just focus on writing code at the OpenJDK instead, a decision we can all understand.

Henrik Stahl

Henrik is one of the key product managers in charge of Java SE. After a long gap without Oracle responding, Henrik replied.

I am sad to hear that he has decided to leave the JCP EC, and can only say that I hope that he will still continue to act as a leader in the community. People like Doug are needed to balance the priorities and interests of Oracle and other big corporations.

Doug and a few other members of the community such as Stephen Colbourne have made some very strong statements regarding the JCP. Needless to say, we don't agree with this bleak description of reality. We believe that the JCP is and remains a good organization for ushering the Java standards forward. We agree with the need of continually improving the JCP, and will work on that together with the EC. We also note that the EC contains a diverse set of companies and individuals, many of which are among Oracle's most fierce competitors. We believe that an open, vigorous and sometimes heated debate between conflicting interests and differing opinions is a necessary part of hammering out standards that serve the best interests of Java users, and we are confident that a vast majority of the EC members agree with us on this.

I agree with much of this funnily enough - people like Doug are needed, the JCP needs improvement, the JCP does contain Oracle's fiercest competitors and different opinions are needed. Where we disagree is whether the JCP remains a viable organisation when Oracle breaks the legal agreement on which the whole organisation is based.

Bill Burke, JBoss

In the wake of Doug Lea leaving the JCP, I just want to say that I think the JCP is salvageable. This idea the JCP is an unworkable entity is plain and utter myth. A myth propagated by those that want to see it fail (i.e. SpringSource) or those that want to create their own, and controlled, specification efforts (IBM), or those that are more interested in doing their own thing than collaborating with others (i.e. Google and SpringSource).

Having read the title, I must admit that I was a little surprised at the content (only summarised above). What is interesting to me is the explicit attacks on other vendors, especially SpringSource (who JBoss have got it in for at the moment).

Perhaps there is an explanation? Could I suggest that JBoss's leading projects are implementations of JSRs in one form or another - from Seam to Hibernate to EJB? Would the end, or even a weakening, of the JCP represents a significant risk to their business? It would certainly require a new rhetoric and marketing speil!

Mike Milinkovich, Eclipse

My goodness, this past week has seen a flurry of despair around Java and the JCP. Most of it misguided, in my humble opinion. [snip]

Let me start by saying that like Red Hat’s Bill Burke, I believe that Java and the JCP are doing just fine and are here to stay. Despite some short-term growing pains, they are both in much better shape than they were under Sun’s stewardship over the past couple of years. In fact, I would go so far as to say that in terms of real, tangible progress, this past month has been the best for Java in the past three years.

Well thats positive! "Java and the JCP are doing just fine"!. The "best for Java in the past three years"! We have to read on to understand why he feels like this.

“The Great War of Java”: Stephen Colebourne’s most recent post is, well, just plain wrong. I totally understand the frustration and disappointment of the Apache community who have done so much for Java over the past decade or more. But the fact is that the “Great War of Java” didn’t happen, and it well could have. The announcement that IBM had made peace with Oracle and was joining OpenJDK meant that the fork that so many had predicted is not going to happen. I cannot say this strongly enough: characterizing the current status quo as a war is just wrong. What we may have on our hands is a failure to communicate, a major disappointment for Apache and/or a time of significant change in Java’s governance. But in my opinion the conflict that truly could have harmed Java has been averted.

Firstly, I want to emphasise that I see this issue as broader than the "Apache community" (of which I personally make precious few contributions to these days). And I'd point out that until a few days ago, Eclipse saw it as a broader issue worth fighting for too.

My reading of Mike's words is that he saw my "Great War of Java" post as solely being about the JCP. And re-reading, its possible to see why that might be.

But the "Great War" I refer to is the perfect storm of problems surrounding Java right now. The announcements from Apple and Nokia simply backing up the JCP disarray. This is absolutely a transformational time for Java.

War is generally about territory, and Java is losing territory left, right and centre. And I'm referring to mindshare as much as technology platforms.

Whereas Mike is referring to a war that didn't happen - the forced breakup of the JCP and a new fork (with IBM playing a key role no doubt). Clearly, Mike believes that scenario would have truly harmed Java.

Well, I hate to say it, but the fork happened a while ago - Android. And it remains by far the most exciting and interesting part of the broader Java ecosystem, and the only place where consumer oriented Java on the "desktop" remains relevant.

Doug Lea’s departure from the JCP EC: Doug has been a very important voice on the JCP Executive Committee since long before we got there. He understands the process deeply and cares about how players other than the large corporations can participate, contribute and innovate within the Java ecosystem. He will be missed. However, I do think that his reasons for resigning were based on some incorrect assumptions.

I believe that many people are confusing the JCP’s vendor neutrality with its effectiveness as a specifications organization. The JCP has never and will never be a vendor-neutral organization (a la Apache and Eclipse), and anyone who thought it so was fooling themselves. But it has been effective, and I believe that it will be effective again. That’s why if re-elected, Eclipse will be voting for the Java 7 JSR. We need to get back to actually getting platform specs through the process if Java is going to advance.

As a truly vendor-neutral organization, we at Eclipse understand the value that brings to the community and the commercial ecosystem. Unfortunately, I believe that OpenJDK’s governance will, in the end, be no more vendor-neutral than the JCP’s. It simply cannot be. Oracle has a responsibility to its commercial Java licensors to deliver them intellectual property under commercial terms and conditions, which is why contributors need to sign the CLA. By definition, if Oracle needs to own the IP for Java, including the IP in OpenJDK, the governance model will always require some sort of special role for Oracle. I wish it could be otherwise, but that is how I see the situation.

But the key point is that in neither case (JCP or OpenJDK) does the lack of vendor neutrality mean that the organizations are ineffective. Both have already demonstrated success in pulling together many competing interests and getting innovative work completed. So the lack of vendor neutrality is not fatal. In fact, I am optimistic that having both an open standards and an open source organization working in collaboration will help accelerate innovation in the Java platform.

On "the JCP has never and will never be a vendor-neutral organization", I both agree and disagree. EE and ME specifications have no need to be controlled by Oracle. Other standards groups do not have such a single vendor dominance, and that neutrality is beneficial. Whereas, in the core, Oracle truly does put in all the funds and guides the platform. Having a single vendor control, with external input, is probably a better model. Just like Linux. Therefore, on "I believe that OpenJDK’s governance will, in the end, be no more vendor-neutral than the JCP’s", I agree.

I agree that the JCP has been effective. But I see no way to make it effective again without radical change. Right now, I'm far from alone in trusting a so-called proprietary API from Spring or Google than a JSR API.

But the kicker is at the end. "In fact, I am optimistic that having both an open standards and an open source organization working in collaboration will help accelerate innovation in the Java platform."

How can it be an "open standard" if you can't implement it?

This is the key issue. Despite legal agreements and public promises, it is impossible to implement a supposedly open standard. Mike, how can you justify that?

I've only been able to come up with one solution - the #splitjcp compromise proposal. By clearly removing those parts that are blatently not open standards from the JCP, it enables everyone to move on and start afresh with those standards that are.

Legal agreements

Sun, now Oracle have broken their word, their public promises and their signed legal agreements.

I remain stunned that anyone would want to do business with Oracle without some change in the rules.

After all, if your boss gave you their word to you to pay you salary $x, made a public pledge to the rest of their team that they had hired you, and signed a written contract with you stating the salary, wouldn't you feel extremely aggrieved if three years later you'd never been paid despite asking many times? And what if your boss then turned around and told you that you never will be paid? Would you ever trust a word your boss said ever again?

By the way, have you noticed that no-one is trying to claim that the legal agreements have not been broken?

Summary

Ultimately, the big companies and organisations are closing rank around Oracle. They've decided that it doesn't matter that the legal agreements they've signed aren't worth the paper they're written on or that Oracle can't be trusted. (Or perhaps they naively believe that Oracle only breaks legal agreements with Not-For-Profits.)

But, many of us in the wider community know that what has happened here stinks and have no reason whatsoever to trust a single word from Oracle.