By open sourcing Java Sun probably thought it had earned 'brownie points' with the open-source community. Instead, as a recent vote over Java Enterprise Edition 6.0 suggests, the community may be intent on teaching Sun that there's more to 'open' than source code, with the Apache Software Foundation (voted against) and SpringSource (abstained) siding against the pending Java specification, as reported by Gavin Clarke in The Register.
Apache is the only member of the 16-member Java Community Process to vote against the 6.0 specification, arguing that Sun "has breached the terms of the JCP's Java Specification Participation Agreement (JSPA), by inserting terms into the licensing of the all-important TCKs that limit uptake of Java," but it did so for good, albeit self-interested, reasons:
[Apache representative Geir] Magnusson claimed today, as the did two years back, that Sun's refusal to change its licensing terms is damaging Apache's Project Harmony, an open-source implementation of Java SE. Harmony had a modular, OSGi implementation in Java SE before Sun's official Java SE. Without a TCK, Apache cannot prove Harmony complies to Sun's Java specification, meaning people will shy away from using it.
"Sun's doing tremendous damage to the project," Magnussen said.
It looks like Sun's rigorous adherence to the law is also hurting the one thing the company holds so dear: compatibility. Google's Android uses Harmony's class libraries.
Sun's tight control of Java begs for opening up. As noted by The Register, Sun's goal to maximize compatibility is almost certainly hurt by its efforts to control the standard. It's a battle that Sun has fought for a decade, with fierce debates springing up at the O'Reilly Open Source Convention and elsewhere, but it's not a problem that is going away anytime soon.
I'm supportive of Sun's desire to both profit from and guide the development of Java. But Sun can't have it both ways, as the 6.0 specification vote demonstrates. Control and community don't go nicely together, unless that control is exercised by the community.
Sun has to choose how it wants Java to succeed. If it continues to upset key Java community members like Apache, it will fail to drive the kind of Java adoption it desires.