May 22, 2006—Among the biggest news stories at this week's JavaOne conference was Sun Microsystems' long-awaited announcement that it will be releasing the industry-standard Java programming language under an open source license. 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-in 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 license, such as the GNU General Public License.
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 license programs, 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 be 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 license agreement. The hard-fought war was eventually settled out of court with Microsoft making a 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 gotten more complex as well as capable, has also had increasing competition in the enterprise from Microsoft's .Net framework and 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 optimized 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 licenses 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, if not impossible, for Sun to go back on its word now. Any such move, or 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.
Learn more about this topic
This story, "Why open source Java?" was originally published by Computerworld.