Let me show you what I consider one of the most destructive and dishonest defenses to come out the mono camp: On Software Patents.
Mono apologists love this one! Basically it boils down to “software patents suck because your code might infringe anyone’s patent, so every project is just as risky as mono, so don’t sweat us over patents.” Now, like all really good propaganda, this has a some core of truth: it is indeed true that software patents suck.
I despise it because not only is it dishonest, but because how easily it is tossed around by mono apologists.
I guess it’s because the argument starts of with some truth – explaining how idiotic the software patent system is in the United States – that people just disengage their brain, nod along, and agree with the entire argument.
Of all software projects, not all are equally likely to violate patents.
Both of these statements are true:
- Project A, a large open source networking project may infringe on one or more Microsoft patents
- Project B, a small open source ping implementation may infringe on one or more Microsoft patents
Microsoft has an Open Specification Promise on a wide swath of technologies that they promise not to sue anyone over, so long as you don’t sue them first. Implementing parts of .NET that are not part of the standard may infringe on Microsoft patents, because Microsoft was careful to limit how much of .NET they gave to the standards body. Internal emails from Microsoft show a careful deliberation over how much of .NET to standardize, and how much to make sure was protect by patents, specifically mentioning Linux and preventing the commoditization of the .NET platform.
This is true in a more general sense as well. Any software project covering a common technology like ping or telnet is much less likely to run into patent issues for many reasons: length of time technology has existed, the number of similar projects having worked in the same area without patent issues, etc.
Of all possible patent holders, not all present the same risk in likelihood of relevant patents
Both of these statements are true:
- Mono may infringe on one or more Microsoft patents
- Mono may infringe on one or more Dunk the Clown, Inc. patents
It is more likely that mono infringes on Microsoft patents, considering Dunk the Clown, Inc. is not the that has over 150 patents referencing the .NET framework. It is unlikely that any of Dunk the Clown, Inc. patents apply to mono.
Of those patent holders that do hold relevant patents, not all present the same risk of enforcement
Both of these statements are true:
- Mono may infringe on one or more Microsoft patents
- Mono may infringe on one or more Red Hat patents
It is more likely that Microsoft will attempt to use its patents against the mono project, than it is that RedHat will. Sure, Red Hat might go crazy insane and declare some sort of war on mono. Also, I might get invited over to Scarlet Johansson’s place for drinks and a night of passionate lovemaking tonight. /brb
Of those patents that are enforced, not all are as likely to be valid
Both of the statements are true:
- Mono may infringe some random “one-click-shopping” patent, and it turns out that patent is valid in a court of law.
- Mono may infringe some Microsoft patent, and it turns out that patent is valid in a court of law.
There are some things you can do to defend yourself if someone goes after you for patent violation. You can show prior art, for example. However, .NET is unquestionably a Microsoft technology. It is not unlikely that Microsoft holds valid patents covering .NET technology. While Microsoft certainly holds many patents that are invalid for a host of reasons, it is foolish to think that they don’t have some valid patents, especially on a technology they created!
Of those patents enforced and upheld, not all are as easy to workaround
Both of these statements are true:
- Mono could be found infringing a minor Microsoft patent, easily worked around.
- Mono could be found infringing a major Microsoft patent, required substantial changes.
I don’t know if you could say which of the two is more likely, but it is true that we know Microsoft carefully considered what to keep out of the standard, and discussed preventing the commoditization of .NET. It is not unreasonable to assume that patents underlying important concepts that would require substantial changes protect those areas that Microsoft considers crucial to keep proprietary.
Summary
I would love to think this would put this argument to rest, but I know it won’t. The truth of this argument is that although all projects do face some risks, all projects do not face the same risks. Anyway, at least next time Team Mono whips this one out you’ll be ready.

#1 by Yaro on July 17th, 2009
The one that gets me with Monopologists is the “.NET is an ECMA standard” nonsense.
Standardization is NOT indemnification. I see nothing concrete proving that Microsoft can’t go ater people who use Mono just because it’s covered in ECMA.
Last I checked, neither ECMA nor ISO require a standard to be patent-free, for example, and they both have “realms” for enforceable standards involving patents.
I ask the Monopologists to explain how .NET is any safer just because it is part of ECMA when ECMA has no power or authority to STOP Microsoft from patent trolling. How does .NET being an ECMA standard magically make .NET implementations like Mono safe?
The answer is simple: They just don’t. Standards organizations simply outline how implementations should be done for something to be called “standard.” Standards organizations don’t exist to provide safety from patents, trademarks, and copyrights. There is NOTHING. NOT ONE THING. That can stop Microsoft from suing the pants off of a project using Mono or even Mono itself. I thing the only things stopping Microsoft from targetting Mono projects outright are:
1. Their agreement (Boo! Hiss!) with Novell indemnifying Mono ONLY AS FAR AS NOVELL SOFTWARE USES IT. Microsoft can’t target Mono directly according to its agreement. And it can’t target GNOME or anything else actually under the Novell umbrella. But that’s where the indemnification stops, and this is something Monopologists consistently forget or deliberately ignore: Mono is still unsafe! Why? Because the second you make a project using Mono, and it’s NOT as someone who works for Novell, you’re actually using Mono illegally. As I said, Monopologists like to overlook this, and I think sometimes deliberately.
2. No significant non-Novell projects use Novell, likely because they are aware of fact 1. I say BIG PROJECTS, not ambitious tiny crap that won’t really take off as “standard a la Rhythmbox and Amarok” like Banshee.
3. Microsoft swatting at a non-Novell Mono project assures that they can ONLY take down one project, as the other Mono projects would quickly become NON-Mono projects and keep on developing. And because of fact 2. Microsoft has no projects worth scuttling the rest of the Mono deathtrap for.
4. Most chilling: Microsoft is aware of facts 1, 2, and 3. What they are waiting for is some clueless highly-upstream developer to suddenly include Mono in a non-Novell project that almost every Linux user takes advantage of, like, for example, Xorg or a very commonly used video driver.
This is why I don’t use anything with Mono on it, Novell-ran or not. I don’t want Microsoftware on my Linux installation.