Beyond language, libraries, and VM, there is the Java community. Despite the massive amount of open source software written in Java, there continues to be an open and obvious friction between the Java community and the open source community at large. Largely, this can be traced to Sun's unwillingness to release its Java implementation under a suitable open-source license, although the source is available under a variety of Sun-specified licenses.
Some say this conflict is utterly misguided. Developer Bruno Souza, speaking on a recent episode of O'Reilly's Distributing the Future podcast, said that this anti-Sun argument profoundly misunderstands the nature of Java, as the language, libraries, and virtual machine are all standards set by the largely open and transparent Java Community Process:
All of the Java standards that are there can be implemented as open source. This distinction between if the Java standard is run or not by an organization outside of Sun, I don't think that matters that much. The most important thing is that the rules of the JCP are very clear ... The JCP is a very open standards organization. Of course, it's not perfect. But I think that one very important thing is that the standards the JCP generates, you can implement open source implementations of the Java standards. And that's extremely important, because that's the combination we want ....
You say Java's not open source ... that's a totally meaningless statement. Because it means nothing to say that Java is or isn't open source. It's like saying HTTP is or isn't open source; it doesn't mean anything.
Indeed, the Apache Harmony project is developing what it intends to be a "world-class, certified J2SE implementation," available under the Apache License V2, all of which is permitted and encouraged by the JCP.
Beyond the JCP
Moving from the metaphorical cathedral to the bazaar, a massive range of Java projects exists outside of the standards body of the JCP. As noted before, Java is the top language for projects on SourceForge, and still more open source Java projects can be found at java.net, the Apache Jakarta Project, Javalobby's Javaforge, OpenSymphony, and countless independent sites. Many of these projects have grown to rival official JCP standards in mindshare, most obviously lightweight enterprise frameworks like the Spring framework, which has lured many developers frustrated with "official" specs like EJB 2.1. Independent projects have also been quick to adapt to changes outside of Java and bring in their best features, such as the Rails-inspired Trails, or the AJAX-simplifying Direct Web Remoting (DWR) project.
What a difference ten years and a few million developers make! It is time to sweep away old assumptions about Java: the coupling of language to VM, mischaracterizations of its status vis-a-vis the open source world, and predictable cheap shots about its performance or lack thereof. The next ten years of Java look to be entirely different, possibly forking not the language, but the focus, with many developers continuing to work in an evolving Java language that is run in various environments, while others run many different languages on the VM. Soon, asking "What is Java" may beg the question "which Java--the language or the VM?"
Chris Adamson is an author, editor, and developer specializing in iPhone and Mac.
Return to ONJava.com.