Sun Microsystems Begins Taking Java Open Source
May 22, 2006 Timothy Prickett Morgan
“I get a lot of flack about being a software guy and for giving away a lot of free stuff,” explained Jonathan Schwartz, the new chief executive officer of Sun Microsystems at the JavaOne 2006 show in San Francisco last week in his keynote address. Having taken its Solaris Unix, Java Enterprise System middleware, and T1 Sparc processor open source, there is one significant piece of software technology that has remained closed: Java. That, after long last, is finally changing. During his keynote at JavaOne, Schwartz, who ran Sun’s software business and was its chief Java evangelist before he was tapped to be the company’s president in April 2004, invited his new software chief, Rich Greene, to the stage. After mocking his shoes and blue jeans, Schwartz asked Green the number one question that has been on the minds of the Java community–and its adversaries–since Sun began opening up its code a year and a half ago: “Are you going to open source Java?” Green has only been back at Sun for a few weeks, and while he hedged a little bit, it is clear that Green was brought back to Sun in large part to handle this process as well as to run Sun’s software businesses. “Well, I am going to play the new-guy card here,” he said in his answer. “There are two battling forces here. There is the desire to completely open this up. With all of the changes in the licenses, it is virtually all there. But the flip side is that compatibility really matters. One of the great virtues of Java is that we have been able to keep it together. It is something that we can all rely on. The challenge going forward is how to solve for both of these things. I signed up big time to do this, and I think at this point it is not a question of whether, but a question of how.” Now, why was that so hard? Well, Sun is right that keeping Java compatible has been important, and that there had to be a strong, central command to make sure that happened. That command is the Java Community Process, which has 1,052 members but is top-heavy with representatives from Sun, IBM, Oracle, and other big software companies with a vested interest in controlling the features and future of Java. While Schwartz extolled the virtues of the JCP and said it was the duty of Java developers to join up and claim a stake in Java’s future. “This is not about corporations defining a technology platform, but of users, and citizens, and developers and defining that platform,” he said. Sun is big on building communities, and no one at Sun is more hip to this idea than Schwartz. But either he doesn’t understand the real power of open source communities or he just doesn’t want to talk about it. The reason why people and companies like open source is not just because they want to have a say in the development of technologies. It is because open source gives them the freedom to go off on their own and pursue a different avenue of development if they do not agree with the ruling powers in a community. The beauty of Linux is that if you don’t like the way the kernel is being developed, you can grab the code and make a better operating system. This very rarely happens, of course, but Linux exists because Linus Torvalds was unhappy with Unix distros (and their cost) on X86 iron. And by opening up Java, Sun is indeed risking a fork in the Java stack. In fact, I can almost guarantee it unless Java becomes a much more inclusionary platform. I also think Sun is ready to open source Java because it can see the writing on the wall. The explosion in the use of PHP, XML, and Ajax, combined with the substantial competitive threat of Microsoft‘s .NET alternative to Java and its virtual machine architecture, have finally put enough pressure on Sun’s wrists that it has to let go of Java. If Sun wants to move from 4.5 million developers and 1 billion Java-powered devices to 10 million developers and billions of Java devices, it is going to have to somehow attract developers who currently use other technologies. There are only so many developers in the world, after all. Sun has no doubt been encouraged in its open sourcing of Java by the success it has had with the Solaris operating system, which was freely distributed in January 2005, went open source in late 2005, and now has nearly 5 million registered downloads. This is about an order of magnitude more downloads of Solaris than Sun expected. Java has been freely available for so long that it is unlikely to see such a big bump, and it was the freeness of Solaris that made downloads fly off the Sun distro servers, not the open sourceness of it. But taking Solaris, Java Enterprise System, and now Java will give Sun community cred–something Microsoft, BEA Systems, IBM, and Oracle cannot claim with their development tool and middleware stacks. For the past two years, I have been arguing that Sun and Microsoft should not only bury the legal hatchets, but create a unified virtual machine architecture, suitable for enterprise-class applications and running on any server platform, that supports both Java and C# applications. Java and C# are both virtualized versions of C, and the Java Virtual Machine and the Common Language Runtime are not all that different. (I know, Sun and Microsoft will probably give me a hundred reasons why it can’t work, but one Java goes open source, someone is going to take JVM code and the open source Project Mono code for running .NET applications and figure it out.) Exactly what Sun will do to take Java open source remains unclear, but it is taking one immediate step to make Java more easily integrated into operating systems governed by open source licenses, which sometimes have tricky rules about co-mingling open and closed source code. At the JavaOne event last week, Sun said that it would distribute the Java Standard Edition 5 runtime under a new license called the Distro License for Java (DLJ), which is compatible with the GNU General Public License v2 (GPL) that governs Linux as well as the Common Development and Distribution License (CDDL) that governs the open source implementation of the Solaris Unix platform, OpenSolaris. Sun has not provided the source code to Java, mind you; this is being distributed as free code, not source code. But the licensing means that Linux distros can package Java runtime environments and development tools into their own Linuxes. The Blackdown Project, which has already created a JDK packager for the Debian variant of Linux, has contributed that packager to the Java development community to help speed up the process. The DLJ license and the JDK-Distros project at the Java site will allow other people to specify how Java can be packed for open source operating systems. At the JavaOne event, Sun also announced the Java Enterprise Edition 5 platform, the specification of which was unanimously approved by the JCP two weeks ago. BEA, IBM, JBoss, Oracle, and SAP the first licensees to endorse the new Java EE 5 platform. It is unclear exactly when IBM will roll the new Java platform into its WebSphere middleware, but IBM will probably be one of the first middleware makers to support it. Java EE 5 includes Enterprise Java Beans 3.0, which purports to simplify the Java programming model by supporting what are called Plain Old Java Objects, or POJOs, which can be converted into Web services or made persistent using the Java Persistence API. The latter is a new persistence interface created jointly by Sun and Oracle, which they say has a cleaner approach to mapping Java objects to relational databases. The Java Persistence API leverages work done in the Hibernate, TopLink, and Java Data Objects projects. Java EE 5 also has updated Web services protocols, including JAX-WS 2.0 and JAXB 2.0, which implement the W3C and WS-I standards. The new platform also includes JavaServer Faces 1.2, which has support for the emerging Ajax front-end scripting language that merges JavaScript and XML to create an alternative to coding screens in Java. Sun released its own implementation of the Java EE 5 software development kit, which includes the Java System Application Server 9.0 and preview versions of the SOA Starter Kit and NetBeans Enterprise Developer Pack 5.5; the latter is Sun’s integrated development environment for Java, which is an alternative to Eclipse. RELATED STORIES Java Turns Ten, Still At Odds with .NET, Aloof About PHP |