Among the biggest news stories at the recent JavaOne conference was Sun Microsystems’ long-awaited announcement that it will be releasing the industry-standard Java programming language under an open-source licence. Java expert Richard Hoffman put together this list of answers to frequently asked questions covering some of the basic history behind this decision, what it means and why you should care.
What’s the back story here? Ever since the platform-neutral Java programming language was first released by Sun Microsystems, in 1995, Sun has tried to walk a fine line between soliciting community development, through developer and third-party buy-ins and retaining a measure of control over the form and evolution of the language.
Sun has toyed and tinkered with a variety of standards bodies, licensing models, structures and forums for community participation and feedback. The most prominent is the Java Community Process, a vendor consortium-based approach. But, throughout it all, many Java developers and Java stalwarts in the industry, such as IBM, have continued to call for Sun to release Java under a genuine open-source licence, such as the GNU General Public Licence.
What’s the big deal? Isn’t the source code for Java already available? Yes, the source code for Java has been available for years, via the SCSL and JRL licence programmes, but a true open-source release would make it possible for developers to innovate more freely with Java, with less involvement from Sun and fewer licensing restrictions on distribution.
Sun, while making periodic noises about the possibility of open-sourcing Java, has resisted this move, until now.
What’s Sun afraid of? Sun representatives have publicly stated that they want to avoid “forking,” that is, creating divergent and fragmented versions of Java that might become mutually incompatible with one another. One of Java’s key strengths has been the perception that, despite the availability of Java Virtual Machines and technology from a variety of vendors and sources, there is only one “true” Java, and that code written in Java will run across all Java platforms with a minimum of difficulty. In part, this state of affairs has come about because Sun has retained a measure of licensing and trademark control around what could legitimately be called “Java.”
Most famously, Sun took Microsoft to court over Microsoft’s release of an allegedly incompatible version of Java for Windows, claiming that Microsoft had violated the terms of its licence agreement. The hard-fought war was eventually settled out of court with Microsoft making a US$2 billion payment to Sun in 2004. Microsoft agreed to stop distributing its divergent version of Java, largely abandoned Java development and instead went on to release J++, its own Java-like language.
Then why is Sun going ahead with this move now? Once the universal darling of developers, Java, as it has matured and become more complex as well as capable, has also attracted increasing competition in the enterprise from Microsoft’s .Net framework, as well as from lightweight languages, such as Adobe’s Flash for smaller browser-based applications. There is some perception that Java’s momentum has stalled, at least in part, and it is likely that Sun hopes releasing Java under open-source will result in a resurgence of enthusiasm among developers and third-party vendors. Sun has been struggling for years with trying to make money from Java, arguably one of its crown jewels, but one which has not, to date, brought in much hard cash. It is unclear how this new move will improve that situation in the short term, but one thing is clear — if .Net beats out Java for developer mind share, Sun loses.
So, why should I care? If you’re a Java developer, this announcement is likely good news, since it should mean significantly more freedom to develop and distribute your work, and a faster-growing, more robust ecosystem for Java technology development. From the enterprise perspective, if Sun can avoid fragmentation (and that is a big if), open-source Java holds the promise of a wider range of Java tools, products and optimised virtual machines. But, as always, the devil is in the details, and Sun has not yet addressed exactly how and when Java will reach open-source nirvana.
There are a variety of licences covered under the term “open-source,” and Sun also has the stick of the “Java” trademark to wield. So, the bottom line is that there’s no open-source Java yet, but having made such a public announcement, it would be difficult for Sun to go back on its word. Even the perception of significant delays in the move to open-source would surely alienate precisely those portions of the developer world that Sun desperately wants to court.
Can Sun set Java free? We’ll see.