It might be hard to remember, but Sun and Microsoft cooperated over Java for a brief period in the 1990s before the partnership devolved into years of ill will and acrimony. A year after a formal reconciliation, though, there are some signs that the rivals are warming to each others' technology.
Microsoft had licensed Sun Microsystems' Java software in 1996 and sold developer tools for the software. But as has been well documented in various lawsuits, that partnership fell apart after Microsoft added some Windows-specific features in an attempt to popularize its "polluted" version of Java.
Java, at least theoretically, lets the same program run on a wide variety of different computing systems. It does this through software called a virtual machine. Unsurprisingly, Microsoft didn't eagerly embrace a future in which people wrote programs for a Java environment rather than Windows.
The result was a years-long legal battle--including Sun's allegations that Microsoft violated antitrust law--and Microsoft's decision to create software called .Net that's similar to Java but incompatible.
The rivals tried to put that matter to rest with a settlement in 2004 that began showing some early fruits on Friday. The companies' cooperation has extended far enough that Microsoft will help promote Java at Sun's JavaOne conference, which begins June 27.
"Microsoft is a major sponsor of JavaOne at the end of next month. Who'da thunk?" Sun Chief Executive Scott McNealy said with a certain amount of incredulity during a news conference with Microsoft CEO Steve Ballmer.
And there's potential that Sun also could be more accommodating of C#, Microsoft's .Net analog to the Java language. Sun Chief Technology Officer Greg Papadopoulos said Sun is examining modified virtual machine software that can run other languages besides Java. The initial focus is on scripting languages, but other options include Fortran and C, and there's "no barrier" to a virtual machine that could run C#, he said. "The virtual machine is capable of executing more."
Dovetailing with this virtual machine expansion will be an effort to redefine Java terminology. In the past, it's been confusing to use a single name--Java--for both a programming language and for the environment that runs programs written in that language, he said. That could change, Papadopoulos said: "You will see a clearer distinction from us between Java the language and Java the platform."