Mono and .NET

While I don’t actively target the Linux platform, I have alwaysbeen comforted by the Mono Project. Thatcross-platform-.NET project gives me a feeling that my .NET workcould at least partially be ported to other targets if a needarose, removing the vendor lock-in to Windows when using the .NETplatform (even though I have never had the need to use it, I pursuethe same target when developing in C++). Every couple of months Iinstall the latest incarnation of Mono on a Linux virtual machine,copy over an assembly (ensuring that it uses only features thatexist in Mono), and run it, and it really is a little bit of magicwhen it runs successfully (and quickly I should say – theperformance on Mono is spectacular).

The thing that I don’t get, though, is the bubbling animosityMicrosoft displays towards the Mono project, and the legal uncertaintysome within Microsoft continually try to create around Mono. Don’tyou realize, Microsoft, that Mono is one of your greatest allies?That .NET has been sold within countless shops based upon the argumentthat it was “cross platform”, courtesy of Mono, and that theworries of the executive that Linux needs to be considered are alltaken care of, again courtesy of Mono Microsoft really should besending Manuel a big, fat commission check.

I can appreciate that Microsoft doesn’t want anyone usurping theircreation, but really – in virtually every rational situation Monois a winner forMicrosoft.

  • It helps sell .NET as “cross-platform”
  • It will always be one step behind, ensuring that Microsoft hasthe upper hand. Sure, it’ll implement some technologies (such asvector graphics) more quickly than the Microsoft’s .NET framework,but to most developers that is non-standard, and instead it’ll”really” come out when Microsoft releases it (and Mono will thenhave to play catch up)
  • It’s training loads of Microsoft-hating OSS lovers in the waysof .NET, drawing them away from other superb environs like Python.A very large percentage of the people targeting Mono would havetargeted Python or J2EE or C++ otherwise.
  • It helps Microsoft compete on their “home turf”

Microsoft really needs to put down the gauntlet, embrace Mono, andremove the legal uncertainty around it.