To most people, Mono is a disease that leaves young people tired and listless. But to members of the free software community, Mono is something worse: a controversy that leaves everybody over-wrought and mistrusting each other.
After watching the controversy flare yet again over the last couple of months I'm convinced that no current issue in the community is more important to resolve quickly and decisively. Now, more than ever, the controversy threatens to spiral out of control and waste energy that would be better used elsewhere.
A malarial relapse
Except for a few details, the issue has not greatly changed since Mono was in development eight years ago. However, recently, the issue has seen a resurgence of interest.
One reason for the resurgence may be a concerted campaign against Mono at Boycott Novell. A representative of the site did not respond to a request for comment, but the site has published at least 65 anti-Mono posts in the last four months -- and that count does not include the site's published IRC logs, which likely contain a good deal more relevant references. Certainly, typical recent anti-Mono arguments cite Boycott Novell more than any other source, so much so that the influence is obvious at a glance.
But, whatever the case, the last few months have also seen a number of developments related to Mono. Gnote, a C++ replacement for the Tomboy notebook applet in GNOME has appeared. Debian has decided to include Mono in its base install, while Fedora has chosen to remove at least one Mono-based application from its next release.
Emotions run so high in the debate that, when editor Carla Schroder asked for a pro-Mono argument to balance the discussion of these issues on Linux Today, a long section of a response she received was devoted to dissecting evidence of her allegedly anti-Mono bias. Never mind that she was the one who had asked for some balance, and spoke jocularly.
Under these conditions, the debate threatens to become an end in itself. Often, accuracy or truth seem less important to either side than scoring points. Both sides frequently digress into matters that are beside the point.
Nor has either side showed much interest in defusing the issue by taking active steps to resolve it. The Pro-Mono side seems to wish that the issue would simply go away, while the Anti-Mono side sometimes seems to have too much invested in its position to do anything except argue.
The core issue
Mono is a free software implementation of Microsoft's .NET (C#) framework. Some parts of .NET are under licenses that are incompatible with free ones, and some parts of Mono are specific to the operating system. But Mono does share a common core with .NET -- and that core is covered by patents, which parts of the free software community has long feared could be used as a weapon against it.
According to the Mono project's licensing FAQ, these patents are of no concern. An inventor of one of the patents has written that "our patents essential to implementing C# . . . will be available on a 'royalty free and otherwise RAND [Reasonable and Non-Discriminatory] basis.'"
Furthermore, Microsoft has written that "Microsoft Corporation will grant, on a non-discriminatory basis, to any party requesting it, licenses on reasonable terms and conditions for its patent(s) deemed to be necessary for the implementation of the ECMA standards."
However, opponents of Mono argue that these assurances are vague and inadequate, to say nothing of unproven. Their concern is that Mono, like Moonlight, the free implemention of Silverlight, could be used by Microsoft to attack free software in the future.
As a result, they worry about the growing number of applications written in Mono, especially those for the GNOME desktop, such as Tomboy, F-Spot, and Banshee, and the recent efforts to port Mono to KDE as well.
The Pro-Mono Arguments
Supporters of Mono tend to be developers -- or, at the very least, those actively involved in putting a distribution together. Their defense tends to be based on Mono's technical qualities.
For example, Jo Shields, whose guest essay appeared on Linux today, is a member of the Debian Mono Group. He begins his defense of Mono by arguing that "Mono provides a well-balanced framework to enable Free Software to be developed quickly, effectively, and efficiently" and that "Mono on the whole also enables easier migration -- for both developers and users -- from legacy CLR frameworks such as Microsoft .NET"
Shields is scornful of the opposition, claiming that "the vast majority of the anti-Mono crowd are not developers or packagers - they are back-seat drivers." He refers to their demands to remove Mono from default installations as "software terrorism" and insists that "if a specific application is best-in-class, it should be included by default" regardless of what programming language it is written in.
The same attitude is sometimes shown by Miguel de Izaca, the founder of Mono and GNOME, when he wrote recently on his Facebook status in response to Richard M. Stallman releasing a statement cautioning against using the C# platform, "on RMS and Mono, let me just paraphrase Confucius and say '20 million .NET developers don't give a shit.'"
Similarly, the Technical Board of Canonical, Ubuntu's commercial arm, chooses to emphasize software quality in its defense of Mono. Recently, it announced that, "In general, we will ship the best available free software applications."
Only secondarily do those who support Mono consider the central issue of potential software patents. When they do raise it, they are frequently dismissive. If patents do become an issue, Shields suggests, Mono will simply find a way around them -- or, in the worst case scenario, in which Mono becomes unusable, port any Mono-based applications to another language, just as Tomboy was recently ported to C++ as Gnote.
Other Mono supporters show even less concern. For instance, at Canonical, the argument made by the Technical Board is that shipping Mono is not "a major risk, as should be evident from the fact that it has shipped in Ubuntu main [repository] since 5.10 and in the default desktop since 6.10" -- that is, for several years."
Considering that most Mono supporters simply want to get on with their work, such positions are understandable.
Nor are accusations -- often irrational ones -- easy to endure, especially from people not involved in your work. That must be especially true for de Izaca, who seemed a perfectly decent person the few times I talked to him on the phone, but who endures constant misquoting and outright demonization. In such cases, the Pro-Mono side is simply responding in kind.
All the same, what pro-Mono supporters consistently overlook is that the software development or quality, the roles of people raising objections, or personal abuse are not the issue.
The issue is the potential legal problems, and neither thinking you can work around them, or that, because a violation has not been filed yet, it never will be, really addresses the possible consequences.
In a patent violation case, finding a workaround does not necessarily mean that you can escape legal penalties. Moreover, while the Mono project itself might survive a legal battle, individual companies like Canonical might not, for the simple reason that patent cases tend to be expensive.
In other words, what is missing from the pro-Mono side is any serious effort to assess the legal threat.
The Anti-Mono ArgumentsWhen reading the case against Mono, the biggest challenge for outsiders is not to judge it by the rhetoric in which it is expressed. A few people, most recently Richard Stallman, have explained relatively calmly why including Mono in a distribution is risky, but, too often, comments that concern Mono are made with excessive passion at best.
At its worse, the case is made with rudeness, a disregard for logic, and a mania that resembles paranoia and conspiracy theory. You can see much of this tone in the initial post that started the discussion in the Ubuntu mail forum.
"I never thought I'd live to see the day where [Canonical] would side with the asshole trolls such as the MONO camp," the post declares. "I'm disgusted and you guys should be ashamed. I hope you get rid of MONO. Only then can your reputations be restored."
During the rest of the thread, the poster went on to become so out of control with his accusations that Boycott Novell, whose articles the poster often quoted, felt obliged to distance itself.
Even when the Anti-Mono side's rhetoric is calmer, a good deal of bias is obvious. The fact that Mono has origins in a language originally developed by Microsoft is by itself enough to raise suspicion. Given Microsoft's frequent anti-competitive tactics, many Anti-Mono supporters have no trouble believing that the corporation could be playing a long-term game to infiltrate then destroy free software.
Add that Mono's main sponsor is Novell, a company that signed an infamous agreement with Microsoft, and the bias becomes even stronger.
For example, when journalist Sam Varghese attempted to find out the terms under which a license could be requested, and received no response, his conclusion was that the offer was a sham. A simpler explanation would have been that, as an individual, his query carried little or no weight.
None of this does anything to help the Anti-Mono side. Only when you return to the basic credo of free software do you realize that it may be right, but for the wrong reason.
Putting aside the rhetoric and the biases, the purpose of free software is to ensure that users have full control over their computers. Software encumbered by patents undermines that goal, because the patent-holder can demand at any time that use of the software must stop. Therefore, any software whose status is doubtful should not be used until its status is clarified. In Richard Stallman's words, it is "a gratuitous risk."
Who developed or supports the software, or what they might do with it does not matter; free software cannot guarantee users' rights by endorsing applications whose status is undetermined. The issue is really as simple as that.
Two Potential Solutions
The two sides in the Mono controversy seem far too entrenched to move beyond rhetoric and look for solutions. Most of the time, they cannot even stay focused on the legal concerns.
To its credit, Boycott Novell posted some time ago a list of alternatives for those who want to avoid using Mono. Several people have also given instructions on how to remove Mono from GNU/Linux for those who are interested.
However, proposals to make the use of Mono optional, or even to move its packages to repositories clearly labeled as non-free have been less successful, largely because they are resisted as unnecessary by pro-Mono developers. Proposals to stop using Mono altogether are even greater non-starters, because naturally developers do not want to abandon their efforts, especially when the issue is uncertain.
But these are short-term solutions. What is needed are concerted efforts to determine Mono's status once and for all so that nobody has to waste any more time with pointless debate.
While Mono developers might complain that such efforts would distract from their work, gaining the knowledge would be far more useful than the endless and unvarying debate that distracts them now. Similarly, if anti-Mono advocates want to retain credibility, I do not see how they can resist such efforts without revealing themselves as people who prefer posturing to action.
Exactly how to determine Mono's status would probably take some discussion. However, I can think of two positive steps that both camps could support.
First, we need a competent legal opinion about Mono. The closest we seem to have is that of Bradley M. Kuhn of the Software Freedom Law Center, who recently argued that the best way to avoid patent concerns is to avoid technologies like Mono whose status is uncertain. That is sensible, so far as it goes, but is unlikely to be accepted by the pro-Mono camp.
Moreover, as far as I know, no one has done a detailed legal analysis of Mono in particular. Is the possible patent encumbrance a serious threat, or an imaginary one? Could the patents behind Mono be challenged if necessary? These are questions that the Software Freedom Law Center, whose expertise and neutrality are unquestionable, would be ideally suited to tackle.
Second, if permission to use the patented core of Mono is really to be had for the asking, then ask for it. The request should not come from one person, because one person is too easy to ignore. Nor should it be made by a single project, because other projects would be unprotected.
Instead, those interested should petition a larger organization to intervene. The Linux Foundation would be ideal, since it has had previous dealings with Microsoft.
Other concrete steps are probably possible, but these two alone would be huge steps forward. Once they were completed, the community would at least know for better or worse what the situation is and could discuss what to next. Right now, all we can do is speculate.
Or have both camps reached the stage where they would rather bicker pointlessly than take positive action? I really hope they haven't, but watching the events and discussion of the last few months, I sometimes have to wonder.
ALSO SEE: The Agony of FOSS Branding