Get ready for a big cup of Hot Java. According to a Sun Microsystems executive, the source code of the company’s Java programming language could be released within a matter of months. However, the company has not yet provided an explicit timeline and continues to cite compatibility concerns and competitive considerations as sources of trepidation.
Although release of the Java source code is beginning to look less like an empty promise and more like an eventual possibility, details are still quite sketchy. Sun’s chief open source officer, Simon Phipps, says he doesn’t "pretend to know what the answer is for what combination of licensing and governance to use." In a presentation earlier this week, Phipps claimed that open source software development is all about serving "self-interest" rather than "enrich[ing] the commons" or promoting freedom and consumer choice. His statement reflects Sun’s attitude towards open source software and illuminates the reasons why the company still hasn’t gotten around to releasing the Java source code. Perhaps I’m just a naive idealist, but I happen to think that promoting freedom and consumer choice serves the best interests of everyone.
Sun executives are worried that releasing the source code will cause fragmentation within the Java community and lead to the creation of divergent forks and incompatible virtual machines. This particular concern is relatively vacuous, since there already a number of competing Java virtual machines, few of which are fully compatible. In the words of Red Hat developer Chris Blizzard, "Write once, run anywhere? It?s a lie, guys." Ironically, releasing the source code would probably significantly decrease compatibility problems because it would provide virtual machine developers with a reference implementation to which they could conform, and it would eliminate the need for limiting public access to official specifications. Virtual machine developers have complained that the closed and secretive nature of the Java "Community" Process (the organization that Sun created to establish Java standards) is detrimental to virtual machine development. Dalibor Topic, one of the lead developers of the Kaffe Java virtual machine, comments: "I do not value spending my time wrestling with Sun’s legal department to find out if I can talk about something with my peers."
Competitive considerations represent a more legitimate problem for Sun. By releasing the source code and making Java available to the community, Sun would risk losing leverage over companies like IBM and BEA that depend upon Java technology. Sun has had trouble turning Java into a profitable product over the years, and making the source code available could weaken Sun’s market position even more. Although Sun could suffer a little bit in the short term by opening the Java source code, the company’s refusal to do so has already cost a whole lot more in the long term. Microsoft’s .NET development platform is rapidly gaining momentum even within the Linux community. Since most of the core .NET architecture is documented as ECMA and ISO standards, open source software developers have been able to create Mono, an effective .NET implementation that has already facilitated the development of many widely used C# applications on the Linux desktop. Mono is on the brink of becoming ubiquitous as GNOME developers begin to discuss including C# applications by default in the widely used desktop environment. By comparison, Java’s restrictive license previously limited widespread distribution on the Linux platform, a problem with which Sun still struggles and only recently attempted to resolve. Java is also beginning to lose its edge on servers as developers increasingly turn to dynamic languages like Python and Ruby.
Sun may finally get around to releasing the Java source code in the next few months, but will it do any good at this point? In the past, Sun has been accused of trying to create "the appearance of openness without the substance." If Sun continues to play that game and uses a license that is too restrictive, the open source development community may not take the bait.
Update: In a blog entry, Simon Phipps has clarified that by “months” he means “double-digit months.” Apparently, his initial comment was intended as an assurance that “it’s really happening and that point is likely to be way sooner than the distant future Sun’s detractors would like to imply!” That’s Sun-speak for “Don’t switch to C# while we try to find a way to open the source code without having to sacrifice complete control.” We may be in for a long wait.