As a preamble, today has been a very interesting day for news/innovations/learning of new stuff. I’m looking forward to writing about all that later. Also, my colleagues and I had a very interesting conversation about leadership and political issues after work. All in all, a stimulating day.
Mono is Ximian’s open source implementation of .NET. I (personally) am not a big fan of Mono because of what it represents and what I fear it may become. Mono is slated to become the open source alternative to .NET. But, because it is this, it will _always_ be behind Microsoft’s spec. I am positive that although Microsoft isn’t laying the smackdown right now, doesn’t mean it:
- Won’t do so in the future
- Will keep changing the spec faster than Mono can implement it
We have to keep in mind that Ximian is dealing with Microsoft – a company that’s not exactly cuddly with Linux and open source in general.
The other point I call into question is Ximian’s insistence that it will become an ‘alternative’ to the official Microsoft VM. I _feel_ this is a specious argument. Although it’ll ensure that Linux isn’t completely shut out from the .NET development market, I doubt it will make much of a dent. As a major corporation, once you make a decision to develop .NET apps, you are unlikely to base your business on an open source VM as opposed to relying on a VM supplied by the originator of .NET itself. I also think Mono will become Microsoft’s tool in convincing companies to create .NET apps. I can see the sales pitch already:
“See, you aren’t even locked into single sourcing. If you have ‘legacy’ Linux systems around, there’s even an open source implementation of .NET that you can write your applications on.”
Of course, once that app is written, it won’t take much grease COUGHcash incentivesCOUGH to convince the company to move their app to Windows and a ‘supported’ .NET VM.
I wonder how much we (as open source advocates) are willing to let a technology released by a company that is rabidly hostile towards Linux/open source ‘infiltrate’ our environment. Perhaps Ximian is unwittingly acting as Microsoft’s trojan horse. After all, make no mistakes, the open source community isn’t dictating the terms here. A very rich, powerful and hostile company with an army of developers is. If people start to program to Mono they are linking themselves to this.
I think in the long run, Ximian will look to integrate Mono into its tools (and as resistance decreases) into the GNOME project itself. Why? Truthfully – development speed. Developing gtk apps in C is (IMO) painful. This is one area in which KDE/QT grinds GNOME into the dust. It’s architecture is heavily object oriented and written in C++. Not only that, its development tools are much more complete and featureful. The only reason they aren’t wiping the floor with GTK+ commercially is the license issue. If you develop with QT you either write GPL apps or pay a license fee per developer.
Ximian knows this and they’re concentrating on Mono on erasing that gap. I predict that they’ll add a few developers and start working on Mono development tools within the next year. Soon enough we might start to see the first Mono programs in the GNOME desktop itself.