A new emperor has arisen and has begun consolidating his power in the galaxy. The old institutions have been marginalized and are gradually being swept away. All that stands between democracy and a new totalitarian empire is a ragtag group of loosely organized rebels. It sounds like "Star Wars," but it's a scenario that might just as well describe the Java ecosystem today.
Ever since Oracle acquired Sun Microsystems last year, Java community members have worried that the database giant would attempt to seize control of the Java platform. The effort to transform Java into an open source, standards-based platform driven by industry-wide consensus and collaboration was long and arduous. But Oracle has never been one to share its markets willingly, and Oracle CEO Larry Ellison made no bones about what he saw as Sun's failure to capitalize on its Java technology.
[ InfoWorld's Paul Krill sketches out the disagreements emerging over the JCP. | Keep up to date on the latest in Java with the JavaWorld Enterprise Java newsletter. ]
Sure enough, over recent months Oracle has launched its campaign in earnest. First, it announced an agreement with IBM to collaborate on Oracle's OpenJDK as the primary open source Java SE implementation, at the apparent expense of the rival Apache Harmony project. Next it tried to stack the deck of the Java Community Process (JCP) in its own favor by appointing a ringer -- a hitherto unheard-of Oracle customer called Hologic -- for a position on the JCP Executive Committee. Now Oracle has announced plans to offer a "premium," commercial version of the JVM to enterprise customers, including unspecified enhancements that won't be shared with the community-built version.
Enough, say some JCP members. The Apache Software Foundation (ASF), one of the most important contributors of open source Java tools and frameworks, has issued an ultimatum demanding that the JCP enforce the ASF's rights as a fair and equal participant in the Java specification process.
"The lack of active, strong, and clear enforcement of those rights implies that the [Java specification] agreements are worthless, confirming that JCP specifications are nothing more than proprietary documentation," reads the ASF's statement. If the JCP does not side with the ASF against Oracle, the ASF may withdraw from the JCP altogether. Could this be the beginning of the end of the community-driven Java platform as we know it?
A powerless JCP is no JCP at all
Ian Skerrett, director of marketing for the Eclipse Foundation, was less pessimistic about the JCP's role, but had even harsher words for Oracle's handling of recent events. "The basic problem is that people don't trust you and you aren't very good at community building," he wrote in a blog post addressed to Oracle. "In fact you are pretty bad at community marketing." In closing, Skerrett urged Oracle to "get a clue."
And James Gosling, the father of Java, has been lobbying for the Java platform's independence from Oracle since before the Sun acquisition. Oracle proposed the creation of an independent Java foundation in 2007, back when Sun was still an independent company. Now that Oracle itself owns Java, however, its interest in such a foundation seems to have all but vanished. "I'm not holding my breath, but if enough customers rose up in revolt, it could actually happen," Gosling wrote in August.
For Java to remain a community-driven platform is of particular importance to the open source community. Among the ASF's complaints is that Oracle (like Sun before it) has undermined the Apache Harmony project by denying the ASF access to the Java Technology Compatibility Kit (TCK), a suite of tests used to check a Java implementation for standards compliance. Oracle's license terms for the TCK are incompatible with the Apache License, making it impossible for the ASF to certify Harmony as a compliant Java SE implementation. In effect, that leaves Oracle as the sole provider of an open source Java implementation -- which, ASF argues, goes against the founding principles of the JCP.
Is there life after Java?
If the ASF echoes Lea's vote of no confidence in the JCP, however, and enough other members follow suit, it could effectively unravel the Java community as a whole. In particular, educators, academics, and researchers will have little incentive to remain loyal to a platform that has become foremost a proprietary product aimed at Oracle's lucrative enterprise customer base.
Independent developers could face the toughest decisions of all. Java has become as entrenched in business computing as Cobol was decades ago. Even if the JCP dissolves, many developers will be left with few alternatives. Jumping ship to Microsoft .Net offers little advantage over even an Oracle-dominated Java. C++ is a powerful, mature language, but it lacks Java's portability, its sandbox security model, and its diverse set of standardized APIs. Other VM-based languages, including Perl, Python, and Ruby, can't match Java's performance.
Google could yet emerge as the dark horse in this race. The search giant is currently embroiled in a patent dispute with Oracle over its use of Java technology in its Android smartphone platform. That could be enough to encourage it to fast-track its nascent Google Go language to become a head-to-head competitor with Java.
Even better, however, would be if Oracle heeds Ian Skerrett's advice and learns how to play nice in the Java community. Oracle got off to a bad start, but it's not too late to smoothe over current conflicts and appease its detractors. For instance, it should grant the ASF access to the Java TCK under fair, open source-friendly terms as a gesture of good faith. Second, it should empower Oracle representatives to begin an honest, thorough, ongoing, two-way discussion with JCP members regarding its plans and position toward the Java platform.
The alternative, of course, for Oracle to keep going the way it is now. But if chooses to do so, Oracle may well find that the more it tightens its grip, the more developers slip through its fingers.
This article, "The coming war over the future of Java," originally appeared at InfoWorld.com. Read more of Neil McAllister's Fatal Exception blog and follow the latest news in programming at InfoWorld.com.