The EC, Interoperability, and GPL Java

Microsoft certainly seems to be putting a lot of effort into interoperability with other platforms. Granted, this may be somewhat akin to prisoners finding religion while on death row.

Microsoft certainly seems to be putting a lot of effort into interoperability with other platforms. Granted, this may be somewhat akin to prisoners finding religion while on death row. The beating the EU has given Microsoft over documentation may be a root cause (with the EU threatening even more got to love a system where you only find out if you did it right after you have submitted the documentation, and the people who decide are your biggest competitors and an organization that gets a lot of money if they decide in the negative), but the reasons Microsoft has found religion don't change the outcome.

Microsoft did sign a deal with Novell that will, among other things, bless that company's open source implementation of .NET (Mono, which just moved closer to compatibility with .NET 2.0). Microsoft is a founding member of the Interop Vendor Alliance, a move that was even welcomed by RedHat's CTO Brian Stevens, even as he would have preferred a more strident commitment to open standards (hint to Mr. Stevens: open standards don't encompass everything computers can or should do, and of necessity lag the cutting edge by several years; consider the Vendor Interop Alliance a feeder into the standards process).

Microsoft has to commit to interoperability to satisfy antitrust restrictions. On the other hand, I think Microsoft will discover that there is a lot of upside to interoperability for the company, and that being open to support of Microsoft technology on other platforms will generate Microsoft a lot of money. It also might help to outline the direction Microsoft will take in response to the new GPL license for Java.

I noted in a previous blog post Dana Gardner's poll wherein large numbers of people showed an interest in using Visual Studio to write applications that can target both Windows and Linux. Further, Microsoft has at least a cross-platform story in .NET, both through Mono and the fact that Microsoft already has .NET on a large number of devices.

Of course, they aren't in as many places as Java, and Java does now have the free software community's software development license of choice applied to it. Microsoft's trump card, however, is that .NET is much better technology than Java.

It's not just a little better. It's a LOT better, and I say that as someone who has programmed professionally in both environments for many years. Last I checked, developers are developers because they love technology, and the only thing that might trump better technology in the minds of developers are practical considerations (e.g. the need to run on more than just Windows) and, perhaps, ideological dislike of proprietary technology.

As to the latter case, most people aren't as extreme as Richard Stallman, a fact made clear through the ongoing battles over the wording of the GPLv3 (which isn't much of a battle, because if Stallman doesn't agree, he won't write it the way the moderates want him to). Most people don't care who makes good ideas, just so long as they are made, and they can use them (thus explaining many developers' understandable dislike of software patents - myself included).

That feeds into the second issue: the need to target more platforms than Windows. Novell offers Microsoft a path to support for this through Mono, while leaving them free to go nuts on Windows with technology, like .NET 3.0, that rethinks from the ground up things like user interface development and support for distributed applications.

Microsoft can present Windows as the fountainhead out of which new technologies sprout first, creating a "Tantalus tempted by grapes" approach to Windows promotion that says "if you want to play with these toys now (versus wait till they appear on other platforms), you need to play with them on Windows." For other platforms, however, they get things like .NET 2.0, which is better technology than the alternative (Java), anyway, and the implementation that matters to most people on such platforms (Mono) is covered by open source licenses (GPL for the C# compiler, LGPL v2.0 for the runtime libraries, and MIT X11 for the class libraries).

So, in answer to the question "how will Microsoft respond to a Java covered by a GPL license," my response would be "exactly as they have been doing." Microsoft has laid the groundwork for a cross-platform strategy that will feed Microsoft technology beyond the confines of Windows. We can debate the reasons why Microsoft did it, but I don't think that there can be much debate that it is happening.