As first thing i want to say that i’m not so well informed about the background of the Mono
project, his licenses model and possible implications, and I’m trying to get an idea after reading a few posts on techrights.org.
In fact I read on techrights very strong words against this project, and so I’m trying to understand something more.
But first: what is’ exactly the Mono project?
From mono site:
Mono is a software platform designed to allow developers to easily create cross platform applications. Sponsored by Novell (http://www.novell.com/), Mono is an open source implementation of Microsoft’s .NET Framework based on the ECMA standards for C# and the Common Language Runtime.
More information from Wikipedia:
Lacking the resources to build a full .NET replacement on their own, Ximian formed the Mono open source project, which was announced on July 19, 2001 at the O’Reilly conference. Almost three years later, on June 30, 2004 Mono 1.0 was released.Being an open source project, the runtime evolved from a primary focus of being a developer platform for Linux desktop application to go into the server (with ASP.NET) to support many architectures and operating systems, to embedded systems.
The founder of this project is Miguel de Icaza. De Icaza started the GNOME project with Federico Mena in August 1997 to create a completely free desktop environment and component model for Linux and other Unix-like operating systems. Earlier, de Icaza had created the Midnight Commander file manager and worked on the Linux kernel. He also created the GNOME spreadsheet program, Gnumeric.
In 1999, de Icaza, along with Nat Friedman, co-founded Helix Code, a GNOME-oriented free software company that employed a large number of other GNOME hackers. In 2001, Helix Code, later renamed Ximian, announced the Mono Project, to be led by de Icaza, with the goal to implement Microsoft’s new .NET development platform on Linux and Unix-like platforms. In August 2003, Ximian was acquired by Novell, Inc. There, de Icaza is currently the Vice President of Developer Platform.
So far it seems to be the usual open source project, maybe better because it’s led by a great exponent of the open source world and supported by a large corporation, but then where are the problems?
Mono and Microsoft’s patents
Mono’s implementation of those components of the .NET stack not submitted to the ECMA for standardization has been the source of patent violation concerns for much of the life of the project.
In particular, discussion has taken place about whether Microsoft could destroy the Mono project through patent suits. Over the lifetime of the project these concerns have proven to be unfounded.
The base technologies submitted to the ECMA, and therefore also the Unix/GNOME-specific parts, are not problematic due to Microsoft’s explicitly placing both ECMA 334 and ECMA 335 standards under the Microsoft Community Promise. The concerns primarily relate to technologies developed by Microsoft on top of the .NET Framework, such as ASP.NET, ADO.NET and Windows Forms (see Non standardized namespaces), i.e. parts composing Mono’s Windows compatibility stack. These technologies are today not fully implemented in Mono and not required for developing Mono-applications, they are simply there for developers and users who need full compatibility with the Windows system.
Should patent issues ever arise, the Mono project’s stated strategy for dealing with them is as follows:
* Work around the patent by using a different implementation technique that retains the API, but changes the mechanism; if that is not possible, they would
* Remove the pieces of code that were covered by those patents, and also
* Find prior art that would render the patent useless.
Reference : http://www.mono-project.com/FAQ:_Licensing#Patents
In addition, Mono is also included in the list of software that the Open Invention Network has sworn to protect.
On July 6, 2009, Microsoft announced that it was placing their ECMA 334 and ECMA 335 specifications under their Community Promise pledging that they would not assert their patents against anyone implementing, distributing, or using alternative implementations of .NET. However, their position regarding the non-ECMA components like ASP.NET, ADO.NET, and Windows Forms (which are the bone of contention) remains unclarified.
Following a controversy between the Mono developers and the Free Software Foundation, Canonical Ltd., makers of the Ubuntu Linux distribution, came out with a Mono Position Statement which states that “It is common practice in the software industry to register patents as protection against litigation, rather than as an intent to litigate. Thus mere existence of a patent, without a claim of infringement, is not sufficient reason to warrant exclusion from the Ubuntu Project.” The statement then goes on to say that they would therefore continue to ship Mono in Ubuntu until the patents actually become a real threat rather than simply a perceived threat. However, Canonical Chief technology officer also said about Mono: “With regard to Mono, I think it is a valuable piece of free software for us to have. However, there are risks involved in choosing the .NET platform to develop free software, because it is under the ultimate control of Microsoft. Microsoft could take advantage of this to attack free software in various ways. This would be a logical act of self-preservation, and consistent with their previous actions and statements of intent.”
Fedora Project Leader, Paul Frields, has stated “We haven’t come to a legal conclusion that is pat enough for us to make the decision to take mono out.”
Richard M. Stallman published the article Why free software shouldn’t depend on Mono or C#, where he wrote:
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.
We should systematically arrange to depend on the free C# implementations as little as possible. In other words, we should discourage people from writing programs in C#. Therefore, we should not include C# implementations in the default installation of GNU/Linux distributions or in their principal ways of installing GNOME, and we should distribute and recommend non-C# applications rather than comparable C# applications whenever possible.
An article on FSF following this one was called “Microsoft’s Empty Promise” and explained the problems with Mono
… Microsoft extended the terms of their Community Promise to implementations of the ECMA 334 and 335 standards. You might think this means it’s safe to write your software in C#. However, this promise is full of loopholes, and it’s nowhere near enough to make C# safe.
As mentioned in the introduction Roy Schestowitz on techrights.org has published a long series of articles stating the reasons for which is against the interest of Open source world to adopt Mono and all applications written with this framework, the last one to have attracted the attention is banshee which has become the official application in Ubuntu 11.4 as a music player.
Check the article “Now It’s Official: Banshee Included in Ubuntu by Default” where he wrote :
Summary: Mono trap from Novell entrenched deep inside a ubiquitously-used distribution of GNU/Linux
OMG!UBUNTU! not only promoted Banshee but it also jumped the gun when it claimed that the program had been added to the next Ubuntu. Well, only now is it official:
The day we’ve all be waiting for has finally arrived. After much hard work by the Banshee Project and Ubuntu, Banshee has finally been made the default music player in Natty.
As I am informed currently the switch will hit the next daily image build.
Canonical is putting a Microsoft/Novell Trojan inside everyone’s default install.
And in another article discusses possible conflicts of interest between the promoters of Banshee “ Mono Boosters in Ubuntu Have Conflicts of Interest, LibreOffice Under Similar Threat ” which says basically that the main person who sponsors Mono and Banshee on OMG!UBUNTU! is also “maintaining primarily Mono packages including Banshee”.
FLOSS Weekly 91: Boycott Novell – Guest Roy Schestowitz
A range of programs have been developed that use the Mono API and C#. Some such programs written for the Linux Desktop include Banshee, Beagle, F-Spot, Gbrainy, GNOME Do, MonoTorrent, Pinta, and Tomboy.
Other than these softwares is also available MonoDroid a project which aims to bring Mono to Android-based smart-phones. This could open the way to an high number of App written for this platform.
Miguel de Icaza is naturally a strong voice in favor of this project in its 2002 statement, he wrote “Mono and GNOME. The long reply.”
“… I have written and maintained many lines of code as part of
my GNOME work. Ximian has developed Evolution which consists of
roughly 750,000 lines of code.
Large software projects expose a set of problems that can be
ignored for smaller projects. Programs that have long life times
have different dynamics when it comes to memory management than smaller programs.
There is a point in your life when you realize that you have
written enough destructors, and have spent enough time tracking
down a memory leak, and you have spend enough time tracking down memory corruption, and you have spent enough time using low-level insecure functions, and you have implemented way too many linked lists 
 indeed, GNOME uses Glib which is a massive step up from
the Unixy libc APIs.
The .NET Framework is really about productivity: even if
Microsoft pushes these technologies for creating Web Services, the
major benefit of these is increased programmer productivity.
Evolution took us two years to develop and at its peak had 17
engineers working on the project. I want to be able to deliver
four times as many free software applications with the same
resources, and I believe that this is achievable with these new
My experience so far has been positive, and I have first
hands experience on the productivity benefits that these
technologies bring to the table. For instance, our C# compiler is
written in C#. A beautiful piece of code.
It can be argued that I could be wrong, and that these
technologies are too new. But my personal experience and the
experience of some of my friends with this platform has been
amazing. I want to share with others this simplicity. And I
want to empower developers: I want to enable a whole class of
developers to create great desktop applications that integrate
with GNOME. …”
Well, there isn’t a real conclusion for me, at the moment, but i’ve a better understanding of what’s Mono and his pro and con.
Personally in a scale where 10 is “Go Mono !” and 1 is ” Down with Mono !” i’m feeling at 3, i’ll substitute banshee with something else (do we have a problem in finding good alternatives for a music player ? i don’t think so), and in the future i’ll try to substitute Tomboy, a program that i really like with something else, after that i’ll remove the mono library. And you ?
Are you pro,con or just neutral regarding Mono ?
- In this SteamOS era where do the Linux gaming stand?
- Introduction to gnome maps
- How to manage processes with cgroup on Systemd