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 move was greeted with excitement by Mono developers and distributors, but others are treating the news with caution and waiting for detailed legal opinions.
The debate over Mono has been complicated by accusations and irrelevancies on both sides. However, the main issue in the debate has always been the parts of the .NET Framework used by Mono that fall under ECMA standards covered by patents.
Neither parts of .NET not implemented in Mono, such as ADO.NET, ASP.NET and Windows.Forms, nor libraries developed by Mono specifically for GNU/Linux, have ever been affected by these or any other patents, according to Mono's Licensing FAQ. However, the affected parts have been more than enough for sections of the free software community to reject Mono, or at least to treat it cautiously.
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."
The result, de Icaza says, is that the promise "was considered a lie. To some people, it was a real issue, and I think that's justified. There was no letter, and I don't think anyone seriously approached Microsoft except Novell, because we're the only ones who have an implementation of .NET out there."
Now, in a single gesture, that uncertainty appears to be resolved. Microsoft's Community Promise is not recognized as a free license by either the Free Software Foundation or the Open Source Initiative, and its FAQ avoids answering whether the license is consistent with any free license.
However, the Community Promise itself is broadly permissive, excluding only those involved in bringing patent infringement cases against Microsoft. It requires no formal application, agreement, or even any reference to itself -- instead, users are automatically covered when they start to use a technology covered by the license. A potential loophole is that a partial implementation of the technologies is not covered, but that does not seem to be the case with Mono, if de Izaca is to be believed.
The initial impression is that the announcement has removed Mono from any immediate threat of patent violation, and that Mono-based applications can now be added to GNU/Linux distributions without any concerns.
Making the change
Coming after Richard Stallman's warning last week against Mono, and several months into an anti-Mono campaign in the community, the news might be seen as a direct response to pressure.
In fact, de Icaza states that discussion of the problem began "about six or nine months ago" during one of Novell's quarterly meetings with Microsoft. According to de Izaca, he approached Bob Mugalia, President, Server and Tools Business at Microsoft. When he asked him to clarify the situation as "a personal favor," Mugalia expressed surprise that no one had done so before.
"It was more a matter of a missing item on somebody's To Do list than anything else," de Izaca says. "I'm sure that someone dropped the ball. I mean, this stuff has been going on for ages."
Initially, de Izaca hoped that Microsoft would choose the Open Specification Promise, a license that gives broader protection and is written as more of a legal document than the Community Promise. However, he withdrew his objection rather than cause a longer delay while the relative merits of licenses were debated.
Even so, it took several months for Brian Goldfarb, Microsoft's Lead Product Manager of the Web Platform and Tools team to resolve the issue. "It actually took them a very long time, first to identify who's responsible for that and then to find the right legal people who needed to wade into this thing," de Izaca says. "I'm very thankful to Brian for going and doing this thing on top of everything else he has to do. He has his plate pretty full. But he went ahead."
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.
Lingering doubts and celebrations
Asked whether the announcement removes the uncertainty from Mono, de Izaca replies, "It definitely clears Mono from Microsoft." But even in his moment of triumph, de Izaca is cautious. "Remember that the patent system doesn't work [that simply]. Somebody else might have a claim."
In addition, de Izaca notes that the Community Promise currently extends only to the ECMA 4 standard. With the ECMA 5 standard currently being written, with its release scheduled for the end of the year, at least theoretically, Mono might find itself back in the same position as it was before the announcement.
However, de Izaca apparently thinks that the possibility is remote. "Microsoft doesn't get enough credit for what they do open source," he says. "We could write [Mono] or really have it as a viable system without all those pieces, like Dynamic Language RunTime.
By contrast, those who were cautious about Mono or opposed to it are more cautious. For instance, Peter Brown, Executive Director at the Free Software Foundation, remains skeptical that the uncertainties have been resolved overnight, and has adopted a wait-and-see attitude.
"How can we move on?" Brown asks rhetorically. "The easiest thing would be for Microsoft to make a clear statement about its intentions going forward. I don't want to classify what they're doing, because for all I know they have good intentions. Maybe they grind slowly; I can accept that. But do we have concerns about Microsoft? Of course we do. There's lot of reasons for that. So please, Microsoft, give us clarity."
More specifically, Richard Stallman, President and Founder of the Free Software Foundation, comments, "Even assuming Microsoft follows through on this announcement and covers ECMA 334 and 335 under the Community Promise, this will not be sufficient to protect us against the dangers . . . . That's because Mono implements, and Tomboy depends upon, a number of libraries which are 'standard' in the sense that they're under C#'s "System" namespace (indicating that they're part of the standard library) and provided in Microsoft's implementation, but somewhat pointedly excluded from the ECMA specifications.
"Also, it seems that the Community Promise shares some of the weaknesses of their other patent promises. So they have taken a step closer to promising not to sue over C#, but they still have not got there."
However, no expert legal opinion has been given about the announcement yet. I did contact the Software Freedom Law Center, which promised to get back to me, but it did not do so before this article was submitted.
At any rate, as de Izaca says, "I don't think that this is going to be enough for the most extreme people. In my opinion, a lot of critics have invested a lot of hate in Microsoft, and there's really nothing that will move them from the position."
But so far as the Mono community is concerned, few doubts remain. "The Mono people are pretty excited, because I think we are tired of eight years of discussing this thing," de Izaca says.
He talks of reactions pouring in since the announcement was made: Of Aaron Bockover, the development lead on the Banshee media player, celebrating the news at the Gran Canaria Desktop Summit; of Sandy Armstrong of the Tomboy project, regaining heart after being depressed by Stallman's anti-Mono statements; and of Jono Bacon, Ubuntu's community manager, celebrating the fact that he can now focus on including best-of-breed software and ignore licensing concerns.
"Mono developers are pretty excited at this point," de Icaza says in an understated tone.
And de Icaza? "I look forward to having a blast, without the issue of patents coming up in every conversation. There's not a very clear cut answer to the question of patents. It's a complicated subject, and bringing it up just derails the entire conversation. You have to go into nuance, and people's personal backgrounds, and people feel very attached to these things, so they make conversation very cumbersome. And I'm really looking forward to going and just doing some fun hacking."
We'll know for sure in a few days whether the celebration is premature or not.