Microsoft and Novell recently signed a cooperative technology deal that will make it easier for Novell's Suse Linux distribution and Microsoft Windows to work together. In unrelated news, Palestinians and Israelis agreed to end their differences and create a new country called "Palestisrael."
Yes, the news that Microsoft would agree to promote long-time competitor Novell's products was surprising. The move does make a lot of sense, however. Linux is an operating system that will exist alongside Windows for the forseeable future. Making those systems work well together is something that customers want and need. Microsoft puts itself at a competitive disadvantage if it hinders such interoperability.
Diving into the particulars, this is good news for Mono, the open source version of the .NET runtime acquired by Novell as part of its purchase of Ximian. If developers were worried before that Mono would run afoul of Microsoft's patent lawyers, those fears should be dispelled. Mono, as a Novell product, is covered by this agreement.
How far will this joint agreement go? Would it extend to helping to port aspects of .NET 3.0 to the Mono platform?
It's an intriguing possibility. Some may believe Microsoft would sooner sign the copyright to Windows over to Richard Stallman. .NET 3.0 is a Windows competitive advantage, the argument goes, and Microsoft will do everything in its power to keep it that way.
Peraps, but Mono wasn't excluded from the recent agreement with Novell. Furthermore, as Joe Wilcox pointed out in a recent blog post, Linux is more a migration path from Unix than from Windows.
I don't see a lot of Linux risk here for Microsoft. JupiterResearch surveys show Linux largely as a migration path from Unix. Very few businesses swap out Windows for Linux, and the number of businesses running Windows Server is increasing.
.NET 3.0 is pretty appealing technology. If the technical professionals migrating to Linux are mostly Unix types, getting them on-board with .NET is certainly a great way to get their feet wet in the "Windows programming universe." .NET 3.0 IS very appealing technology, irrespective of your preference in operating systems.
This is the flip side of the argument I made when describing Mono as a bridge to alternative platforms. While Microsoft gets a chance to have more influence in cross-platform programming interfaces, the fact that other platforms support Windows interfaces mean it is easier for the developer majority to target those other platforms - particularly with a managed code environment like .NET.
Since both sides potentially could benefit from an extension of .NET 3.0 to Linux, the question becomes who is more confident in the respective merits of their platform. Which way would a .NET bridge be more likely to flow? In the aggregate, would the people who prefer Unix / Linux today remain Unix / Linux users even if they find .NET 3.0 to be the coolest technology since sliced bread?
My opinion is that a Linux user is as likely to become a Windows user as a Windows user is to become a Linux user, at least in the medium term. In such an environment, enabling them to be more productive as developers would benefit both parties without creating an undue threat to either.