There’s been a lot of controversy and argument over the use of Mono in the Linux world rightly or wrongly, and this long running issue recently reared it’s head again when Richard Stallman (founder of the FSF) chipped in. Now, the controversy may be over thanks to a surprising move from Microsoft themselves. It’s been talked about everywhere in the the technology press I know, but just in case you don’t know the situation, I’ll give you a quick outline. The Mono Project is an open source implementation of Microsoft’s popular .NET development framework. It enables developers to code in C# – a language developed by MS – and run their applications on a variety of platforms: Linux, Mac OS X and the iPhone amongst others. I was a professional ASP developer at the time .NET arrived on the scene, and it certainly held a lot of promise. I originally thought the idea was to enable cross-platform development in .NET by using the CLi in a similar way to the Java Virtual Machine. I even asked when there would be a CLi released for Linux and other platforms at an official Microsoft training course. My question was met with muffled laughter and it seemed the intention was not to open up .NET to other platforms. Miguel De Icaza, the creator of the Gnome desktop and well known Linux developer decided to try and address this problem with Mono. It enables .NET developers stuck on Windows to port their applications to new platforms and expand their horizons. This is all a good thing, nobody would argue against this, not even RMS himself. On the Linux desktop many popular applications have been developed with Mono such as Banshee, F-Spot, Tomboy and Gnome-Do. The problem for Mono has been a fear in the Linux community that Microsoft would wait until it had worked it’s way into the Linux desktop (and Gnome in particular) significantly, then pull their software patents out and go to town. Some people saw this as an attempt to attack Linux by stealth. This is probably exaggeration and I am no doubt that Miguel and the team would never intentionally hurt Linux at all, as some have intimated.
So, this rather long preamble brings me to the dramatic news ; late on Monday night (UK time that is) Microsoft released a statement confirming that they were putting C# and the .NET CLi under their Community Promise. This is effectively a promise not to sue anyone developing with those technologies over patents held by the company. C# and the CLi were already ECMA standards, but many people within the software industry don’t put much stock in ECMA from what I’ve heard. We’ll have to wait for a full legal analysis of what this statement means, but it appears to be legally binding and cannot be withdrawn by MS. It only covers the 2 technologies already listed as ECMA standards and not all of the .NET framework it should be noted. Certainly not all of Mono like the Winforms API and ASP.NET implementations. It seems that the Mono team approached Microsoft some months ago to ask for a legal clarification of the patent situation, and MS has delivered. There’s certainly no danger of me becoming a Windows fanboy, and I don’t believe we’ll see the folks inside Redmond towers walking around in GNU t-shirts or sporting Alan Cox beards, but you do have to give credit where it is due. They didn’t have to do this and I’m pleased they have.
For his part Miguel has announced that they will split Mono into 2 packages; one containing only the ECMA components covered by the patent promise, and another with the extra parts of .NET Mono includes. This should hopefully make it easier for developers worried about patents to pick only the parts guaranteed as safe. I think this is a great idea and it should appease most sceptics. The really good news is that Banshee, F-Spot and other popular Mono apps are covered by this patent promise. Queue the dancing elephants and the music! I hope this will mean an end to the “mono wars” as I like to call them. We can now move on to finding something else to lose sleep over in double quick time. You know what though? If this whole saga has taught us anything, maybe it should be that we can’t live our lives in fear. Yes it’s sensible to take reasonable measures to protect yourself and be cautious at times, but our overriding concern as a community should be to develop better Free Software, not become lawyers.
I’m pleased for Miguel and the Mono team at this news. We spent about an hour chatting to him on Linux Outlaws not so long ago and he’s a very likeable guy. I think he just wants to develop better software, something that we can all agree is a laudable goal. I’m also going to say something that you won’t hear often around here but it needs to be said. Thank you Microsoft, you did a good thing here and I for one appreciate it. It’s only a step in the right direction though, let’s keep it going. Right, I’m off to commence washing my mouth out with soap… I’ll never feel clean again 😀
Does this bring an end to Mono wars? Let me know what you think in the comments. Thanks for reading.
EDIT: I forgot to say, I want to see what the SFLC says about this document. People say it’s legally binding, I’d like too hear some confirmation.