Jan 092011

mono 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.”

Against Mono

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

Pro Mono

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 [1]

[1] 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 ?

Popular Posts:

flattr this!

  23 Responses to “Mono it’s good or bad for Linux ?”

  1. I think I’m at around 2 on your scale. I see more dissadvantegaes, bot in pratctical and licensing/philosophical sense. To me mono is more or less a bloated runtime, that we actually don’t need on Linux since we have safer and better options like Python. When it comes to licensing, well from analysis from Groklaw and Red Hat and other lawyers it seams the framework isn’t completely free and not completely safe from software patent threat. And when Microsoft, a well known Linux and free software enemy is behind the threat, well I better stay clear of the threat and not unnedlesleey endenger the Linux/FLOSS community. As I said there is Python and other alternatoves so there is no need for this. And actually the first thing I don on any Linux installation is to remove Mono and any software depending on it.

  2. Come sviluppatore lavoro quotidianamente con molti linguaggi (proprietari o meno), da Ruby a C#, passando per C, C++ e simili.
    A favore di C# posso sicuramente dire che è un linguaggio che apprezzo molto: semplice, snello, senza troppi fronzoli e decisamente scalabile.

    Non posso quindi che essere sicuramente a favore di Mono. Poter utilizzare linguaggi come il C# su tutte le piattaforme, è un plus dal mio punto di vista.
    Sempre per usare il tuo esempio della scala, direi che sono un 8 :)

    C# è un linguaggio standardizzato ECMA e, come tale, di fatto libero da particolari vincoli.
    In questi ultimi anni Microsoft mi pare abbia dato prova di una certa “apertura” verso il mondo open-source… proviamo a dargli credito.

  3. Mono as a .NET implementation is not really portable as you can see there:

    A C# implementation above the OpenJDK or Portable.NET would be a better solution than Mono in my humble opinion both technically and legally. We cannot expose Linux to Microsoft threats of lawsuits about violations of software patents, Mono is not worth taking such a risk.

  4. Tomboy is easy enough to replace. Someone ported it to C++.


  5. Of the top five Linux Mono applications most commonly included within Linux distributions, all five of them use functionality within Mono that falls outside of Microsoft’s Community promise.


    Wikipedia has a list of function references within the .NET environment grouped into “standard” and “non-standard” namespaces.


    All of those in the “non-standard” group fall outside of the Microsoft Community Promise.

    Hence, all five of the top five most commonly installed Mono programs for Linux fall outside of the Microsoft Community Promise.

  6. An alternative to Tomboy you can find in GNOTE –
    fully compatible with Tomboy and written in C++. Much lighter on computer resources…


  7. There is no need to patent software / IP in order to protect against litigation. Use it, release it and you have prior art. If anyone files a patent and states they _only_ want to protect against a patent litigation, they try to pull my leg.

    “It is common practice in the software industry to register patents as protection against litigation, rather than as an intent to litigate.” is simply bullshit. Like killing a killer to prevent killing.

    Microsoft is convicted for improper use of monopoly power. They are measured as they act in ECMA standardizations. Microsoft said they freely contributed to open source and in fact they had to, because they breached the GPL.

    If Microsoft likes to have a stand in open source, they have to play it the way the community likes. Not their way. If they would matter about it, Microsoft would not have chosen promises but simply used the GPL or a GPL & BSD license.

    Don’t use Mono or any app depending on it!

  8. I think it would do us good not to insist on fighting yesterday’s wars.

    I mean, looking forward, not backward and stuff. Whatever good came out of this whole Mono-scare until now?

  9. completamente d’accordo con il primo commento.
    il mondo linux (e foss in generale) ha veramente bisogno di mono?
    secondo me no

  10. I would dismiss anything from Roy Schestowitz, mental midget extraordinare.

    There is absolutely nothing wrong with Mono, but some people refuse to give it credibility because it contains technology invented by Microsoft, and they have to hate everything ever created by Microsoft.

    Ignore them, sites like techrights are completely worthless and do nothing but harm the community.

  11. Problem here we do know MS will submarine patents. Classic example is Fat file system long file name support.

    So part of the patent fear over mono is the once bitten twice shy. Also mono threw Novell protection from patents ends at the end of this year.

    “Over the lifetime of the project these concerns have proven to be unfounded.” Of course there is no action the agreement between Novell and MS basically prevents it until the end of this year.

    Basically 2012 MS could due to the end of the agreement if its not renewed attack Mono.

    Things that are wrong. We were promised an ECMA conforming version of Mono that would be legally fine. That is missing in action.

    Go ask tomtom what they think of these two options
    * 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

    They will tell you bluntly both of these actions will be too late. MS sued and when to block tomtom from having its products imported due to being in breach of patents.

    Also there is a worrying trend on the mono project site. http://www.mono-project.com/Main_Page . Mono Tools for
    Visual Studio was free and open source now you have to buy it.

    MonoTouch Also was free and open source at one point you have to buy it.

    http://www.novell.com/products/mono/ Now explain this. Novell is the funding arm behind mono. Yet to use it on SUSE there own distribution you have to pay a fee to use ASP.net feature completely? What the hell is going on here.

    Is mono going to become slowly but surely if you want to use the latest features of .net you have to pay a fee? Remember SUSE Linux Enterprise Mono Extension was at one point a another free and open source part.

    Basically there are signs of bad thing happening to mono. Question is how bad is it going to get. Yes the closer the end of agreement comes the faster the rate of mono becoming a paid for product is appearing.

  12. Do not lose time cleaning up Ubuntu. Simply install Trisquel GNU/Linux: http://trisquel.info

    It is a 100% Free (as in Freedom) derivative of Ubuntu. Instead of Tomboy, you will have Gnote. Instead of Banshee, Exaile. Instead of F-Spot, Shotwell.

  13. > Do not lose time cleaning up Ubuntu. Simply install Trisquel GNU/Linux: http://trisquel.info

    >It is a 100% Free (as in Freedom) derivative of Ubuntu. Instead of Tomboy, you will have Gnote. Instead of Banshee, Exaile. Instead of F-Spot, Shotwell.

    Alternatively, one could always install Kubuntu. Instead of Tomboy, you can have Basket Notes. Instead of Banshee, Amarok or Juk. Instead of F-Spot, digikam.

    Kubuntu is a 100% free-of-mono version of Ubuntu released and supported by Canonical.

  14. Techrights is not a serious site that should be taken as a source for anything.
    It’s run by a psycho who calls himself a doctor, and refers to himself as “we” and “us”, while he’s clearly all alone. Also, he has way too much free time and seems to post dozens of articles each day. I have troubles imagining him not being unemployed.
    On a side note, he should stop making up bad puns about product names, followed by “[sic]“, as it’s painfully clear he’s misusing the word sic. This just makes him sound more stupid.
    (I don’t want to rant too much, but that reminds me of an article he posted, where he apologized that you had to use “Adobe Trash” to view some video… Blindly bashing proprietary products, yet using them. Laughable.)

    His site would certainly give a very distorted view of the truth, and is a bad start for beginners.
    If you do not like Mono (whether for ideological, legal or technical reasons), that’s fine, but quoting him or his site would crush your credibility, IMO.

    That said, you’re doing the smart thing by questioning the anti and pro sides to make up your opinion, and I think you should keep looking around and keep an open mind about it.

  15. STIFU please show some respect. Dr Roy Schestowitz is his correct title he does have a PHD in Medical Biophysics. So if you want to call him a psycho who is a Doctor fine. Its a lot of work to have a PHD in anything. Does not mean you are a nice person of course.

    Really STIFU personally your Reply should be deleted for being FUD and Pure insulting. Do I have to state what University you have to contact to confirm his PHD?

    Yes its people like STIFU who are the true master of FUD. Roy does not hide the fact his reporting is bias in places. “Blindly bashing proprietary products, yet using them.” I hate windows yet I repair peoples computers with Windows. Yes I know I am BIAS but it what gets me paid.

    Now the true problem here is by the time beginners get to his site school system should have taught they about bias reporting. Wait school system world wide does not work. Because if it did half the crap mono people say to make out everything is fine would be seen straight through.

    Also another funny one is Roy does not give to open source. You can find lot of open source code by him for a closed source program called MATLAB. That he is now correcting his way on. Techrights is not his only activity.

    Someone has be believing basically trash about him generated from the Mono side. Now this is normal don’t have valid arguments against treat the person as trash to try to hide the fact the arguments they are saying have base in fact..

    A true debate needs two parties fighting with facts for there side. Tech-rights does a great job of the Anti-Mono. Now where is the mono correct counter arguments not smoke screens.

  16. Dr. Roy Schestowitz has a doctoral degree in Medical Biophysics, so he IS a Doctor.

    Techrights.org has a really collective content, managed by Roy.

    Techrights really shows what is discovered by a group, and what a lot of people think.

    Intelligent people do not asks about the “Dr.” before the Roy’s name, intelligent people are grateful by his hard work to inform us, to guarantee our freedom.

    If you want to collaborate with the website, go to the IRC channel: http://techrights.org/irc-channel

  17. First, let me start by saying that I am no fan of Microsoft or
    proprietary/closed software. I’ve been involved with the Linux and Open
    Source/Free Software world for over 20 years (yes, twenty years). But I
    have been involved with the IT/IS world for just under 30 years. My
    perspective on this issue depends on which hat I’m wearing (see attached
    image); Open Source advocate or IT professional.

    Proprietary programming languages and libraries have an inherent
    problem. They are under the control of an entity that can unilaterally
    change, remove or discontinue the product. If you don’t like the
    changes, tough. Plus, you never really know what is going on inside
    them. They could be monitoring everything you do. Not to mention all
    the reasons RMS, et. al., mention.


    As a pragmatic computer programmer, C# and .NET have allot of goodness
    to them with respect to developing programs. Mono allows this goodness
    to function and grow on non-Microsoft platforms. This allows for more
    options and solutions when looking at developing and deploying

    So, for me, the bottom line is that, while I’m not going to run out and
    standardize on .NET/Mono, I’m not going to summarily throw it out just
    because I don’t like the license or company. It’s all about balancing
    trade offs.

    That’s my opinion.


  18. @oiaohm:
    “I hate windows yet I repair peoples computers with Windows. Yes I know I am BIAS but it what gets me paid.”

    This is either hypocrisy or stupidity (likely the former, but who knows). By fixing Windows computers, you’re promoting Windows. You could find a job on Linux or Mac if you really wanted to.

  19. @Stifu,

    I tend to agree with you… but in real life, although I work as a system engineer for linux, I also support a few machinces with Windows.

    I put a clip on my nose, and do it with bad feeling, but there simply no choice sometimes…

  20. Mono has run its course, its found to be buggy ,slow and unfit for consumption as it leads to high fever and undue risk, as outlined many times not only by the well written articles of Groklaw , Linux very own Richard Stallman who warns we should not be programming in C# nor including applications written in them, and many other contributing members of Linux society who take OSS very seriously and risks to it even more so, but this poster as well.

    It makes you wonder then, why ‘some’ Linux distributions who claim to support ‘Linux and OSS’ , unashamedly push mono and some of their apps in their default installs, thereby pushing risk and helping to alienate OSS to those who can least afford it; ordinary unsupsecting poor users. The sad reality is also that, Gnome being one of the supporters of Mono through its use of tomboy instead of Gnote, also unashamedly is pushing Mono, just as Richard Stallman and other staunch supporters of OSS have warned against. This is not what OSS stands for, and as long as its happening, apps and environments that are continuing to embrace Mono should be as outcasts.

    Ubuntu ships mono, and so does its cousin LinuxMint , and others. There are valid counterparts to these applications, so there is no reason to ship mono or any of its applications. There is zero reason to do this and the risk is unacceptable. If people want to install Mono apps after the OS is installed, that is their right to which I would also stick up for, but Mono apps out of the box in the default install of any Linux Distribution is exacting undue risk for its unsuspecting userbase, and its not right. We don’t need no Mono software….We don’t need our thoughts controlled..just another brick in the wall.

    From FSF webpage, article by RMS on July 22,2010:

    ” 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. ”

    I’ve not used Gnome in ages for that reason, and Linus now is using Xfce instead of gnome3 and congrats to him ( his own reasons); a few less users infected with Mono,
    and their new confusing interface.

  21. Before I comment on this I have to say that I’m not a big Microsoft fan – in fact if there is anything in software that is inherently evil then it would have a Microsoft logo attached to it.

    However, I’ve been in the professional software business for over 20 years now, and as a language C# is in my opinion a first class language (and in over 20 years I have programmed in many computer languages). The problem with C# is Microsoft and not the language itself.

    To be able to use C# in Linux using Mono has made life a lot easier for me – I find it much more efficient to program in than Java/C/C++. And for my type of work it gives the same cross-platform support as the other languages. To be honest I wouldn’t recommend it when using asp.net, ado.net, or windows forms on Linux, but outside of that I would. And to give some indication of the type of work I do my applications normally are full-on OO utilising multiple threads – I’m not writing “Hello World” applications.

    Now I agree with others that this doesn’t mean it should form the core of any Linux distribution. However, as a professional developer I believe the risk of Microsoft pulling the plug on Mono in the future is outweighed by the productivity gains I get from using this language in the current environment. I accept that if things change down the line I may have to port my applications to another language, but that is a risk I am prepared to take (I believe the cost implications of this possibility is less than the cost benefits I get at the moment using Mono).

    And in my experience I have not found Mono to be buggy or leaky. I have many programs written in C that have been prone to being buggy and leaky, but not the ones I have written that use Mono. To be honest if an application needs to be as fast as possible then I would still go down the C route, but with the cost of hardware this is quite rare.

    To summarise I would suggest that if you need to write software to earn money, and that software needs to run on Linux, then you shouldn’t discount C#/Mono out of hand just because of your dislike for Microsoft. I’m not saying I’m right, but If you are a professional developer just note that myself and Joe have been in the business a very long time, and we both have similar conclusions.

  22. Agree with Bubba. Work on .NET for last 9 years (from 1.1 version) and goes to C# from C++,Delphi, Java. For today C# is ultimately clear object language which natively force good quality of coding and refactor. Almost all my work are web and database oriented and i can launch them both on Windows (.NET) and Linux (MONO) even without ecompilation (in most cases). Most of pruducts are licensed under Apache 2.0.
    I have not any problems with C#, .NET, MONO, patents and non-matched realization (don’t use nor Windows Forms not GTK not Win/Linux special things).
    IMHO All that i have read above in this thread is paranoidal and holywar.
    MONO is very good thing with normal open-source licensing and with far less threats from MS than you imagine. And while paranoids will port C# projects to ANSI C and be proud about their FREE AND OPEN SOURCE SOULS , practician developers will be still using Java from WORST OF ALL ORACLE , MONO from terrible Novell and .NET from horrable MS. And will earn their money from open source and proprietary projects. Good Luck. May be we can ask “is it good or bad Linux for MONO”? Why not?

  23. >To me mono is more or less a bloated runtime
    Nah people have no idea what they’re talking about. Using mkbundle (shipped with mono) I was able to deploy a stripped, standalone version of the runtime that only incuded mono.exe and mscorlib.exe, the whole size being 1-2 MB (copy & run, no outside settings)

    and all the fuzz about patents comes from nowehre and is based on paranoia and rumors, there was no word from Microsoft against mono for the past 10 years the project exists

 Leave a Reply




You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>