As Java becomes a growing force in computing and as developers start building Web applications, Sun and Microsoft are increasingly at odds over how best to move the technology forward. At stake, ostensibly, is control over the standards that will shape application development and Internet-related technologies for years to come.
Sun asserts that it is taking the high road to compatibility by trying to maintain the "purity" of Java and making sure Java isn't splintered into several incompatible "flavors."
Microsoft maintains it is attempting to embrace Java as it becomes more popular while continuing to protect its Windows franchise against its most serious challenge ever.
Sun has promulgated the mantra, "write once, run anywhere" to highlight Java's ability to run unchanged on any platform--from a Macintosh, a Unix workstation, or a PC running Windows 95, provided a compatible Java Virtual Machine is present to host Java applications.
Microsoft licensed Java from Sun in 1995 and has since built its own runtime environment--the Microsoft Virtual Machine--for use in its Windows operating systems and its Internet Explorer 4.0 browser.
Sun says not only that the Microsoft Virtual Machine is incompatible with Sun's reference implementation of Java, but also that it causes developers to build Java programs that only operate on Microsoft's Windows, defeating Sun's "write once, run anywhere" goal and violating the letter of Sun's Java licensing agreement.
Last December, Sun joined with more than 70 vendors, including IBM, Netscape Communications, and Novell, to launch a "100 percent pure Java" campaign, intended to stamp out what they saw as Microsoft's attempt to hijack Java and turn it into a Windows-only technology.
In turn, Microsoft joined with Intel, Digital Equipment, and Compaq Computer earlier this month to call on Sun to turn Java over to a standards body, thereby taking much of the intervendor politics out of Java compatibility testing and licensing.
"Microsoft's strategy is that Java stays just a language," said Scott Winkler, an analyst with the Gartner Group. "They do see it as a threat to their Windows franchise, so it's in their interest for Java not to become something big in other aspects."
Sun has submitted a proposal to the International Standard Organization to make Java an international standard. But the standards body rejected the proposal after members expressed concerns over Sun's plan to retain control of Java's trademark rights.
The battle between the two companies also extends to basic component building blocks used by developers to assemble applications. Sun, with Netscape, is pushing Java class libraries called JFCs (Java Foundation Classes). Microsoft has said it will not ship JFCs but instead will supply developers with its own class libraries called AFCs (Active Foundation Classes).
Sun CEO Scott McNealy has long been an outspoken opponent of Microsoft. The debate over Java is reminiscent of McNealy's claims, made several years ago, that Microsoft should publish its Windows APIs (application programming interfaces) to lessen the possibility that Microsoft's own application developers would have an upper hand over competitors.
Like that battle, the latest wrinkle in the Java skirmish isn't expected to impact software developers, at least in the near term. "For a developer wanting to write Java code...this amounts to much ado about nothing," said Ted Schadler, an analyst with Forrester Research.
Editor Jai Singh contributed to this report.