Mono and C# so whats the big deal?
There has been a controversy brewing for quite some time in the Open Source world. I’ve sort of stayed out of it because I didn’t fully understand exactly what was happening, and I wasn’t sure that I cared. Still there is good reasons if you are a programmer looking to do anything in the non-MS world with C# to at least be aware of this. I currently don’t have any C# training, but I am scheduled to take a class on it in the Spring. Finally I found an explanation that didn’t resort to needless flame wars. I think it is fair and balanced. Please click through, but I’ll post a few highlights. So you know mono is an open source project that ports .net framework to Linux and Mac. So this is where the controversy lies. It is porting over a Microsoft technology, and MS does not have a good track record with Linux or open source. Also, by way of background, there are a few very notable programs that are written with mono and are being considered as default programs in Linux distributions (tomboy, banshee, fspot, and gome-do).
Mono, the free software implementation of .NET (C#), has been the subject of bitter debate for eight years. Yesterday, that debate ended — or at least shifted to another level — with Microsoft’s announcement that it was extending its Community Promise to include the patents that left Mono possibly encumbered.
The greatest fear has been that Mono-based programs like GNOME’s Tomboy or F-Spot could be the source of a patent violation case by Microsoft against some or all of the community.
In 2001, Microsoft released a letter to ECMA in which it promised that use of the patents involved would be available on request on a “royalty free and otherwise RAND ‘Reasonable and Non-Discriminatory’ basis.”
However, as Miguel de Izaca, the founder of Mono and a Novell vice president, points out, “The problem with ‘RAND’ is that it doesn’t say what ‘reasonable’ means. It has to be reasonable, but it doesn’t have to be free. Microsoft stated publicly and on the ECMA committee that nobody had to pay, but they never actually went and published the license.”
And there is the problem. While C# looks like a great language with awesome capabilities the fact that MS holds patents and is a commercial entity leaves the door wide open to forcing Linux users to pay up.
As described on his blog, de Izaca plans to divided Mono source code into two repositories. One will include the ECMA-covered libraries, and the other Mono’s implementation of ASP.NET, ADO.NET, and Winforms. By making this division, de Icaza presumably hopes to make clear to developers at a glance what code they are working with.
I’m excited to learn C# and really have every intention to use it, but this does give me pause especially if I were starting a large project that needed mono (i.e for any platform other than Windows).