There can be no doubt that open source has been a tremendous boon to Java. The JCP (Java Community Process), by which the Java language and platform moves ahead, seems to inch forward at a glacial pace. Committee review and approval are slow, thoughtful processes, but they’re conducted at a pace that cannot be wholly condemned. Java, after all, is the leading platform for enterprise applications and as such, it should evolve slowly, even when needs are pressing. Resolving one set of problems by creating another is never a good solution.
At the other end of the spectrum, however, is the open-source community, which has been galloping ahead with numerous important innovations. The fundamental tools of enterprise Java today are all open source: Ant (for building applications), Hibernate (for persisting data to disk), JUnit (for running unit tests), and Maven (for continuous integration); not to mention the highly regarded Eclipse and NetBeans development environments and the PMD source-code validator.
Java developers also benefit from several open source frameworks, such as JSF (JavaServer Faces), Spring, and Struts. Then there are the numerous containers: Apache Tomcat, Geronimo, Jetty, Jonas, and Resin, to say nothing of many smaller containers for embedded use. Open source has been a tremendous font of imagination and productivity for the Java world.
Between these two streams -- the JCP and open source -- stand the three major providers of enterprise Java technology: BEA, IBM, and Sun Microsystems. They all straddle the line between open source and closed tools. Although many IBM tools are proprietary, it has been a major contributor to Java itself and to the open source community. BEA has become very active of late with its “blended” strategy, in which its proprietary tools actively support open source products. In addition, BEA also has donated code and bodies to several open source projects.
Sun remains something of a holdout. Zealots have been hectoring Sun to open source Java, in hopes of accelerating innovation in the platform. Sun, however, has dragged its feet. There is some logic to its action (or lack thereof), namely that opening the Java code could splinter Java into differing versions, thereby diminishing Java’s vaunted portability; but the community has stridently attacked this stance.
This puts Sun in an unaccustomed position, in view of its long-standing contributions to open source. Sun remains the only company to have open sourced its own operating system and a complete office productivity suite. And indeed it has open sourced many Java technologies. So, perhaps grudgingly, at LinuxWorld in August, Sun made explicit the time frame in which it intends to open the Java libraries and Java Virtual Machine, in addition to launching a community Web site where developers can track its ongoing progress.
Will all this vigorous energy in the direction of open source benefit Java in the long term? Its slow pace of development aside, part of Java’s success lies in the stewardship Sun has shown. Taking that role out of Sun’s hands by opening the Java source code could result in brilliant enhancements to the platform -- or it might end up damaging it.