If there is one technology in the Linux world that ruffles feathers whenever it's mentioned, it's Mono, the open source .Net clone. Since .Net comes out of Microsoft, and has some patents encircling it, it is said to be a legal nightmare. Supposedly, you can obtain a "royalty-free, reasonable and non-discriminatory" license from Microsoft regarding the patents surrounding Mono. iTWire decided to look at just how easy (or hard) it is to get such a license. Turns out it's kind of hard.

Wait, are the CLI and C# patent-encumbered, or not?

First, I need to confess that Mono isn't exactly within my usual area of interest, and as such, this story has been lingering in our submission queue for a while. The way I always understood the patent situation on Mono is that only certain optional components of Mono might be covered by Microsoft patents. These optional components are things like Windows.Forms, and relate to Mono's Windows compatibility stack - things not needed for Mono on Linux, things not part of GNOME, and things not installed by any Linux distribution. These parts are not standardised by Ecma.

The iTWire article makes no mention of this important detail, but Wikipedia does mention it. The iTWire article makes it seem as if the .Net specification itself is patent encumbered - which seems weird to me, as how would a patent-encumbered specification make it into Ecma? Ecma clearly says in its mission statement that its goal is to "to publish [Ecma] Standards and Technical Reports in electronic and printed form; the publications can be freely copied by all interested parties without restrictions." Well, Wikipedia also states that patents are not a problem for Ecma standardisation, as long as they are made available under - you guessed it - "reasonable and non-discriminatory terms".

The way I understand it now is that the Common Language Infrastructure and the C# programming language are ECMA standards - they may or may not be patent-encumbered (this is unclear). If they are patent encumbered, then they must be made available under "reasonable and non-discriminatory terms". Mono is an open source implementation of the CLI and a C# compiler. On top of that, Mono implements several technologies around .Net which are not Ecma standards, and these technologies are certainly covered by patents.

Knowing this, the iTWire article leaves a few things to be desired, as it makes no mention of all the above. Still, it's an interesting article because it might actually indicate that yes, the CLI and C# are covered by patents, due to a deafening silence on Microsoft's end to provide any information on this. Let me explain, by summarising the iTWire article.

The article assumes that the CLI and C# language are covered by patents. As such, the author tries to find the mandatory "reasonable and non-discriminatory" licenses for these patents. It first takes advice from Mono buff Miguel De Icaza about where to get these: Ecma. This is where I got confused, as my short investigation into Ecma made it quite clear that not Ecma is the one providing these licenses, but the actual patent owners, which in this case would be Microsoft. Ecma, therefore, redirected the author to someone at Microsoft.

The author contacts this person at Microsoft, asking where to get the illusive license. This request for information was made more than a month ago, but there still hasn't been an answer. This can mean two things: first, there are no patents covering the CLI and C#, and as such, there is no license to be given. However, it can also mean that yes, there are patents covering the CLI and C#, but Microsoft doesn't have such license ready to be given out. To me, the second option seems more logical, since if there are no patents - how hard would it be to explain that to the author of the iTWire article?

Food for thought, that's for sure.

Moonlight vs. Silverlight

Another area of concern that the iTWire author contacted the same Microsoft person over was Moonlight, the open source implementation of Microsoft's Silverlight. Novell and Microsoft seem to disagree over the terms under which one may actually use Moonlight. Novell says that"Moonlight will be available for Linux users on any distribution". Microsoft, on the other hand, states something completely different: they state that only Novell and intermediate recipients may ship Moonlight.

As you can see, there's a serious mismatch here, one that definitely needs to be brought to the forefront so that we may be able to resolve it. Since Silverlight is actually making inroads into the internet (the past Olympics were streamed using Silverlight, for instance), it is important that everyone can enjoy it when necessary. We have no answer from Microsoft on this issue either.

Should we actually care?

Well, I sure don't. It's not like Microsoft will come hunting me down and drag me in front of court if I use Moonlight or Mono (if Apple doesn't get me first). Still, there are enough of you out there who would have a lot of problems with this, and you deserve to know the full answers regarding these issues.