The Battle Over Java
Is the cold war between Sun and IBM over Java heating up?
I often rant about the epic battle that is brewing between Java and .NET. But there is another battle, not necessarily less significant, that has long been brewing within the Java camp. It is a battle between Sun and IBM over the control of Java. Although the two have long been fierce competitors in the area of systems, the struggle over Java has so far been largely a cold war, veiled under a veneer of cooperation.
But recent moves have brought the battle more into the open. Since Sun decided to make Java an “open standard” and turn its stewardship over to the JCP, Sun gave up a certain level of control over Java. But it still retains sole rights to the name and gets to decide what is called Java and what is not (this is the same leverage that Linus Torvalds holds over Linux). Earlier this year, Sun made the decision to become more aggressive about exerting that right by renaming its core product stacks the "Java Enterprise System" and the "Java Desktop System", even for components that have little or nothing to do with Java. This move angered a number of Java partners, but Sun undoubtedly hopes that it will more strongly tie the identity of Java to Sun.
The other open battle is in the area of Java tools. IBM and Sun each push toolsets that are built on open source foundations -- Eclipse for IBM and NetBeans for Sun. There was talk about Sun joining the Eclipse consortium, but now Sun has made it clear that it will rather support NetBeans to the bitter end, and is instead arguing for a standard to improve interoperability between tools from different vendors, a proposal that IBM has rebuffed. Aligned with each of these tools is a separate GUI toolkit -- Swing for Sun/NetBeans, SWT for IBM/Eclipse. The passions surrounding this schism run deep. At a recent conference, I witnessed Swing developers vociferously laying into IBM execs about IBM's insistence on building Eclipse with SWT, even though Eclipse can build Swing applications.
The battle between Sun and IBM certainly predates Java, and even today it ranges beyond Java. Web services and support for Linux are two other areas in which the two systems companies have been engaged in open and behind-the-scenes tussling.
For us who develop in Java, the critical issue is what bearing this battle will have on the future of Java and whether it will weaken Java in the face of an onslaught from Microsoft .NET. Java is a grand experiment. Is it possible that many independent vendors, who normally compete with one another, can come together and work for the betterment of something as complex and with as many facets as Java? The answer to that may be key to whether the larger grand experiment of open standards for software will prevail.