While I don't actively target the Linux platform, I have always
been comforted by the
Mono Project. That
cross-platform-.NET project gives me a feeling that my .NET work
could at least partially be ported to other targets if a need
arose, removing the vendor lock-in to Windows when using the .NET
platform (even though I have never had the need to use it, I pursue
the same target when developing in C++). Every couple of months I
install the latest incarnation of Mono on a Linux virtual machine,
copy over an assembly (ensuring that it uses only features that
exist in Mono), and run it, and it really is a little bit of magic
when it runs successfully (and quickly I should say - the
performance on Mono is spectacular).
The thing that I don't get, though, is the bubbling
animosity
Microsoft
displays towards the Mono project, and the legal uncertainty
some within Microsoft continually try to create around Mono. Don't
you realize, Microsoft, that Mono is one of your
greatest allies?
That .NET has been sold within
countless shops based upon the argument
that it was "cross platform", courtesy of Mono, and that the
worries of the executive that Linux needs to be considered are all
taken care of, again courtesy of Mono? Microsoft really should be
sending Manuel a big, fat commission check.
I can appreciate that Microsoft doesn't want anyone usurping their
creation, but really - in virtually every rational situation Mono
is a
winner for
Microsoft.
- It helps sell .NET as "cross-platform"
- It will always be one step behind, ensuring that Microsoft has
the upper hand. Sure, it'll implement some technologies (such as
vector 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 then
have to play catch up)
- It's training loads of Microsoft-hating OSS lovers in the ways
of .NET, drawing them away from other superb environs like Python.
A very large percentage of the people targeting Mono would have
targeted Python or J2EE or C++ otherwise.
- It helps Microsoft compete on their "home turf"
Microsoft really needs to put down the gauntlet, embrace Mono, and
remove the legal uncertainty around it.