It's official: the Apache Software Foundation is out of the Java Community Process.
The effect of this decision is a little hard to determine: at once it seems to remove the ASF's Java-related projects from the official Java banner--but that's a bit of a moot point, since Project Harmony wasn't officially compliant to begin with.
And that's been the problem all along: Oracle, as the sustaining member of the JCP, has not granted a test compatibility kit (TCK) license to the ASF's own Java implementation, Project Harmony, due to specific incompatibilities in the TCK's license. Without the TCK, Harmony cannot be tested and certified against the Java standard. This effectively reduces the potential user base for Harmony, which the ASF claims is likely the reason why Sun Microsystems, the original sustainer of Java, inserted the incompatible language in the first place.
The resignation follows through on the threat ASF leaders made in early November, if this week's vote on the Java Standard Edition 7 roadmap went through. In the vote this week, only two of the 16-member JCP executive committee voted "no": the ASF and Google.
"This vote was the only real power the Executive Committee has as the governing body of the Java specification ecosystem, and as we indicated previously we were looking for the EC to protect the rights of implementers to the degree they are able, as well as preserve the integrity of the JCP licensing structure by ensuring that JCP specifications are able to be freely implemented and distributed. We don't believe this is an unreasonable position--it should be noted that the majority of the EC members, including Oracle, have publicly stated that restrictions on distribution such as those found in the Java SE 7 license have no place in the JCP--and two distinguished individual members of the EC, Doug Lea and Tim Peierls, both have resigned in protest over the same issue," yesterday's ASF statement read.
The ASF has long maintained that denying individual JCP member rights is an abuse of power by Oracle (and Sun before it). Because of this, the ASF has leveled charges that the JCP is not a true open specification.
"Java specifications are proprietary technology that must be licensed directly from the spec lead under whatever terms the spec lead chooses," according to the ASF statement. The spec lead being Oracle.
What happens next is not clear. It is always possible that Oracle and the ASF will reconcile their differences, but given Oracle's current lawsuit against Google for alleged infringement of Java code (code that Google insists was clean-room derived from Project Harmony, not Java), that doesn't seem likely.
As I wrote earlier this week, a fragmented Java community would mean weaker Java flavors on all sides, something Oracle absolutely doesn't need when going head-to-head with Android and iOS.
Not everyone might agree with this assessment. In the blog post announcing his own resignation, Peierls believes that Java's maturity is at level it should be.
"To my own surprise, I'm coming to believe something heretical, that it actually is not all that crucial for Java to move forward, at least not to the constituency I felt that I represented on the EC, the tens of thousands of Java developers who don't work for a big company with an Oracle contract," Peierls wrote.
"The big boys want big apparent forward motion because it means more stuff to sell, more contracts and control. As a result, we are whipped to a frenzy with messages (both subliminal and explicit) that Java is falling behind, losing mind-share, being lapped by C#, anything to sell the idea that more is desperately needed, when in fact most folks could make do with a lot less," Peierls continued.
This is not an idea I would immediately warm to, because it does seem to fly in the face of business and consumer drivers. Still it comes from a knowledgeable source, and as such it deserves consideration.
Will the ASF's departure represent a weakening of Java overall, or is it a case of that which doesn't kill us makes us stronger?