By Jake Edge
July 1, 2009
Since its inception, Mono has always been controversial, largely because
Microsoft—creator of the .NET framework that Mono implements—is
not trusted by a large segment of the free software community. The concern
is that, at some point, Microsoft will start asserting patent claims
against Mono or applications that use it.
Richard Stallman recently stirred the pot with a brief warning
that reliance on Mono, or applications that are written in C#, is a
"serious danger". That, in turn, has led to a number of
discussions about how real that danger actually is, and what, if anything,
distributions should do about it.
Certainly, the patent non-assertion agreement
that Microsoft and Novell signed in 2006 gives the appearance
that Mono users—those who are not Novell customers
anyway—could be subject to patent
harassment—or worse—from Microsoft. So far, nothing like that
has materialized, but it is difficult for anyone with even the tiniest bit
of cynicism (along with a historical perspective) to be completely
unconcerned about the problem As is typical, Stallman is particularly
blunt, or alarmist, depending on one's perspective:
The problem is not unique to Mono; any free implementation of C# would
raise the same issue. The danger is that Microsoft is probably planning to
force all free C# implementations underground some day using software
patents. (See
http://swpat.org and
http://progfree.org.) This is a serious
danger, and only fools would ignore it until the day it actually
happens. We need to take precautions now to protect ourselves from this
future danger.
It would seem that Debian's recent addition of the Mono-based Tomboy
note-taking application to one of its GNOME meta-packages—though only for
the Squeeze (testing) release so far—is what prompted Stallman's
warning. Some are advocating
shipping the Gnote re-implementation of
Tomboy in C++, instead of Tomboy, which might be a solution for
note-taking. As Debian developer Josselin Mouette points out, though,
there are no replacements for other Mono-based applications, such as F-Spot
and GNOME Do, so Mono may well be required by other default applications
down the road.
Some distributions, such as Fedora for the upcoming Fedora 12, have removed
Tomboy in favor of Gnote for default installations. This effectively
removes Mono from the default, though the reasons
are not necessarily related to any potential patent issues—Gnote has
a much smaller footprint. But, there is the recent patent suit against
TomTom—and efforts to work around the patent—to
remind folks that the patent threat is real, and that Microsoft, which had
largely stayed away from pressing patent claims, can and will pursue free
software implementations of its patented technologies.
Any patent action against Mono may subject the plaintiff to a countersuit
from the Open Invention
Network (OIN), which is a patent pool to defend free software. By
adding Mono to its list of protected applications, OIN allowed various
distributions, Fedora for
example, to become comfortable enough to start shipping Mono at all.
There are still risks, of course, not least from patent trolls who don't
implement anything that could be subject to a countersuit, but the OIN
coverage provides enough of a threat to potential patent attackers that
Mono is available for nearly all
distributions.
Unlike many earlier complaints about Mono and C#, Stallman is not arguing
against the existence of Mono, his view is more nuanced than that:
This is not to say that implementing C# is a bad thing. Free C#
implementations permit users to run their C# programs on free platforms,
which is good. (The GNU Project has an implementation of C# also, called
Portable.NET.) Ideally we want to provide free implementations for
all languages that programmers have used.
The problem is not in the C# implementations, but rather in Tomboy and
other applications written in C#. If we lose the use of C#, we will lose
them too. That doesn't make them unethical, but it means that writing them
and using them is taking a gratuitous risk.
The mention of DotGNU Portable.NET is confusing to some: how can Stallman
be warning against C# in the same message where he touts a GNU
implementation of the language? But Stallman evidently doesn't see it that
way; providing the tool is not the same as encouraging its use.
His solution is to discourage new development in C#, find alternative
applications written without Mono, and to not include Mono in the default
installations of Linux distributions. As more C# applications come along,
particularly those without a "Mono-free" alternative, that could pose some
serious difficulties.
The most in-depth defense of Mono, in general, as well as arguments for its
inclusion in
Debian, Ubuntu, and other distributions comes from Jo Shields. In a lengthy blog post,
which was a response to a challenge
on Linux Today, he also notes that it is the applications that
are driving the adoption of Mono, not the technology in and of itself. He
has a well-thought-out list of reasons that users should not be worried
about the patent threat. He is clearly exasperated—or
worse—with the shrill
"anti-Mono" contingent:
However, the vast majority of the anti-Mono crowd are not developers or
packagers — they are back-seat drivers. They make proclamations about how
other developers (who are surrendering their time to developer Free
Software) should instead use the framework of THEIR choice, not the
developer's.
This issue has been simmering for a long time, but it has really flared
up over the last two or three weeks, prompting the Ubuntu Technical Board
to issue a position statement saying that
it "sees no reason to exclude Mono or applications based upon it from
the archive, or from the default installation set". While some
distributions may remove Mono from their default installs and Live
CDs—for space reasons if nothing else—there are few, if any,
mainstream distributions that will completely remove Mono from their
repositories, as there are clearly useful applications that depend on
it. An interesting exception to that, however, is Red Hat
Enterprise Linux
(RHEL), which doesn't package Mono at all.
C# is an international standard, as both Ecma International and ISO have
adopted C# specifications. Those bodies require patents that are held by
their members, and that cover an adopted standard, be licensed under
"reasonable and non-discriminatory" (RAND) terms. Depending on what those
terms actually are, they may not be "non-discriminatory" towards
free software implementations, particularly if they require royalties.
But, it may well be that patent enforcement actions by Microsoft against
Mono (or
DotGNU for that matter) are unlikely. Microsoft might also be leery of
the various regulatory bodies that
tend to keep an eye on its anti-competitive behavior. All of those things
may make the probability of a patent suit vanishingly small, but it doesn't
reduce it zero—and that is what Stallman and others are worried about.
Of course, Microsoft could make its intentions clear, and remove the
doubt. That it chooses not to, and lets the free software community twist
in the wind, speaks volumes about its tactics—whether it truly thinks
it might ever use the patent weapon or not. Rather than any active
enforcement, a more likely scenario is that Microsoft hopes it can shake
down more companies in deals like it made with Novell. From that
standpoint, the internal free software community bickering about Mono
serves its purposes as well as any "fear, uncertainty, and doubt" campaign
it might be able to conjure up.
There are perfectly legitimate reasons to be concerned about Mono: it is
resource-hungry, is always playing catch-up with whatever new features
Microsoft chooses to add, and could increase the danger from patent suits.
At the moment, though, those kinds of arguments are being drowned out by
a loud group that doesn't want to see Mono exist at all.
This rabid anti-Microsoft segment of the free software community has not
done the rest of the community any favors with its behavior regarding this
issue. There are certainly reasons to be wary of Microsoft, but there is
no reason to believe that the Mono developers and proponents are interested
in anything other than the technology itself. The C# language and .NET
libraries have benefits
that they see, and wish to use. Disagreeing with that, on a
technical—or political—level is all well and good, but calling
for people to be fired or somehow expelled from the community for their
opinions, as Shields describes, is absurd. Freedom cuts both ways.
The root problem is, of course, software patents, and the uncertainty they
bring. This is clearly a growing problem within our community, and one
that is not going to go away soon. While a patent attack from Microsoft
over Mono may be unlikely, there are certainly other patent trolls out
there trying to figure out how to leverage their "valuable intellectual
property" against Linux and free software. Where the next attack comes
from is unclear, but we can be sure that it's coming.
(
Log in to post comments)