Here we go again – why Mono doesn’t suck

This post is a repost for something I sent to Linux Today. Their original message was here, where they invited people who don’t think Mono causes AIDS to justify themselves. I replied here. This is a repost, for the benefit of assorted aggregators. Some context may be lost by not reading the original “invitation” first.

—————————————————–

I am a member of the Debian Mono Group, Debian CLI Applications Team, and Debian CLI Libraries Team. I’ve been working on packaging for the Mono stack and applications which make use of it in Ubuntu (and Debian) for just under a year. And, fully aware of the flame war, threats and personal attacks which will follow, I’m going to take you up on your “invitation”. I speak for myself here – not for the Debian project, nor Ubuntu, not for the Mono project, nor for my employer.

Your request was for “a calm presentation of why Mono is desirable, why it is not a threat, and why it should be included in Ubuntu by default”. I’ll answer these three questions individually, then offer a general comment on your post, as well as the wider “anti-Mono” movement. This message is GPG-signed to ensure it is published unedited. The message as-sent will be made available at http://retro.apebox.org/herewegoagain.txt to allow people to verify authenticity signatures themselves.

Why Mono is desirable

That’s a question which depends on whom is being asked.

If you’re asking a user, then the answer is “it’s not”, any more than a Scheme compiler or LOLCODE interpreter.

If you’re asking a developer, then the answer is VERY different. Mono provides a well-balanced framework to enable Free Software to be developed quickly, effectively, and efficiently. By “balanced”, I mean it is unlikely to win every single contest that one can throw at a programming language – memory footprint, execution speed, availability of libraries, and so on – but does fairly well in ALL of them. Speedwise, Mono is much faster than Python – up to several hundred times faster according to some benchmarks. It has a fraction of the memory footprint of Java applications. It has modern features such as garbage collection which make it easy peasy to write code with compared to malloc()-happy C or C++. It is a well-balanced framework. As such, for people looking to write apps for a Free Software environment, it offers a compelling choice of framework on which to build. Several apps which have only existed for a short time – such as GNOME Do – make full use of functionality provided by Mono in order to be written very quickly and easily, compared to chasing SIGSEGV around due to human errors inevitable with C-based development. Mono was first conceived as a way to escape from the absolute horror of maintaining a large GUI C codebase (Evolution).

Taking it further, Mono on the whole also enables easier migration – for both developers and users – from legacy CLR frameworks such as Microsoft.NET. Students who learn Visual Studio.NET at University can take their skills and directly apply them to creating or improving Free Software on their shiny new Ubuntu installations, without the need to learn a new language. Businesses with investment in .NET-based applications can look at replacing their servers or desktops with Free Software. Whilst providing .NET compatibility has always been a secondary goal, it is an extremely popular one, which has prompted a lot of input and development work from assorted people into the Mono codebase.

It should be noted, however, that this use-case (Windows migration) is not cause for including Mono by default (any more than, say, Wine), and indeed, the libraries required to run the majority of Microsoft.NET applications are excluded from Ubuntu installations due to lack of necessity.

Why it is not a threat

This is a question which will cause nothing but angry flames – although it certainly won’t harm your page hits and resultant ad revenue. Mono is not a threat because it is not special in any legal regard. Many people have spent hours if not days and weeks attempting to explain this. I’ll try to do so again. There are a whole smattering of reasons why it’s not an issue, covering a wide range of topics. I’ll present these points individually.

  • Mono is not the result of any deals between Novell and Microsoft. Mono was started 4 years before that unfortunate deal took place. Mono gets no special treatment under that deal. It is not mentioned in the deal (as with other apps). This is important to note.
  • Mono is covered by the OIN, as with most other major Free apps. Patent attacks against Mono carry the same risk to attackers as attacks against any other OIN entrant. Attacks against Mono would risk patent “world war”, which Microsoft cannot win. Such an action would harm their business – and lose them money.
  • Mono implements an international standard – albeit one from a convicted monopolist. If this is a problem, why do people use C, the standard from convicted monopolist AT&T? Mono implements an improved, Free replacement for a proprietary offering. If this is a problem, why do people use GNU (which provided an improved, Free replacement for proprietary UNIX)?
  • Regardless of whether or not any specific patent licenses over ECMA 334 and 335 cover Mono’s implementation of those standards, if indeed such agreements are available (ITWire’s curlish “attempt” to secure such an arrangement aside), the fact that statements have been made in public supporting the idea of royalty-free licensing essentially reduces the financial impact of such infringement to zero. If Foocorp has a license to use patents, under a “non-discriminatory” license, and did not pay for them – then it would be discriminatory to change anyone  else for them (breaking the signed terms regarding patent licensing), and as such, those patents lose any financial value. They may, however, still hold non-financial value (such as their use in defending against patent-related attacks), hence not making the patents “free for all” in any understood sense.
  • Mono cannot be “disabled” via an incompatible change to Microsoft.NET, for two reasons. Firstly, such a change would also break every single existing app for Microsoft.NET (in fact, if it were to happen, then the best option for those users would be to run their apps with Mono instead). Secondly, support for Microsoft.NET is a secondary goal for Mono – if Microsoft change something in .NET 5.0, then so what? It doesn’t prevent Banshee or GNOME Do from compiling and running fine on non-legacy systems like Ubuntu.
  • Absence of “patent protection” is not the same thing as “patent violation”. If I offer to sell somebody a promise not to sue them using any of my patents, their taking me up on my offer is no guarantee that I even have anything valid to sell them – merely that they are willing to buy it. If Jim buys protection from any patents I hold, it does not mean that Jim is infringing on anything specific – nor that if Ted does the same thing, that Ted is violating anything either. If a house insurance policy includes flood protection, it does not mean that your house will be flooded – and not buying flood protection does not mean that you will be flooded either.
  • Patents covering a specific implementation detail of a project cannot kill it dead – the example here is Freetype. Apple made some patent threats against the Freetype developers, for using their proprietary hinting data stored in TrueType fonts. You’ll notice that Freetype still exists today – this is because the specific METHOD that apple laid claim to was worked around, and auto-generated hinting data used instead. Apple’s threat was diffused, and the project went on. Suggestions have been made by FUD vendors that the Linux kernel contains a number of patent infringements – if specific details are ever provided, then those specific infringements can be worked around. A patent infringed in the Linux kernel would not cause all GNU/Linux distributions to be shut down overnight – and it’s disingenuous to suggest that any other Free Software is any different on that front. Even if a fundamental patent is infringed in Free Software, it’s no big deal – as a core change can be made, and applications etc which expect the “old” way can be modified to work with the “new” way, easily. Only proprietary applications cannot be fixed in the event of radical change – and proprietary apps are a secondary concern.
  • The layering of escape routes is extensive in Mono, especially Mono in Debian/Ubuntu. In the first instance, the contentious Microsoft-sourced non-ISO libraries such as System.Windows.Forms are not included by default, and are rarely used in Free applications anyway (because WinForms looks like ass, amongst other things). If a reason is found to remove these non-standardised libraries, then bam, they’re gone – without harming Free apps. Secondly, if a more severe change is required, then the Mono packages can be patched to remove the infringement. If more drastic changes are required, as mentioned above, then the applications can also be patched to support any core changes. And, taking it one step further, if the whole of Mono needs to be pulled, then applications can be ported. The porting process would potentially be slow and painful, and cause great harm to an application’s future rate of development (although no worse than if the app was written in the target language from day one), but nobody who has written an app they care about would simply throw their hands in the air and say “never mind, it was fun, but the Man says I have to stop now”.

Why Mono should be included in Ubuntu by default

It shouldn’t. Not in the sense that has been publicised on blogs, newsgroups, forums, and so on. We don’t want Mono installed by default on any distribution. Mono is a software platform, and software platforms are boring at a user level. Ubuntu shouldn’t ship with Java, Scheme, Assembly, LISP, etc, frameworks by default either. They are not interesting to users.

What we want by default are GREAT APPS. A user should boot an Ubuntu, Kubuntu, Xubuntu, or whatever CD and say to themselves “Wow, this Free Software stuff is great, I definitely don’t need Windows anymore”. All Ubuntu derivatives, as with all distributions of Free Software seeking to convert people to Free Software, should be chasing the best applications available. In the case of Ubuntu, a decision was made to include a note-taking application and a simple photo library manager, by the Desktop Team.

They determined that the best note-taking application to offer their users was Tomboy. Tomboy has a feature set far greater than the “Sticky Notes” applets provided in both GNOME and Windows Vista, and can be seen by new users as an easy replacement for Microsoft’s proprietary OneNote product, which retails for £80. The only other comparable GNOME application is Zim, a “Desktop Wiki”. Zim is a high-quality product, but it was decided by the desktop team to use Tomboy instead, as it is easier for non-technical users (and is the default application in its class as picked by the GNOME project).

They also determined that the best photo manager to offer was F-Spot. F-Spot is directly comparable to Apple’s proprietary iPhoto application, or Google’s proprietary Picasa application. It is NOT directly comparable to “file browser” type applications such as gThumb, as one of the key features of photo album applications is allowing you to tag your photos with important metadata – gThumb works on a per-folder basis, not on a “all my photos” basis.

Both Tomboy and F-Spot require the Mono JITter, and a set of libraries such as GTK#, in order to execute. So in order to offer these best-of-breed Free Software applications to new users (determined to be best-of-breed by the Ubuntu Desktop Team), parts of a Free Software runtime are required – the same way including the GNOME System Monitor requires GTKmm. As long as Tomboy and F-Spot are best-of-breed, they should be included – and with that, whichever libraries they happen to use. If other Free applications surpass one or both of these, then they should be used instead – if a Mono-based application surpasses a different application in a different class, it should be used instead. This is not based on preference for a given framework – although it is my personal belief that a high-level language such as C# or Python enables developing such an application much more quickly and easier than C would.

The post on Linux Today

Your initial post makes it clear that you are not even-handed on this topic. Here are some specific phrases whose purpose is to “throw mud”, and show your pre-determined judgements on the topics you claim to want to hear about. It is THIS, clear preconceptions and bias, which compel those with plenty of insight on Mono-related topics, not to bother. Which leaves only the anti-Mono people to pretend they have a majority.

“There are other, better applications that could be included” – Name them.

“forcing Microsoft technologies” – Help! Help! I’m being oppressed! No, not really. Good technology is good technology, and Not Invented Here never helped anyone. None of the Desktop Team are pro-Mono (most of them are Python fans), and no unilateral decisions are made over which applications to include. Nobody is “forced” over anything. No Mono-related packages have been marked as Essential:yes.

“unholy embrace into Ubuntu” – Demagogy. Microsoft are a corporation, not a supernatural entity. Suggesting any level of “unholiness” gives far too much credit to them. They are a corporation, with a wide selection of idiot senior managers, and a limited selection of competent developers. Nothing more.

“Mono fans have been creating a giant ruckus in the Ubuntu forums” – actually, it’s the anti-Mono crowd responsible for this. If you refer to accusations of censorship, then you’re being mislead (or intentionally misleading). Those who read the specific details of those accusations can find rudeness, threats, arguments, and worse – with anti-Mono people at the core. Childishness does not win arguments – nor friends amongst moderators.

“have not bothered to say why removing Mono from the Ubuntu installation CD” – To this, I offer a quote from Thomas Jefferson – “Ridicule is he only weapon which can be used against unintelligible propositions. Ideas must be distinct before reason can act upon them”. Demands to remove Mono from a default Ubuntu system are not based on any rational suggestions – there are no packagers offering superior replacements, only people demanding that because in their personal ill-informed opinion everyone will be sued to death, that Mono applications should be purged. This is, in short, software terrorism – demanding a change in someone else’s policy and telling them they are not Free to make their own choices, based on personal politics. Rational minds can dissent on questions of Mono, but until there are adequate replacements for Mono applications, complete with functional migration path, the choice is simple – make Linux suck more by moving to an inferior default application set, or “make do” with Mono. It should be noted that people with rather more to lose than random anonymous people on web forums – such as Mark Shuttleworth – have said on record multiple times that they don’t have any such fears. I would personally support a move from any Mono-based application to a non-Mono-based one, with demonstrable technical superioriority.

“simply including it in the standard repos is not acceptable.” – It’s perfectly acceptable – however, it’s not the only argument put forward. Suggestions range from reclassifying Mono as non-Free (moving it to third-class citizen status), to its complete removal from the archive, to the expulsion from both Debian and Ubuntu for anyone who has worked on Mono packaging. Free apps in general should be in the standard repos – regardless of their implementation framework – but if a specific application is best-in-class, it should be included by default.

“The inability of Mono fans to answer that simple question has me a bit bothered, as though there is a deeper agenda.” – If you want to make accusations, make them plain. Don’t play the Fox News game of “well, I find it *interesting*” – call a spade a shovel. If you have specific accusations to make about people who are not anti-Mono, then make them, or to put it bluntly, don’t spread lies.

The anti-Mono “movement”

Some people are “for” things. They are for Freedom, or for technical superiority, or for a sports team, or whatever. Some people are “against” things. They are against political candidates, or Microsoft, or people from certain places, or whatever. Some people define themselves on the basis of what they want, others on the basis of what they do not want. Mono causes immense anger amongst that second group – specifically, people who use GNU/Linux not because they are “for” anything, but because they are “against” Microsoft. This can be easily seen – using names like “Microshaft” or “Micro$oft” or similar childish attempts to define a “them and us” situation and ridicule the “them”. Mono is symbolic – it is Free (something they are supposedly in favour of), but Free on the basis of something sourced from the Great Satan – an inexcusable mix.

Many of those who advertise themselves as anti-Mono are, quite frankly, frightening. Calling for the deaths of Microsoft employees (see comments on Boycott Novell), or trying to have people who make positive comments about Mono fired (see recent comments on Ubuntu mailing lists), or making insinuations about anyone who does not agree with them (see pretty much every news post on Boycott Novell itself) – this is ugly behaviour, the absolute worst kind of advert for the “Free Software community” imaginable. If people want to be “against” Mono, then there are sane ways to do it – for example, by working on or packaging alternative software. Calling for people to be expelled from Free Software communities because they don’t work on apps you like is, in short, the antithesis of supporting Freedom. If the anti-Mono crowd want to be taken seriously, then they need to UNDERSTAND what they fight against – they need to have sufficiently intimate knowledge of what Mono is, how it works, and why, in order to know where to direct their energies (and general shouts of “ZOMG! MICRO$HAFT!” isn’t well-directed). I would LOVE to see some high-quality apps for GNOME written in, say, Java or Python – as the competition would only result in better applications.

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 is another reason why anti-Mono arguments are given so little respect – the sheer cheek, the PRESUMPTION that they somehow are in a position to make demands of other developers, is galling. Free Software is a meritocracy – those who do things earn respect. Until the anti-Mono crowd actually make a contribution to Free Software, they will continue to be treated as cranks – and their questions left unanswered.

In the end, there is NOTHING which will cause the Mono controversy to disappear – as long as vague threats of legal attacks are manufactured and fuelled by certain members of the community. Much like a presidential birth certificate, there is simply nothing which will placate those who have already made up their own minds without any concerns about basis in reality or fact. Anti-Mono arguments based in reality or fact are fine, and I welcome them – but I’ve very rarely seen them. And even when they are offered, they are offered drowning in a sauce of demagogy and FUD so thick as to obscure the salient point.

So, I think that’s what you were looking for. Repost it or don’t. It’ll make for a new chapter in the daily personal attacks I receive from the oh-so-sophisticated anti-Mono crowd.

–Jo Shields

——–
Understanding is a three-edged sword: your side, their side, and the truth

339 Responses to “Here we go again – why Mono doesn’t suck”

  1. Why Mono Doesn’t Suck…

    Excellent article on Linux Today, in response to their uneven treatment of Mono and their open call for articles showing good things about Mono by the ever-insightful Jo Shields: http://www2.apebox.org/wordpress/rants/124/.
    I imagine this will probably…

  2. Hi Jo. An excellent and well thought out response. I especially liked the last section; the gall of some non-contributors, trying to dictate how a developer should implement their own projects, has always irked me. The part about attitudes is also spot on, more lovers/doers and fewer haters please.

    [reply]

  3. Now here’s a fun one. My comments on Software Terrorism tie in to recent attacks on the ubuntu-devel-discuss mailing list, from a Moycott Movell supporter. The head of that site claims to have no idea who the nut is (http://boycottnovell.com/2009/06/01/banning-opposition-to-mono/#comment-66045). Now, quoting from last June (http://osdir.com/ml/linux.ubuntu.devel.discuss/2008-06/msg00049.html): “I’m clearly better informed about these issues having read boycottnovell and having discussed issues with Roy himself”

    Integrity, kiddies! Never leave home without it.

    [reply]

  4. Very well written. Thanks for the explanations you give. I personally believe that if the application is the best one for the task at hand, it should be used. I also fear the prohibition of software because it might have a connection to “Big Brother Microsoft”. I am a confirmed non-microsoft user, having used whatever I could after Windows 3.1. Those who know me, know well my attitude towards Microsoft, however, I do not believe good software is bad!

    [reply]

  5. Despite your well worded reply I feel it was not worth your time. A great many people (myself for one) really appreciate the work you do for Mono. You should not feel you need to defend your fine, work.

    Thanks for the work you do.

    [reply]

    David Nielsen Reply:

    @SpoodyGoon,

    Absolutely he shouldn’t have to, however the anti-Mono crowd has been setting the agenda and now if Jo like anyone else working to improve the Linux experience with a wider selection of good tools and applications are being attacked not just the technology, but the people which is unforgivable. It is like debating creationism, if you do debate them you validate their platform, if you don’t they get to set the agenda. You have the facts on your side and yet you are apt to losing out to ideology.

    There are striking similarities between the discovery institutes Wedge strategy and what the BN people are trying, at first it was all out removal of Mono – which is an ideoligically pure position. As they had no luck with that, they now advocate that Mono, while it might live up to the strict freedom requirements for inclusion in some distros and cannot be thrown out on those grounds, simply should be second class citizens because it’s a divisive subject. Note that does not advocate at all following through on the ideology but it accomplices the goal just the same, and they are the people making it a divisive subject.

    I am glad Jo is able and willing to stand up for his position, I wish he didn’t have to but it requires some passion and knowledge to do and most users do not possess these attributes in plenty to debate a toughed BN follower. But yes, I wish we lived in a world where Jo’s time didn’t have to be divided between defending his right to make Free Software better and actually doing so. Sadly I think the BN people are proud of creating such a situation for us all.

    [reply]

    Andrew M Reply:

    @SpoodyGoon, Actually, it was worth his time– or atleast mine.

    While I have not been pro mono, I have been suspicious of mono. This actually clears a lot up for me. Thank you very much for writing a well reasoned post. Seriously. As a Developer, I can see how foolish I have been to not see that mono to microsoft is really a lot like gnu c compiler to att’s (K&R )c compiler.

    My main questions now is can mono interpret ruby code?

    Again, thanks. This post will be printed out and posted in my office.

    Andrew McElroy

    [reply]

    directhex Reply:

    @Andrew M, Microsoft have a Free Software Ruby runtime for .NET, which is tested against Mono: http://wiki.github.com/ironruby/ironruby

    I can’t make any specific comments as to how well it works, as I have literally zero Ruby experience. But it appears to need Mono 2.2 or above (common for DLR-based languages)

    [reply]

    SpoodyGoon Reply:

    @Andrew M,
    I stand corrected, I must admit as in intermediate Linux user (4-5 years expedience) l get real frustrated with Linux snobs. When I started in Linux I had patient, persistent and kind people to help me, I feel if we are to support the adoption of Linux, or any open source product for that matter, we need the kind of people who helped me.

    Mono has been the same way for me, it has helped a Windows programmer contribute to cross platform programming when I might not have otherwise. It’s true there are many fine programming languages, IDEs and frameworks available but Mono has an instant familiar feel to it which makes life a lot easier.

    In short I take back what I said earlier, I was thinking about the ability to change the minds of the person who had started the discussion and not to people like Andrew.

    Thanks again for the hard work you do on Mono.

    [reply]

  6. I think that this response was required. We should remember there are a lot of people out there, free software newbyes, who don’t really know what is this about. Articles like this allow them to get perspective, and I think the problems mentioned about the ubuntu forums and mailing list are related to this.

    Well done.

    [reply]

  7. I’ve always been a believer in the best product available for the job and if an application built around MOno is it, then all the better.

    [reply]

  8. Thank you.

    [reply]

  9. *yawn* sorry for that.

    Gnome-shell is a joke. Hardcoded and non-usable, no because it’s alpha, but because it has a bad concept at it’s base.

    I recommend people to get away from Gnome and look into the next best thing, which is KDE.
    http://www.kde.org

    [reply]

    monomono Reply:

    @Dread Knight,
    Please stop this retarded nonsense.

    [reply]

    Dread Knight Reply:

    @monomono, nothing retarded about that fool. Anyway, you’re a joke as well since you’re scared to post any good arguments or at least your identity.

    [reply]

    Necos Reply:

    @Dread Knight: It’s not whether or not you need KDE or Gnome, and you should know this. There are some people (like myself) that don’t even bother with a DE (but use window managers instead). From that perspective, I’d say that both DEs are crap and we should go back to being simpler. However, we both know that’s not the case if either project wants to stay on Microsoft’s tail. So, if you don’t like Gnome, that’s perfectly fine. I personally use both GTK2 and KDE apps, but the DEs are never launched.

    Anyway, my point is: the freedom you have with Linux is the freedom of choice. So, let’s leave the trolling at home and get back to working on better solutions for Microsoft converts.

    [reply]

    Dread Knight Reply:

    @Necos, great reply :)
    DE’s make things more easier for non-geeks. I use a lot of GTK+ applications inside KDE because many of the KDE applications are fucking lame. I guess I’ll look more into kde-usability project and try to help out those applications be less lame.

    [reply]

  10. I’m sorry you had to waste your time writing this excellent piece instead of doing something more fun and useful, but thank you for doing so anyway. As one of the free software newbyes (certainly as far as licensing is concerned) I really appreciate an intelligent and intelligible essay on the inclusion of mono, especially after the bile that has appeared on the ubuntu-devel list recently.
    Tomboy and Gnome-Do are both excellent applications and I’d personally struggle without them these days.

    [reply]

  11. [...] | Responder Tags: mono gpl microsoft Mesmo não usando Mono esse post é interessante de ler [ http://www2.apebox.org/wordpress/rants/124/ ]. Acho a tecnologia fantástica. Antes de taxarmos-na de ‘tecnologia Microsoft’ [...]

  12. Really nice post, Jo. As a developer, I believe Mono is a good framework. More viable development options result in more apps and that is good for everybody. We have to stop this nonsense of “oh-my-god-if-it-relates-in-any-way-to-microsoft-I-don’t-want-it-near-me-or-my-kids”.

    [reply]

  13. The last Linux machine I ran was in 1994, and I hate to say it, but as much as your response was (for the most part) well-written and even-handed, it points out precisely the reason why every time I even have an inkling to take yet-another-look at Linux, I run away quickly:

    All the god-damned self-righteous assholes taking what was a cute student-project of an OS and turning it into a religious movement.

    We had free software in the 80s, kids. It didn’t require an Inquisition or capitalization, either.

    Hoopla, Mono — just about the *only* good thing I see in the Linux world.

    [reply]

    Mephistopholous Reply:

    @Keith J. Farmer, this sort of response is always bad form. What product can you use that doesn’t have this element among it’s user-base? If the “unwashed masses” of Linux supporters upset you so much, and you have found a better community, please share.

    This line of attack is just as bad as the people you are apparently upset about. If you don’t use Linux, that’s fine. But don’t blame it on some backwards elements of it’s community. There are plenty of Linux users with your perspective about Microsoft and other company’s products, and it does none of us any good to wax idiotic about the situation.

    If you have nothing of value to add, then simply thank the people you side with and convince them that their efforts are fruitful and appreciated. We’ve had these situations for much longer than the 80s, and acting like a child about it yourself simply doesn’t help.

    [reply]

    Keith J. Farmer Reply:

    @Mephistopholous: Your comments do nothing to change what I state, except that I see a need to bump “they need to read what is written, rather than fly off a random handle that was never there” a little higher in the list of things I wish the rest of the world would do better.

    Upset about “unwashed masses”? I’m not upset about them at all. They — the unwashed masses, not the washed masses — are sad wastes of flesh, but not my *problem*. They are yours to sort out. Linux’s, too, if it ever wishes to be seen as grown up by the other masses of the world washed or not, rather than stuck in a puberty well into its second decade. Consider this: if the only viable means to access a product (Linux, in this case) is to put up with the idiots who have commandeered its accessible user base, then by all means it’s justifiable to, as I put it, run away quickly and use a product surrounded by somewhat saner individuals. It is obvious that this isn’t a comment on the product, because you never get to the product to begin with. But it *is* a comment on whether that product can even be considered in the running.

    As for having these situations longer than the 80s? There was *never* a situation where the consumer was ever in a position to be the design committee without personal invitation (well, except from schisms in organized religions). Certainly never on this scale, and never this stupidly. The old battles were always “my beats your “, where was the finished product, and you never got to change ‘s attributes. Even the old Atari vs C64 debates were more civil, and we never got the opportunity to tell Jack & Co to remove BASIC from the ROM and ship us new (free) copies, because we were superstitious about patent infringements. This is a comparatively new phenomenon.

    This is actually why I have a side interest in monitoring Mono’s progress (ignoring Portable.NET). As I alluded to, it’s a proof-of-concept that Linux boxen don’t have to be tied to the rabidly unprofessional. But it’s still at a sub-critical level — the washed masses don’t have time or soap enough to clean house of their fellows — and I have an empire to run, after all.

    Until then, then being when both the actual and the vocal majorities are a bit more of the mindset that started the Mono project: no, you’ll have to do better than that.

    [reply]

    Mephistopholous Reply:

    @Keith J. Farmer, you misunderstand me – I was never disagreeing with your premise, but my original request stands: stop fanning the flames and lead by example.

    Just be thankful that your little corner of the universe doesn’t have to deal with these people. They can’t be dealt with very easily, and most of them are young and impressionable kids that don’t know any better. Someone is doing their best to deal with them so you don’t have to.

    Frankly, my experiences with trolls and rotten communities have been the same no matter where I go. Microsoft, Apple, and everywhere else I go, there are jerks and blowhards to deal with. This is the Internet, after all, not a college or university lab in the 1950s.

    If you want Linux to move in some direction, then lead by example. If you don’t care, then stop slinging your opinion around like it matters. The Mono team doesn’t need that kind of “support”. They have a tough enough time without you drawing more trolls to their blogs and forums.

    [reply]

    Keith J. Farmer Reply:

    @Mephistopholous,

    Actually, I don’t care to support Linux one way or the other. It was, and remains, and interesting *project*, but consumers out there are are interested in actual *products* (as I realized of myself in the mid/late-90s), which was part of our host’s original point in his response way-back, and a very different beast.

    For what it’s worth, if I had my druthers, I’d rather see QNX achieve better support, including Mono support. That’s an OS I could have fun with. Singularity, too, for many of the same reasons. However, as I have an empire to run, I must differentiate between “toy” and “tool”.

    [reply]

    Mark Bayes Reply:

    @Keith J. Farmer,

    This is a remarkable statement. I often view things in the same terms, but to opposite effect. If I want to play games, then I might use Windows, but if I need a tool to do real work, there’s Unix, Linux, BSD. Yes, those “projects” that are running millions of commercial machines. I suppose those consumers are not real consumers.

    I think your reference to the 90s was going in the right direction, but not far enough. You’re living in the 80s!

    [reply]

    Keith J. Farmer Reply:

    @Mark Bayes,

    No, actually, the work I do is indeed firmly rooted in the 21st century.

    [reply]

    Nathanael Nerode Reply:

    @Keith J. Farmer,
    Wow. Just wow. Well, a little research proved one thing: among programmers, only those paid by Microsoft say such utter nonsense about Linux. As a *paid Microsoft employee* (I checked your webpage), I understand that you are unable to say negative things about Microsoft.

    Here in the real world, Linux runs all advanced scientific computations (massively parallel programming), is the choice for security applications (the NSA), is the backbone of the majority of servers on the net, the choice for database servers, one of the two most popular choices for embedded systems (along with VxWorks), and pretty much the most common choice for any serious work whatsoever.

    Microsoft Windows has some interesting products produced *for* it, but the OS is a positive liability to those products. Windows is known for providing zombies for the Russian mob, and Microsoft is directly responsible for the existence of macro viruses and email viruses (which are impossible and do not exist — unless you use the special Microsoft products designed to enable them, namely Microsoft Office and Outlook). Further, the technically disastrous non-modularity enforced by Microsoft’s legal strategy to promote their monopoly has led to infinite defects. Even if they’re moving away from it, they’re still stuck with the relics.

    Try Linux — you’ll be surprised, if the last time you tried it was 1994. It’s changed more than Windows has since Windows 1.0; it’s very much a rock-solid product, underlying a lot of the turnkey systems sold by IBM to major enterprises, being one of the two most popular embedded OSes, the standard OS for web servers, the standard for the NSA and other secure operations, and the only system for advanced scientific computation (massively parallel). Try running Mono on it. It works better than .NET, already.

    [reply]

    Keith J. Farmer Reply:

    @Nathanael Nerode,

    Wow. Just wow. Your ability to research seems particularly lacking. I haven’t worked for Microsoft in over a year, and even before I worked for Microsoft, which only started in 2006, I had long converted *from* Linux. If you think that if ever a person was paid by Microsoft, then that person could not hold positions contrary to Microsoft, you’re rediculously .. I’d say naive but outright stupid would better account for much of what you just asserted.

    You want me to say something against Microsoft? Here’s one most of us will agree with: MSN’s a failure, and needs some serious re-thinking. Guess what — there are existing Microsoft employees who’d publically state as much and not get dinged at review time. Microsoft isn’t the sort of environment you’ve convinced yourself it is (with zero basis, obviously). Work there before talking about the relationship between the company and its employees and alums. Maybe you won’t make such mind-bogglingly asinine statements.

    For the record I learned C#, right when it was released, in a genomics shop. Aside from the database, it was also exclusively Microsoft, and for all the right reasons, rather than a Linux shop for all the political reasons. Before then, while working in a laser optics lab, we were also exclusively Windows (Win3, at the time). After the genomics shop, I was writing software to analyze calculus deposits of heart tissue, again on Windows. In fact, the only times I’ve ever seen Linux in any commercial use as been, well, as cheap VMs in a poorly-designed build system (all other systems being Windows), and never in any scientific venture. If companies wanted actual systems, they invariably went to either a real UNIX such as Solaris, or to Windows — and more often the latter.

    Remind me also to never trust anything you build. Your statements about security are false: Linux encountered its first virus in the mid-90s.

    Thank-you-very-much, but the “real world” doesn’t match your rather provicial view of it.

    [reply]

    Marcel Dionne Reply:

    @Keith J. Farmer, :
    >. As I alluded to, it’s a proof-of-concept that Linux boxen don’t have to be tied to the rabidly unprofessional.

    Listen you troll, your knowledge of free software and of Linux is akin to what Rosie Odonell know about fellatio.

    i work on 3 free software projects and there are developers working from Fortune 500 companies like Intel and IBM along with hobbyists and students.

    If I have to explain to you how deeply involved large corporations are in Linux, then you are obviously clueless but more likely a troll.

    I read this post on LinuxToday and still hasnt changed my mind as to why Mono is necessary or the NET infatuation/envy of some..
    Mono brings nothing better to the table to what we have now.

    And the two worse reasons Ive heard from the Mono camps are “why dont you attack Samba then?” even though Jeremy Allison, Bruce Perens and Glyn Moody have all written why its not comparable.

    As well as the ‘we can get more developers from Windows to FLOSS’ is another.
    Pahetic. We are all Windows developers at a certain point of our careers (maybe some younger college kids arent).
    Is there a drought of FLOSS developers?

    Demagogy works in both directions and its very easy to sidestep and avoid topics without a discussion.
    Those that dont believe wont change and cheerleader that do believe wont change either.

    And the F U atittudes and name calling are excactly the same in both camps but that;s FLOSS for you: we honour our leaders who insult others, call them masturbating monkeys like Linus or fundamentalists like Miguel because they dont agree with someone.
    What do you expect of the rest of a community when the leaders act like uncouth jackasses?

    BTW, I have no problems with non-free. I use Skype and Opera on Linux.
    I also used to work on KDE when QT was non-free and Miguel has his little hissy fit about the purity factor of KDE and he started Gnome as a result.
    So please let me laugh at loud at Miguel now that he is on the other side of this debate.
    ITS THE EXACT SAME THING.
    Think about it and enjoy the hypcrisy.
    Miguel was the BoycottNovell of his generation it seems.

    [reply]

    Keith J. Farmer Reply:

    @Marcel Dionne,

    Thank you for demonstrating my opinion precisely, especially with the gratuitous and tasteless jibe at lesbians. I can’t think of any more perfect example than what you provided.

    A job well done.

    [reply]

  14. Excellent article.

    Any chance of getting Novell to publish ubuntu builds ?

    Yes we can grab the source/build etc. But a novell build repository for Ubuntu would be nice.

    [reply]

  15. Thank you for writing this post, it’s one small step in preventing half-informed fanatics from posting half-truths and hurting a good and ambitious project.

    I switched from writing applications in Python (after one project became absolutely unmaintainable). I am now contributing to MonoDevelop as part of a summer of code project.

    For me, C# was an incredible breath of fresh air. A lot of people think of it as a copy of Java, but all those people have never used it. I was one of those people. It’s cleverly done, and a lot of it makes sense, coupled with a great standard library, I don’t see what’s the problem.

    I think that the mono community needs to find some way to end the FUD. A lot of fanatics who can only talk, and can never do, are almost hindering progress. I introduced many of my hardcore “C++ is evil, C is the only one” friends to C# and they’re converts.

    I feel that there needs to be a larger effort to combat these beliefs. A lot of developers can benefit from getting a clearer perspective of the ease and speed of development.

    Someone needs to build a portal which contains benchmarks, examples, and an introduction for both users and developers. While all the rabid anti-mono individuals religiously point to the “Boycott Novell” site (and we all know how valid those arguments are), there are only a handful of blog posts like out which attempts to reason out.

    People can keep their opinions and post them once in a while, but when those false opinions harm ambitious open source projects, you know that there’s something wrong.

    Thanks,
    Anirudh (antileet on #monodevelop)

    [reply]

  16. I think the problem many of us have with Mono will not go away, irrespective of what, or how much, you say.

    No one from MS has stood up and given any explanations of the status Mono has with regards to patent protection. Recent requests for details of such has been met with total silence.

    But even more than that, many, many “users” of Linux simply do not want Mono to be included by default in their distribution. The opinion of developers that Mono is great – as you say yourself – carries little or no weight with users.

    I do not like what Mono stands for or represents. I do not however think it should be banned or sent to the equivalent of developer hell. But like much else that is available to use on Linux it should be a positive decision by the user to install and use it, as is the case with Flash, Skype or many of the codecs etc. In short, Mono and apps that depend on it should be in Multiverse and not in Main.

    Fedora are moving that way and picking up users at Ubuntu’s expense.

    To re-phrase one of Steve Ballmer’s most famous quotes:

    “Mono is a cancer that attaches itself in an intellectual property sense to everything it touches.”

    [reply]

    directhex Reply:

    @The Open Sourcerer, Nothing helps support a fair and balanced viewpoint like comparing a project you don’t like to terminal illness.

    Ballmer is a prick for his statements, and guess what that means for yours?

    [reply]

    Corley Kinnane Reply:

    @directhex,
    Look I don’t know much about Mono, and frankly, on principle, I don’t really care. I will not use it because it is unnecessary to take such risks, as small as you may see them. I’m all for its inclusion – as long as people realise that without GNU zealots, many hard hitting truths about the future of software will not hit home and people may walk blindly into patent issues. This write-up is well thought out and my only criticism would be that it is trying to convince itself that its safe to move ahead, rather than outline possible risks cleary, however small.
    If things fall in a heap with Mono for whatever I reason I don’t presently understand – the application I choose for taking notes will be unaffected by any fallout.
    The people who write M$ instead of a more objective abbreviation like MS, are making a subjective statement akin to “Ballmer is a prick for his statements”
    When it comes down to it, Ballmer being a prick will make me choose to use a different platform even if it isn’t as mature yet in the same realm – something many here claim is a stupid thing has many good justifications in reality.
    All the best, I am sticking with Qt, since it has a future I can believe in.

    [reply]

    Flimm Reply:

    @The Open Sourcerer, what exactly does Mono stand for and represent anyway? It’s a framework, not a philosophical movement. It does not stand for Microsoft or Novell or oppression or slavery or anything. There are quite clear guidelines on what goes in main, universe, and multiverse, and controversy is not one of them.
    As for patent protection, Microsoft has never promised us patent protection for using the FAT file system either. One minute we accuse Microsoft because they provide patent protection (look, Novell is evil!), the next we accuse them because they don’t provide patent protection.
    I’m not a lawyer, but I really don’t understand how Mono is more dangerous than a lot of other patent encumbered (at worse) software, like ffmpeg and even the kernel.
    I end with a quote from the ffmpeg website (emphasis mine):
    Q: Can I be safe if I have paid my protection money.
    A: You can never be safe as long as your country recognizes software patents as valid. There are companies that own many patents, pay and cross-license for other companies patents, but even such companies are being found guilty of infringing some obscure little-known patent and end up paying millions for it. That’s why lobbying against software patents is in your own interest. Of course none of this is related to you using FFmpeg or another codec implementation. If you want to be safe the only option is not to touch any software at all.

    @directhex: what do you think of software like gnote?

    [reply]

    directhex Reply:

    @Flimm, I covered Gnote here: http://www2.apebox.org/wordpress/rants/93/

    Short version: technically impressive, but community-wise defective. And I’ll continue to express doubts over the long-term viability of the project until it gains a feature which is not a port from Tomboy (although actually implementing the other 66% of Tomboy’s add-ins, such as syncing support, would be a good step).

    Mackenzie’s interactions with the Gnote developer regarding corrupt dates was a clear demonstration of the bad faith with which the project was started, and that’s unfortunate – as it would have been easy to start work on a C++ port without the drama (remaining license-compatible, not asserting copyright over others’ files, and not marking any compatibility bugs with self-proclaimed 100%-compatible files as a WONTFIX).

    [reply]

    The Open Sourcerer Reply:

    @Flimm,

    I live in a country that, so far at least, hasn’t fallen prey to the stupidity that is Software Patents. Is Mono dangerous? Like what, Osama Bin-Laden, or crossing a busy road or eating that poisonous fish in Japan? I don’t really think Mono is “dangerous” because I can, and do, remove it. I am concerned that Mono might become hard or impossible to remove, and that is worrying. Read again what Jo says in the last point of the “Why it is not a threat” section above.

    I “feel” that it shouldn’t be used by default on my distro of choice. As Jo describes so well in the introduction, from a user’s perspective, Mono is not desirable. And I completely agree.

    [reply]

    Ketil Reply:

    @The Open Sourcerer,
    I’m a user, not a developer, and I want Tomboy, Banshee and Gnome Do. I could care less if it uses C#, C or Python, as long at it does its job as a best in class app.

    This is a great article, keep up the good work! The Mono haters will soon go away when they get a new hate child. It won’t take long, mobs are easily distracted.

    [reply]

    boldingd Reply:

    @Ketil, ditto ditto. The article’s point is well made: mono itself brings nothing to the desktop: it’s the useful applications that use mono that are important. And there several of those. If Mono makes it easy to create killer apps, then it’s a good thing, end of story (more or less).

    [reply]

    s73v3r Reply:

    @The Open Sourcerer, From a user’s perspective, Python and Java are not desirable either. All the user cares about are the apps, and the best apps should be included, no matter what they run on.

    [reply]

    The Open Sourcerer Reply:

    @s73v3r,

    That is your opinion. Mine is different. You can’t just say “best”. To me best obviously means something different.

    [reply]

    tracker1 Reply:

    @The Open Sourcerer, So, I’m guessing you rip out support for fat/fat32 file systems and samba/cifs as well?

    [reply]

  17. Excellent work. Thank you for the time you put into this. This is truly a great contribution to the FOSS world!

    [reply]

  18. Very well written and balanced post Jo.
    Too bad, those bunch of idiots from anti mono camp did the name calling on you without ever interacting with you personally or being part of the developer community that puts so much hard work to make Ubuntu a good distribution.

    This was a much needed response for the false accusations we have seen on the mailing list.

    [reply]

  19. Almost reminds me of when KDE come out using the Qt toolkit, it was free to use to develop open source apps, but people (excuse language) bitched and moaned about the charging side for commercial apps. Then GNU got Gnome.

    This is a double edged sword. We could go (by some people’s opinion) one better. But seriously when is someone going to produce solid evidence on the matter?

    NB: I program C# in Windows, but have chosen python + Qt for Linux. And from what I’ve read, it sounds like more fun to do too!

    [reply]

    Miguel de Icaza Reply:

    @TGM,

    The problem was not that Qt charged for commercial apps (that was stage #2).

    The problem was that Qt was proprietary software initially, and there were a number of ways of dealing with this: reimplementing Qt from scratch, or building an alternative desktop built on a free toolkit.

    Both efforts were launched, one was Gnome (to implement a desktop on Gtk+) and the other one was called Harmony which was an LGPL implementation from scratch of Qt.

    Qt then changed their license from proprietary to dual licensed GPL/commercial, and that is what made KDE an open source project.

    [reply]

  20. An excellent and well thought out reply. Keep it up!

    [reply]

  21. A few days back, I posted an article on our blog – About the many reasons why we moved from Mono to the JVM http://blog.agilehead.com/content/from-c-on-mono-to-clojure-on-the-jvm/ ; The summary is that unless Microsoft decided to relinquish .Net patents unconditionally, the platform will not have much of a future outside Windows.

    In our specific case, we moved to Clojure on the JVM. While using clojure isn’t something many people will adopt, it is important to see that the JVM is finally becoming more than a Java VM.

    [reply]

    Nathanael Nerode Reply:

    @Jeswin P,
    Y’know, there’s some things people miss about patent threats.

    (1) Software patents have been recognized as a serious economic problem by the ‘big boys’, as a threat to workload by the US patent office, and as a threat to their legitimacy by judges. The current legal cases may destroy them entirely.

    (2) Patents *expire*. (Within reasonable amounts of time. Unlike copyright, thanks to some very idiotic legislatures and courts.) Unless C# is repeatedly changed (and languages change slowly), in less than 20 years there will simply be no such patents left of any sort. If it survives that long, then it has a future. In fact, since .NET has been around for 8 years, the youngest patents have to be 8 years old; with 20-year expirations, this means 12 years to patent freedom. I know attempts are made to dishonestly extend patents, but those routinely fail, already.

    (3) If C# actually has technical advantages — and some people say it does — then those will be retained either in C# or in a future descendant of C#. This will mean that the platform will be kept alive long enough to outlast the patents.

    So regardless of what Microsoft does, the platform may well have a future. If your only fears are patents, delay is the friend of Mono, and there have been no patent attacks yet. If any *copyright* issues come up, I would flee as far and as fast as I could.

    [reply]

  22. [...] First the developer. [...]

  23. Why Mono doesn’t suck…

    Thank you for submitting this cool story – Trackback from progg.ru…

  24. We can use libwine to develop native apps for linux,
    We can use mono to develop native apps for linux,
    We can use gcj(java) to develop native apps for linux, but why users unlike these apps?

    [reply]

  25. As long as Mono gives better applications for Linux, supporting Mono means supporting Linux, and boycotting Mono is boycotting Linux. In all respect GPL Mono is at least as free as any GPL application/library, even more than others because if implements a standard (not some evil standard, simply a standard), and is not more patent threatened than lots of applications out there (maybe even less than a few key ones).

    Time for some people to stop spreading the FUD, the FOSS community has no reason to fear Microsoft or patents at all (recognize patents for what they are: yes, fear them: no).

    The FOSS community wanted Microsoft to use standards and standardize their technologies since the day they called themselves a community, and they cried out loud for years about it, and now when Microsoft embraced standardization, they cry about Microsoft standards. What were you expecting? that Microsoft, the largest software company in the world would not produce any kind of standards, but instead only use existing ones produced by OS or other companies ? Well I’m sorry that’s never gonna happen in “our world”.

    If you don’t want to support a Microsoft standard give some technical reasons not ideological ones. For example it’s easy to dismiss OOXML as a standard based on technical merits, but the same is not true for CLR (Common language runtime (.Net)). The CLR has many technical merits that make it a desirable technology, and lots of merits that make it stand out when compared to similar technologies like Java. I’m not going to make a list or try to enumerate them here, all this info is just a search away, and there are plenty of articles and resources out there for those that are interested.

    I’m not a Linux fanboy nor am I a Microsoft one, I’m simply a passionate developer that loves writing software. I also have a foot in the Microsoft closed source camp and one in the OSS world. For me Mono is a great window to Linux, a great place to innovate on, both on Linux and Windows, and a open technology with lot’s of potential, potential that closed source Microsoft .Net will never have.

    For what it’s worth, the FOSS community should be proud of Mono, instead of bashing it.

    [reply]

  26. “as long as vague threats of legal attacks are manufactured and fuelled by certain members of the community.”

    Persecution complex aside, Mono serves no useful purpose to anyone other than Microsoft. It is politics rather than technology in its very conception. Special pleading for it to be judged only as yet another bytecoded language is disingenuous at best.

    Mono supporters need to stop being useful idiots for a powerful opponent of free software.

    [reply]

    directhex Reply:

    @Rob Myers, So your solution is to be an opponent of Free Software?

    [reply]

    Stifu Reply:

    @Rob Myers, “Persecution complex aside, Mono serves no useful purpose to anyone other than Microsoft.”
    I’m not Microsoft, yet Mono serves my own purposes (which may not be “useful” to you, but I guess the same can be said for yours to me).

    [reply]

    boldingd Reply:

    @Rob Myers, Mono definitely serves a useful purpose. There’s a reason SWING was developed, and there’s a reason that Microsoft developed C# for windows (and that it became so popular). Development of GUI apps is just much easier with an object-oriented language (and a decent object-oriented GUI toolkit), and C++ has numerous flaws (of varying magnitude) that prevent it from being widely adopted. Hence, C# is a great developer-sanity-saver.
    I’m presently using C and GTK at my job now, and I have to say: this post just might make a mono convert out of me. C/GTK is great, but I’ve dabbled in SWT/Java, and if I can make GTK/Linux apps that easily… then hell yes. :) (And yes, I do know about Vala, but Mono/C#/GTK# is available, with a large library and feature set and lots of existing development work, right now.)

    [reply]

    William Lahti Reply:

    @Rob Myers,

    Mono has been incredibly useful for me. I am an actual developer, and I bet that either you do not do much programming or you have entirely ignored the technical merits of Mono because of your political beliefs. Don’t paint your opinion on me, because I picked Mono over java, python, ruby, etc because it is technically superior.

    Mono has absolutely nothing to do with politics, and everything to do with compatibility. Do you think the FOSS Flash player projects have no purpose? Should we have bothered pumping code into gcj (Java) before it was open sourced?

    From what I see, the only reason *Mono* is useless (in your mind) and the GNU Java compiler is not, is because .NET comes from Microsoft and Java comes from Sun Microsystems.

    [reply]

    Mark Bayes Reply:

    @William Lahti,

    You know, that may be what he meant by “a powerful opponent of free software.”

    The point was made in the reply that the usefulness to the developer is meaningless to the end user. The struggle is between a desire to avoid giving any additional leverage to Microsoft and a desire to have have better programs. I don’t see a note taking program as worth any sacrifice. Others would disagree. Making it an optional install would be an ideal solution.

    [reply]

    Jonathan Camilleri Reply:

    @Mark Bayes, Personally I think that all this debate and such is stupid. Don’t like it? Don’t use it. If you’re a company and your product is being outdone by another one? If you want to waste your money do it on improvements not on lawsuits. After all action speaks more loudly than words.

    [reply]

  27. “Mono serves no useful purpose to anyone other than Microsoft”

    That statement is only true if mono, as a framework, brings nothing new to the table. You are presuming it has no technical merit above and beyond that found in ruby, python, perl, java what have you. Is this what you are claiming? If so, could you provide specifics? I don’t want to write a long response refuting your statement if I have just misunderstood the point you were making.

    [reply]

  28. Thank you for your contribution to the discussion. I develop Linux-based applications, some with Mono, and I find the anti-Mono calls disturbing and antithetical to the ideals of not only free software but also rational discourse.

    I wrote my viewpoint (which I think is rational and level-headed) about anti-Mono FUD here: http://jupitercolony.com/viewtopic.php?f=3&t=919

    To your arguments, I would add this: Mono is eight years old–eight years with no patent litigation or serious threat from Microsoft or anybody else. By now, the anti-Mono movement should consider whether it is “moving the goalpost” by continuing to cry wolf about patent threats.

    Also, I challenge those against Mono to ask themselves how their concerns differ from those of other conspiracy theorists: vague, unprovable assertions of danger; implications that we are playing right into some powerful overlord’s trap; reluctance to acknowledge good outcomes brought about by “the enemy”; and so forth. It is my view that the anti-Mono movement is bordering on a conspiracy-theory mentality.

    [reply]

  29. Actually, that’s not the point at all. Lets assume mono does not offer anything special and is directly comparable to ruby, python, perl and java and has no ‘extra’ features. Why would you remove the choice to use an equal langauge? I think perl brings nothing that ruby doesn’t have, so should we nuke perl? What justification can you provide that the removal of developer choice is a good thing?

    [reply]

  30. After I saw the Ubuntu mailing-list disaster for the Anti-Mono propagandists, I started watching BoycottNovell to see how they’d respond.

    I find it telling of Roy Schestowitz’s true character that he is actually stepping up his Mono smear campaign. Already today he’s posted 2 attacks on Mono.

    One claiming that Banshee and Tomboy depend on Windows.Forms and another that resurrects an old thread from 2004 against Mono.

    <sarcasm>Yea, this guy clearly isn’t an asshole</sarcasm>

    [reply]

  31. [...] If we agree on using them, why wouldn’t we agree on using Mono? btw: Jo has just published another article giving further arguments for [...]

  32. [...] those who haven’t been following closely, the explanation behind Jo Shields’ recent post instructing us on the greatness of Mono and the Microsoft .NET approach to software development [...]

  33. Amen. Unless you’re willing to contribute time or money, you can offer suggestions that may or may not be binned unread. You get what you pay for and you can pay me with your time. Anything else pisses off the devteam.

    Furthermore, vague threats of patent retribution against users are ridiculous. If something is found to be infringing, then the infringing bit is removed. Done.

    [reply]

  34. http://holmwood.id.au/~lindsay/wakanai/balmer.jpg

    [reply]

    directhex Reply:

    @Balmer, Not sweaty enough.

    [reply]

  35. Looking at the pingbacks… Robert should stop inventing numbers. Adding onto a bootstrapped chroot, with gnome-desktop-environment –with-recommends installed:

    Tomboy:
    Need to get 9426kB/16.2MB of archives. After unpacking 39.7MB will be used.

    Big? Yes. Bigger than Gnote? Yes. As large as suggested, given the multi-hundred-meg (if not gig, it’s been a long time) install? No. What’s the difference?

    Gnote:
    Need to get 2475kB/9444kB of archives. After unpacking 25.0MB will be used.

    And for some of us, the ability to sync notes between multiple machines is a positive feature (and a missing feature from Gnote).

    [reply]

    Robert Millan Reply:

    @directhex, I took the numbers from Lenny. I just noticed your post by chance, and I have just corrected it. Next time you notice me making a mistake, if you just tell me instead of accusing me of inventing numbers, perhaps I can fix it sooner.

    [reply]

    directhex Reply:

    @Robert Millan, I notice your correction does not inform people that even the 40 meg figure is designed to mislead your readers – you are arguing over the 15 meg gap between Gnote and Tomboy. Or, should I say, 10 meg in current pkg-cli-apps SVN. With 3 times the l10n and 3 times the extensions.

    [reply]

  36. Where does the “anti-mono idiots are not open-source developers” statement comes from? I am an active open-source developer and most other anti-mono people I know are too. One very strong argument against Mono:

    C# specification is driven by Microsoft, the open-source community is follower and not leader.

    More details here: http://jekos-zen.blogspot.com/2009/06/little-contribution-to-monoc-debate.html

    [reply]

    Stifu Reply:

    @jeko, And Java is driven by Sun (Oracle now), how is that any different? Not that you specifically mentioned Java, but Java isn’t a FUD target like Mono is although it’s not all that different. Or are you anti-Java too?

    And by using C# (as mentioned in your article), aren’t you doing the opposite of what you preach? You don’t *have to* use C# if it’s all that evil, you can turn down jobs or look elswhere.

    [reply]

    Miguel de Icaza Reply:

    @jeko,

    Actually, anyone can contribute to the C# language specification as it is an ISO standard.

    There are two ways of contributing:
    * If you are an ECMA member (non-profit organizations get there for free, like the GNOME foundation) you can join the group.
    * Through your national body, ask to become part of the ISO/IEC 23270:2003 group.

    Miguel.

    [reply]

    William Lahti Reply:

    @jeko,

    I’m with @Stifu here. If you feel that you like to develop with platforms which are driven solely by the currents of the FOSS community, then use that. But don’t go stepping on MY toes to develop applications/libraries for the bytecode interpreter of MY choice, which is (by all accounts– I hate Java to the core and no other VM-based language has what I want) Mono and the CLR.

    You don’t see me running around telling you that your favorite language should be blackballed from all open operating systems.

    [reply]

  37. [...] may have come through the pipes already, but I haven't seen it so passing along http://www2.apebox.org/wordpress/rants/124/ [...]

  38. I use Gnome Do, F-Spot, Tomboy, and Banshee daily. Without them, I don’t know if I’d use Gnome at all. None of the C/C++/Python/etc alternatives I’ve tried have been nearly as nice.

    Thank you so much for this post. I face Mono FUD every time I mention any of the products above. In my life Mono has only ever been an extremely positive force, and I can’t imagine its any more of a patent risk than every other piece of free software. Hell I “illegally” use ffmpeg every day, and I would guess most Mono haters do as well. Not sure why they aren’t scared of patents in one case (ffmpeg) where there have already been legal threats, and quaking in their boots over Mono which as you stated is just implementing an international standard.

    (FWIW I’m a Python web developer who has been using Debian & Ubuntu as my sole OS for a few years now.)

    Thanks for your hard work on Mono! Its definitely *very* appreciated!

    [reply]

    Mark Bayes Reply:

    @Michael Schurter (schmichael),
    Two words: Default install

    [reply]

  39. “No one from MS has stood up and given any explanations of the status Mono has with regards to patent protection. Recent requests for details of such has been met with total silence.”

    This is incorrect. Tony Goodhew, Microsoft C# product manager,says :

    Goodhew: I might point out that we’re taking a true open standards approach with ECMA. When and if ECMA actually arrives at a standard for C# and a common language infrastructure, the result will be available under ECMA’s copyright and licensing policies, which are truly open. Any customer, and any person, will be able to license the ECMA C# standard, subset it, superset it, and they won’t have to pay royalties. They’ll be able take it and go implement it on any platform or any device. We fully expect people to do that. That is something fundamentally different from our competitors who wandered around the standards bodies, looking for someone to rubber-stamp their proprietary languages.

    Link is :
    http://windowsdevcenter.com/pub/a/oreilly/windows/news/hejlsberg_0800.html

    [reply]

  40. Most excellent post. I think the bullet point starting with “Mono implements an international standard” is epic, and pretty much sums up everything.

    [reply]

  41. Very interesting article. I have been more swayed by the anti-mono arguments lately mainly because no-one was standing up for the other side. The optimist in me wants to believe that mono is ok but I just don’t trust Microsoft. If it’s true that we don’t have to trust them to use Mono then that’s great! :)

    Is Python not a viable alternative? I know you said it was slow, but things can be sped up.

    [reply]

    Ketil Reply:

    @Steve Riddett, I have had the feeling that anti Mono sentiment has been brewing a lot lately, because I see so much of this Mono bashing. The opponents are just so extremely vocal these days. Like you are saying, you rarely see the other side. It’s all just “ZOMG! A conspiracy! M$ is trying to crush us.”
    I have a feeling that many of these very vocal people are pretty new to the GNU/Linux thing, and have gotten as evangelic as could be expected. This is typical of any movement for change (whether political, religious, social or technology): the last people aboard is usually the “truest supporters” in the vaguest sense of the word “true”.
    (Yes, I’m generalizing, and yes, there are old grumpy tinfoil hat people who have been using GNU/Linux for a long time joing in the Mono hate as well. I’m just expressing views based on my own anecdotal evidence.)

    All these people who claim Microsoft made the standard should maybe open themselves up to the possibility that Microsoft is trying to:
    a) Provide a decent platform for developers to learn, so that they can have a pick of great coders that have skills MS actually needs
    b) They saw a need for a framework that fitted their needs, and provided their solution

    [reply]

  42. I’m a Java developer, but I think Mono is the better choice concerning to the linux community. It’s there own project for a managed code framework. Java has always been an add-on for linux as on every other platform.

    Very nice statement!

    [reply]

    Markus Reply:

    @Kaspal,

    For me Mono is the bigger add-on but this is very subjective.
    Also with OpenJDK there is a runtime environment for Java which is bundled with Linux distributions.
    But after all these things should stay add-ons although at the moment they are not.
    In a few years we will have a dozen “runtime environments” to install just to get the “OS” installed.
    First there is a shell, then some guys don’t know how to script some things in a compatible fashion in the shell and used perl.
    So perl got a requirement.
    A few years back, there comes up python. A wonderful syntax, easier development as with perl and bang, the next requirement.
    Ruby is on the way.
    Mono is in because someone thinks the “Desktop” “needs” some cool program which needs Mono.
    Come on guys, stop this shit, make it optional and everyone will be happy!!!

    [reply]

    William Lahti Reply:

    @Markus,

    This is a good point, but it’s unlikely anything can be done about it, unless you want to grep your HDD for all the perl, python scripts, convert them to BASH, then find the mono apps, get the source / decompile them, convert them to C yourself.

    Maybe one day we’ll find a way to have a more unified VM framework which would allow the various VMs to share code of some variety but hell will probably be frozen over by then.

    [reply]

    Broken Byte Reply:

    “Mono is in because someone thinks the “Desktop” “needs” some cool program which needs Mono.
    Come on guys, stop this shit, make it optional and everyone will be happy!!!”
    Sorry Guy, but you are wrong. When the distro is focused on satisfy the needs of the desktop user, “make it optional” is not a option. The distro must study and research the needs of the users and give them solutions for his problems. So, if the distro’s developers gets the conclusion that Banshee is more usable than Rhythmbox, they should ship their distribution with Banshee and configure it to have more integrity with the rest of the OS.

    [reply]

  43. excellent, well reasoned response.

    [reply]

  44. Awesome article! Well said and well supported.

    [reply]

  45. Linux on the desktop sucks balls.

    [reply]

    directhex Reply:

    @DopeyJOe, Except that it really doesn’t.

    [reply]

    The_Assimilator Reply:

    @directhex, Except that it actually does. See http://linuxhaters.blogspot.com for why.

    [reply]

    directhex Reply:

    @The_Assimilator, Erm… yeah… I don’t really take that cute little blog as evidence of anything.

    [reply]

    mmm.... Reply:

    @directhex,

    Actually, LH has many interesting points (while others are just crap). Anyway, it doesn’t matter, I can use Mono on Windows.

    [reply]

  46. Wow! Great view! I really think that some Mono apps are better than others, they are in their own class like “Banshee” “F-Spot” and of course “Tomboy”.

    [reply]

  47. Actually, I am someone who was not fond of Mono or VMs in general. Now, I’m just not fond of VMs. Thanks!

    [reply]

  48. Someone else who sees the die hard FLOSS zealot bull for what it is. So many of them throw around the word freedom without understanding what freedom is – they’re all for freedom so long as you don’t disagree with them… News flash, freedom is about the ability to CHOOSE, and if I CHOOSE to use a open system based on a closed one, or GOD FORBID a closed one, that’s my choice.

    Freedom means you may just have to tolerate things you don’t like. Closed source falls into that category.

    When organizations like the FSF talk about ‘freedoms’ and then have members make endless rants about how closed source needs to be ‘stamped out’, load down all of their allegedly ‘free as in freedom’ with ambiguous loopholes in contract law for the sole purpose of circumventing other existing laws and in many cases try to restrict what you can use something that is given away (free as in beer) for – well, does the term ‘snake oil’ ring a bell.

    But what does one expect from a social movement started over the sour grapes of someone who didn’t get a kick-back from code he gave away when it was used in an a commercially successful product. Hey stupid, you [b]gave it away![/b] (worth noting said individual has never actually seen commercial success)

    [reply]

    Joshua Simmons Reply:

    @Jason Knight,

    Yes!

    Personally I’m amazed there isn’t an OpenLanguage project in action where everything developed with it must be released under GPL v3. Hopefully somebody doesn’t see this and start working on one, but hey if they did best of luck to them. If they want to do that, well that’s their choice.

    [reply]

    directhex Reply:

    @Joshua Simmons, Actually, that’s the reason why the FSF recommend that people release libraries under the GPL (instead of LGPL or other more liberal license) – because it forces the app’s license

    [reply]

    Ghostshaw Reply:

    @directhex, actually as long as there is only static linkage to the library apps using it do not need to be published under GPL according to GPL itself (if your statement where true, no closed source apps could exist on linux, since everything eventually comes from the kernel libraries which are all GPL).

    [reply]

    Ed Ropple Reply:

    @Ghostshaw, unless you believe Stallman, who is firmly of the opinion that dynamic linking counts.

    But he’s out of his tree anyway though.

    [reply]

    kanato Reply:

    @Ghostshaw, static or dynamic linkage with GPL requires publication under GPL. The license for the Linux kernel is GPL with a special exception for anything that’s an application, because an application using the kernel is considered ‘normal use’ and not extending.

    [reply]

  49. Excellent write up.

    [reply]

  50. I don’t have any more problem with Mono than I did with Java before it was free. I do think distributions should respect the philosophical concerns of their users and not force software onto their hardware that they find objectionable. Leave it as an option but don’t make it the default.

    [reply]

  51. Good logical argument from reason. +1

    [reply]

  52. I enjoyed this, and totally agree. These are (mostly) the reasons I have used in the past to fight off ignorant anti-MS mobs who manage to sustain attention long enough to realize that Microsoft -> .NET, .NET -> Mono, Mono -> Linux, before they start freaking out and decide to go troll the community.

    A few comments here talk about how the other side of the argument (the *for* Mono or whatever argument) is heard so rarely. This is because we are busy writing code, not writing FUD for why Mono should be included in all the distributions. This blog post shows perfectly my own view: if there is a great open application written in Mono, and there are no superior alternatives, we should include the Mono one. Otherwise, include the BEST one!

    Developers will write code in whatever damn well pleases them. Want to simplify this flame war? Ignore ALL backseat drivers, find the informed opinions, and you’ll see exactly why Mono is not blacklisted, why Mono IS included in all the repos, and why (just today) Debian apparently decided to include Mono out of the box, to support Tomboy.

    [reply]

  53. Fuck mono, parrot will probably end up replacing that piece of shit.

    [reply]

    Stifu Reply:

    @anon, I’m glad my life doesn’t suck so badly that I’d spend time posting on sites that are about things I don’t like. Like, I’m not a big fan of Java, but I wouldn’t think of going to Java sites to tell them Java is a piece of shit, because it’s counter productive and I’d rather spend my time on things I like.

    Do you guys have, like, a list of things you hate, then Google each of them to spread the hate?

    [reply]

    kanato Reply:

    @Stifu, No kidding!

    [reply]

    William Lahti Reply:

    @anon,

    (see parent for context) Fuck Parrot, Mono will probably replace that piece of shit.

    [reply]

  54. This is one of the most well-written articles about mono that I never read. Tanks for taking your time writing it. I hope that Boycott Novell have a reasonable response about this.

    The Linux and Free Software defenders can’t just blame one technology just because is from Microsoft. There are a lot of FOSS that are influenced by Microsoft and Apple technologies (the designs of KDE and GNOME are a great example)

    [reply]

    directhex Reply:

    @Broken Byte, Nope, I’m being accused of “criminal smears” or somesuch. You expected “reasonable”? REALLY?

    http://www2.apebox.org/wordpress/rants/124/#comment-979 gives a couple of examples of their commenters’ calls for death to Microsoft employees, and http://www2.apebox.org/wordpress/rants/124/#comment-873 for the link between the abusive people on ubuntu-devel-discuss and Boycott Novell. So… unless he’s talking shit, I’m not sure what Roy’s claims against me actually are.

    [reply]

  55. “There are other, better applications that could be included” – Name them.

    I have no use for either note-taking apps or photo-tagging apps.
    But I’d like to see the following applications preinstalled on any Linux distro I use:
    Audacity
    Avidemux
    Gufw
    Liferea
    Gdmap
    Leafpad
    Nautilus Actions
    ImageMagick
    HTTPripper
    Privoxy
    Agave
    Gwget
    Baltazar
    Gcolor2
    xautomation

    … and some others, the list is too long.

    I think the space gained by not preinstalling the Mono runtime and those two apps would be helpful in helping achieve at least some of this.

    [reply]

    William Lahti Reply:

    @Toshio,

    You hit it right on the head by saying your list is too long.

    And removing Mono + Tomboy won’t add enough space for all that stuff. Audacity is only useful to people doing recording/mixing (including myself, btw), while Tomboy is far more generally useful to many people.

    [reply]

    directhex Reply:

    @Toshio, So release Toshiobuntu to achieve that goal – if the Desktop Team have determined that a note-taking app is important, then that’s their call. Clearly this list isn’t appropriate for everyone (even though I like some of the things on the list, such as Avidemux).

    It’s worth noting, however, that if an RSS aggregator were deemed something to include, Lifera is definitely a good choice (compared to, say, Mono-based Blam)

    [reply]

    gotunandan Reply:

    @directhex,

    Yes, Liferea is excellent, just started using it a month back and loved it :)

    Oh, and thanks a million for writing this, helped me clear my head and all those doubts I had about Mono !

    [reply]

  56. I don’t use GNOME (or any Mono-based applications) but your article clearly has substance so thanks for taking time to write it. But I think you didn’t touch on an aspect that, I believe, fuels much of the debate around the whole Novell-Microsoft-Mono-etc issue: Microsoft’s (with a long anti-competitive record) widely publicized patent threats against (GNU/?) Linux and actually substantiating one such threat by going against TomTom’s use of the FAT32 implementation in the Linux kernel which goes to say that it doesn’t have to happen on a “patent world war” scale but it certainly can and does happen.

    [reply]

    Jonathan Dickinson Reply:

    @A passer by., Nobody can disagree with you. Microsoft has reared it (very ugly) patent head in the past.

    Considering what happened with the Microsoft JVM (yes, one existed) and how Sun slammed them with patent infringements I would:
    - Be more concerned about Java
    - Have more trust in Microsoft because they know what thats like.

    Not-withstanding the fact that it is a ECMA standard, and that Microsoft published the legally binding community promise.

    Mono FTW. IMHO Linux – Juvenile = Mono. It is the one part of Linux I can actually bring myself to use, because I am guaranteed that someone who doesnt go rampant spreading FUD wrote the lines of code behind the compiler. And by all means he probably didnt have acne either.

    [reply]

  57. Well thought out piece Jo, a pleasure to read.

    David

    [reply]

  58. I think Parrot is a better alternative to Mono.

    Mono is patent encumbered software and Microsoft sooner or later will react against it, they don’t like Open Source to build outside Windows, if you think they do you are just being too naive. I’m sure they are just waiting for Mono to grow more so they can attack it on the right time to produce massive loses.

    Parrot is a much better alternative and much better technology anyway.

    http://www.parrot.org/

    [reply]

    directhex Reply:

    @anon, So write competing apps which target Parrot as their framework. Don’t tell Free Software developers how you permit them to use their time.

    [reply]

  59. [...] Jo Shields eloquently and more calmly than the situation really calls for explains why Mono isn&#821… by raining MSFT-dependence and a hail of lawyers down upon our heads. I admire people with this [...]

  60. An absolutely great post!

    Including Banshee as the default “music manager/player” (totem would still be there) in Ubuntu was brought up in a blueprint here:

    https://blueprints.launchpad.net/ubuntu/+spec/desktop-karmic-default-media-player-choice

    The blueprint has since been approved, but when it was first proposed all hell broke loose. People were complaining about this and that and how mono did open source a GREAT disservice. Laughable, I know. To be fair though, I have noticed that a very small subset of programmers actually complained. It was those overzealous users who equated anything even remotely related to Microsoft as being inherently evil that did the most complaining. I have a feeling that the very people you mentioned that called for the deaths of Microsoft employees and whatnot were these people.

    As such, while this post is reaching out to us programmers and specifically to those who think mono is evil, I feel that it does very little to rid the mono hate. It would have been a lot more educational if it was aimed at the users who hate mono. Not us programmers. Most of us are pretty rational, I would think, and recognize “good” technology when we see it.

    Other than that, again, great post. ^_^

    [reply]

    directhex Reply:

    @Aleks, I was absolutely trying to reach out to the moderates, not the extremists. Like an Obama with smaller ears.

    And a couple of examples of the “death to Microsoft” people:
    http://boycottnovell.com/2009/06/09/mono-critique-for-ubuntu/#comment-65907
    http://boycottnovell.com/2009/01/21/death-by-microsoft-windows/#comment-58764

    There are more, of course, but I don’t have the energy to do a search for site:boycottnovell.com $METHOD_OF_DEATH for every imaginable killing strategy

    [reply]

  61. Do you remember why Perl was so popular? It embraced what made Unix, *Unix*. Nigh anything that can be done in C can be done in Perl, to the point where I’ve never needed my own XS stuff, although I have had to bring in syscall.ph.

    Anyway, what does Mono *stand for*? Java done a bit better? Last year’s C# and .NET enhancements, real soon now? (Silverlight 1 is finally ready, I guess?) A language with GNOME awkwardly bolted onto the side, with no documentation for the bindings and only vague similarity to the C versions of the library? (GConf, I’m lookin’ at you, as one among many.) Everything that makes Windows *Windows*? (There seem to be convenient APIs for getting to %APPDATA%, even if it’s remote or roaming, but no special support for $HOME.)

    As far as languages go, C# 2.0 is not too horribly awful. But Mono is in a weird place. It doesn’t feel like it’s at home in the Free software world. I suspect that two things have kept it alive: that it’s an alternative to Java, since we don’t have much else at that level between C and scripting. (D, last I knew, was neither Free nor easy to get running.) And the other thing is its Microsoft compatibility, which is probably important to some, but taints it for others. In other words, Mono has survived because everything else in its niche is just as bad, for one reason or another.

    If Mono is to *win* in its space, it needs to have a *compelling* advantage. Does it perform 5x better than Java? Have better cross-platform support? (Is GTK# on Windows a single .msi, or must you download a handful of dependencies like last time I installed Python+GTK on a Windows machine?) Is it more fun to program in? Does it let you leverage the power of Unix if you want to write a Unix-only app, or does it wall you off from your real OS?

    Even if you have a couple of best-of-breed apps, if they’re all that ever materializes, you’ll eventually see the Mono bits as junk you’re forced to carry around on the install CD because some silly programmer wrote those apps in a funny language years ago.

    I’m deeply ambivalent about Mono. Nice project, but I still feel like there ought to be something better… even if I have no idea what that would be.

    [reply]

    William Lahti Reply:

    @sapphirecat,

    As well thought out as this is, and I agree that the CLR standards could be far more platform-agnostic, I just think it’s funny that you would think of C# 2.0 as being “not too horribly awful”, in contrast with C# 1.0. You do know that all 2.0 adds is generics and some new APIs right? :-)

    Does it perform 5x better than Java?!? Do you know how ridiculous of a request that is?

    I can attest, as I have written software in both Java and C#, that yes, C# is ffaarrr more fun to program in.

    [reply]

    Stifu Reply:

    @William Lahti, actually, performing 5x better than Java isn’t that much of a dream, in a way, by using the Mono.Simd class. That’s one of things I’d count as a “compelling advantage”.
    By the way, this just shows performance benchmarks, although interesting, should be taken with a grain of salt, as they don’t account for such possibilities.

    [reply]

    sapphirecat Reply:

    @William Lahti, Yes, actually, I do. That’s what would make it a *compelling* advantage. If Mono were 5-10% faster, that wouldn’t weigh very much.

    The improvements made for C# 2.0 to delegate handling and the generics were incredibly useful features, that make me glad Mono has a 2.0 compiler. But even so, it’s not the pinnacle of language evolution. I don’t think any current language really offers that. And you can probably tell I’m fairly close to Steve Yegge’s opinion on languages at the moment.

    [reply]

    directhex Reply:

    @sapphirecat, A single .msi: http://ftp.novell.com/pub/mono/gtk-sharp/gtk-sharp-2.12.9-2.win32.msi

    A practical example of an app which downloads and installs it and installs in quiet mode: http://www.smuxi.org/jaws/data/files/smuxi-0.6.4-4-dev-win32-setup.exe

    And to explain the advantage (over Java at least), you actually hit the nail on the head: Using C libraries inside a CLI app is trivial. Really really trivial. Ever used JNI? Now, pretend it doesn’t exist, and all you need to do to turn this line:
    private static IntPtr gettext (IntPtr msgid);
    into a call into a C library is to turn it into this:
    [DllImport ("intl")]
    private static extern IntPtr gettext (IntPtr msgid);

    That’s it. As such, it makes hooking into existing infrastructure on a system INCREDIBLY easy compared to Java, without losing any of the benefits of writing in C#. And Those calls are cross-platform, as long as the underlying C library is also cross-platform. You’re not walled off in the same way as you are with Java.

    [reply]

    sapphirecat Reply:

    @directhex, thanks. I’m glad someone’s been working on that sort of thing. It makes me really annoyed to have to install something like 7 packages to get a working PyGTK system.

    The other good bits of C# and Mono that jump to mind are events, partial classes, and if I may count it, Stetic. These are the things that really put Mono ahead of Java as a language and development environment.

    [reply]

  62. [...] Apebox.org just posted the most comprehensive and best defense of mono I have ever read … and it’s still full of shit from tip to stern, but people are praising it like it was the work of Hume himself. [...]

  63. Jo, your opinion is just as one-sided as the anti-Mono zealots’, though you were more respectful than they typically are. Thanks for that at least.

    Fact is, “a passer by” above has it right. Microsoft has demonstrated that they’ll go after a company for using something as innocuous as the Fat32 linux kernel module in a product. They waited for TomTom to become successful and sprung the trap. How’s that for precedent?

    Mono is an incredible framework. I’ve used it on a couple of consulting projects, and I loved C# and the libraries. Do I think it’s worth (even theoretically) endangering the Free Desktop by building elements of it with Mono? Not a chance.

    Not until Microsoft specifically addresses Mono and closes the door on potential litigation for good.

    We have enough drama in Free Software without picking “super productive” languages over our own best interests. Even rabid ZOMG-Micro$haft-LOL-EViL types can sometimes be partially right.

    As an aside, if I hear about how “productive” Mono/C# et al. are any more, I’m going to puke. Languages and frameworks don’t produce anything.

    [reply]

    directhex Reply:

    @Nullified, Would you write a web browser in x86 Assembly in the same time it takes to achieve the same work in C++?

    [reply]

    Nullified Reply:

    @directhex, don’t be ridiculous. Did you have a point to make?

    If I was tasked with writing a web browser, I’d choose a development language that would meet the following criteria, among others:

    1. I can write a web browser in it in a reasonable amount of time.
    2. When the browser is finished, it is portable to as many platforms as possible.
    3. The resulting binaries and their dependencies can be freely distributed.

    C++/KParts/etc seems to have done well for the KHTML folks by those standards (See webkit). These days I might try working with Vala if it was a personal project.

    Right now it’s possible for a productive programmer to write good software in any number of portable and unencumbered languages, supported by thousands of open-source libraries on pretty much every architecture under the sun.

    Given all that, why would anyone voluntarily choose a platform based on a technology patented by a company that has actively FOUGHT all the riches built by the open community – especially since there is without question the potential for Microsoft to get nasty down the road?

    [reply]

    directhex Reply:

    @Nullified, You assert that the language has no effect on productivity – yet state that it’s ridiculous to suggest using Assembly? Make your mind up.

    [reply]

    Nullified Reply:

    @directhex, you’re seeing contradictions where none exist.

    Is it “productive” to write software on an oh-so-easy but possibly-legally-dangerous platform? Maybe, if the longevity and future legal status of your software is not a concern.

    It’s a matter of priorities. I would write a user-facing application in the highest-level, most-portable language I could. The choice is not Mono vs. Assembler, thankfully.

    I really, really wish I could use Mono, but there are some tradeoffs I am unwilling to make. If more developers were less willing to use it because it’s easy, maybe the Mono folks and their sponsors would put the legal stuff to bed once and for all.

    [reply]

  64. Why can’t we build own own things and our own frameworks in the Open Source world, be original and use that… Why do we need to copy other frameworks and Microsoft all the time? See what happened with TomTom? I bet the same thing will happen with Mono, Wine, Samba, and other things.

    If you go and look at the history of Microsoft and see how they treat competitors you might understand why I say this, I don’t think they are helping these open source projects, I think they are helping competitors in order to create some dependency and then destroy it later… so if they want to continue using it they only have the Microsoft way, and I don’t have anything against C#, Mono or the technology, but against Microsoft and their abusive monopolistic practices.

    I hope they don’t react against Mono, or other things… I’m no one to tell things to people, just a thought.

    [reply]

    directhex Reply:

    @anon, Because sometimes, the rigid committee-style process is required for something to have structure. For the result of ad-hoc design, look at PHP…

    [reply]

    Nullified Reply:

    @directhex, does the Linux kernel have structure? Was it designed by committee?

    There’s more than one way to write good code.

    Almost as many as there are opinions about definitions of “good”.

    [reply]

    directhex Reply:

    @Nullified, The kernel? Generally, not, it’s pretty amorphous – which is why things keep getting written, rewritten, and rewritten again. It certainly *works*, but for those who aren’t working directly on the kernel, imagine trying to target an API as prone to random change and inconsistency.

    [reply]

    Joshua Simmons Reply:

    @anon,

    Why can’t we use what’s best for the job ( In the developers own view ), distribute what’s best ( From the users perspective ), and not get caught up in peripheral issues?

    Really, this is getting extremely out of hand. There seems to be three sides to the coin, 1) Pro-Mono 2) Anti-Mono ( Patents ) 3) Anti-M$.

    In the end it all boils down to whatever the end user wants to use, if you don’t like mono you don’t have to use it, and if you don’t like apps developed with it, you don’t have to use them either. If you have an issue with an app, please make it an issue with the app, not what it’s built with. After all, it’s freedom ( The freedom to choose specifically ) we’re after here, not imposing views on others as the almighty arbiter of good and evil.

    [reply]

  65. >Languages and frameworks don’t produce anything.
    Absolute rubbish – the productivity and inherent bug ratio of various languages is measurable (as is the gap between developers using the same language). We all know that the biggest increase comes from moving to a language – any language – that automates memory management and garbage collection.

    And having been coding long enough to recall writing my own b-tree code to access disk blocks, I know full well how much more productive I am writing only application-relevant logic.

    Anon – the reason you might want to copy – or more correctly, implement a public standard – is that you’re opening up the platform to a wider community of developers, who can re-use their existing skills immediately. Why do things for the sake of it – as the article says, people don’t worry about C (a proprietary advantage) and seem to forget that Linux is a free re-implementation of Unix (proprietary).

    [reply]

  66. what ever, as long i can just remove (–purge) all that has anything to do with mono, and my linux desktop still works as expected, i don’t really care what you come up with mono…

    as you know, FLOSS is about freedom of choice!

    [reply]

    directhex Reply:

    @embrace.extend.extinguish, Absolutely.

    [reply]

    Joshua Simmons Reply:

    @embrace.extend.extinguish, well if you’re happy to use non-mono apps, then for sure. “and my linux desktop still works as expected” is somewhat dubious, are you trying to say that developers should stop using mono for their apps because you don’t like it? Seems overly selfish and unlike the general flow of development in linux. I see this akin to the common issues that surround support with open source products, you’re in no place to put forth demands to developers as if you’re paying their wages.

    [reply]

  67. As a software/systems architect & engineer who believes only in the best tool for the job and not what is popular, has the most support, etc… I can easily say that Mono is a great tool to have in my arsenal when deciding which is the best tool for the job. If I am writing an application that will be used on both windows and *nix platforms I would most likely choose Mono. Why not Java, easy, I am speaking of a desktop app which needs to be launched on and off throughout the day and is only to be used for very simple purposes unlike an IDE (yes, I have much love for Eclipse). Why not QT, easy again, it is a simple app and C/C++ development using the greatest libraries in the world are still suited for larger and more complex projects and I need my developers spending as little time as possible on its development. So I would have to go with Mono for this since my developers are already comfortable with C# Windows apps.

    As you can see this is a very specific situation and that is why I always stick to the best tool for the job and not fall in with any specific camp. Obviously if my example was not as vague I could detail my reasons for choosing mono better but this is a simple comment to a great article. Regardless it is my answer to the question, WHY MONO DOESN’T SUCK?

    [reply]

    Nullified Reply:

    @Gregory Kornblum, so what you’re saying is “Mono is easy for my team to use, and my users will install any dependency we ship without question, and hey, Microsoft probably will never crap on us, so I’m okay on using it!”

    Good man! Your clients are so very lucky.

    [reply]

  68. I am rather ignorant as a user, more so as a developer (only coded for the BeOS, only for 1 or 2 years, and I was between 13 and 15 years old) and with apologies for bringing the tone of the discussion to a possibly lower tone (higher in case we’re considering the non technical part or non practical of the discussion) I’d like to state my simple problem with Mono and possibly find some answers.
    Here it is: weight. I find that either the quantity of different libraries required or the sheer weight of them is hard to bear. I avoided Mono apps because I didn’t want to install such a big framework for just few apps, preferred to look for other apps when I had an option, but the very few Mono apps I tried also struck me as slow. Especially regarding launching time, so probably because they needed to load all the aforementioned weighty libraries?
    Note that these experiences, I had them on a 1 Ghz G4 with 512 Mb.
    What can you tell me about this? Is memory usage, cpu usage, weight of libraries or any related thing a real, acknowledged problem of Mono, or I’m just too picky when it comes to responsiveness? If you tell me that the aforementioned machine was a little too obsolete for Mono, you’re confirming my worst fears about it…

    [reply]

    directhex Reply:

    @RRockman, What you cite are some general problems from high-level frameworks such as Java or Python as well as Mono. Overall, Mono is pretty reasonable on all those fronts (e.g. Java gobbles up RAM by comparison), if not as light as a C or C++ app. All things being equal of course – bad C will be heavier than good C#. The real-world difference in apps like Banshee versus Rhythmbox is maybe 10 meg.

    [reply]

    Nullified Reply:

    @directhex, don’t forget Java can be compiled to native code, same as C++. It’s not tied to the JVM.

    [reply]

    directhex Reply:

    @Nullified, Which brings in assorted downsides. I opted not to mention –aot or –fullaot Mono flags, which compile the whole shebang to native code, because the pros are very small.

    [reply]

    RRockman Reply:

    @directhex, Thanks for the replies!

    [reply]

  69. Some words on the FAT32/VFAT FUD:

    Microsoft owns a hardware device patent for FAT and they were suing manufactures since ages. And TomTom are mainly a hardware manufacturer.

    You also seem to forget that TomTom were violating the GPL in the same manner like they have violated MS patents. In the past, they didn’t give a shit on intellectual property, regardless of whose one.

    [reply]

    lspci Reply:

    @RobertJ,

    It also came to light recently in Slashdot (they linked to an article on the counter-lawsuit) that Tom Tom seem to have initiated the lawsuit by having approached Microsoft in the past about infringing patents, and Microsoft brushing them off.

    It seems like Microsoft launched the lawsuit in response to TomTom’s approach and they did so in the US to avoid having to sue in Europe where they would have had less leverage.

    [reply]

  70. A very well thought-out and nicely written post. I’m certainly agreeable with your motivation, if not the subject of your post.

    Unfortunately I’ve pulled Mono off my systems in the past because of the poor quality of its implementation, not out of any ideological fervor. The following link points to my labeled posts about my (admittedly limited) experiences with Mono: http://blogbeebe.blogspot.com/search/label/Mono

    Please read the very first in the list where I attempted to install a development environment on openSUSE 11.1. I’ve not been particularly impressed lately by Mono. You’re right that back-seat drivers shouldn’t have the right to steer the car, but what can you do when you attempt to steer your own car and the steering wheel falls off in your hands?

    Please note that I am no fan, in any way, shape, or form, of BN.

    [reply]

    directhex Reply:

    @Bill Beebe, I can’t make any comments regarding the quality control and packaging quality of other distributions. However, looking at your stack trace, your error may be caused by using the qt-gtk theme thing, which many developers find causes problems

    [reply]

  71. [...] a closer look at Mono. So to simply toss Mono into Debian (by default) under the premise that “Mono doesn’t suck” and sofwtare patents are already void (i.e. made history prematurely ) is not the best way to [...]

  72. Dug the article. A couple observations regarding this line:

    “Mono is a software platform, and software platforms are boring at a user level. Ubuntu shouldn’t ship with Java, Scheme, Assembly, LISP, etc, frameworks by default either. They are not interesting to users.”

    1) I’d argue that a majority of linux users are programmers, to whom software platforms wouldn’t be classified as boring.

    2) What would you consider the distinction to be between shipping with Java/Mono/Lisp (which you said shouldn’t be included), and Python/Perl/languages which *are* included?

    [reply]

    directhex Reply:

    @Alex, Short version? Perl and Python are used extensively in the core parts of Debian (Ubuntu). So removing them isn’t really worth commenting on.

    [reply]

  73. Hi Mr. Shields- Thanks for your writings about Mono. I became aware of them from the LinuxToday website, so I visited your homepage to learn more.

    I want you to know that I appreciate your viewpoints and the work you have put forth in Debian. While not a developer, I have benefited greatly from free software in my scientific research dicipline. Just so you know, supportive comments that I made regarding your post at LinuxToday have been suppressed. And I suspect that others not representing the editorial viewpoints of that website have been, too.

    In any case, I believe in free software and freedom, as well. So, best luck in your future endeavors.

    –dB

    [reply]

  74. Good article but you can twist it the other way around. I am not the “against thins” person. I am for a Mono free environment. An I have a couple of reasons for it too. First of all because I feel the same way about Mono on the desktop as a feel for Java, a huge footprint and lack of performance. Yes they both come with huge echo-systems of class libraries, frameworks and tools. And yes it really makes developers productive (sometimes too productive) but the result (from an integrators, administrators and users perspective) is too close the the old Visual Basic application for me to get exited.

    I avoid .NET runtime on Windows as much as Mono on Linux, not only because I am against Microsoft but more because I don’t like the idea of a dependency to a bloated virtual machine infrastructure in order to runt some seductive looking application that in the end will fail me on core criteria such as performance, resource utilisation, deployment, maintainability. This in bad enough for me to end this discussion but we also have the matter of Microsoft’s attitude against the Open Source movement and the rest of the world called competition.

    GNU/Linux would not be what it is without the Open Source movement and that is enough for me to do what I can to support it. I define my self as “for” Open Source, it is something I want the rest of the world to accept and embrace. So far Microsoft done more in order to define them self as against Open Source and it still worries me. Not as much as a bad user experience due to a pretty application not delivering an overall a good user experience but enough for me to stay away from anything affiliated to Microsoft because they behave like a loose gun and you never know what to expect (but history has proved that usually bad things happen).

    So there you have it. I don’t define my self against anything, not even Microsoft in a broader sense. But I feel Microsoft’s been defining them self “against” the Open Source community witch I happen to care for dearly. And Mono has not yet proven to me that it is delivering what I want in the long run. I therefore pass and I will try to stay away from Mono applications as much as I can.

    I like Ubuntu a lot and I applaud Canonicals pragmatic approach so far but I really think this Mono battle is a bad one. I would personally switch to a Mono free distribution without hesitation if that distribution is up to par with bog standard Ubuntu desktop. I really like the look and functionality of F-Spot, Gnome Do and Tomboy (kudos to the developers) but I don’t like the Mono dependency. I know it’s a bit irrational but it is my feelings and my decision, I am not alone feeling this way and I will not make any apologies for it!

    [reply]

    directhex Reply:

    @Robert, I don’t ask for apologies, or even support – I just ask for people not to act like douchebags about it. Don’t worry, you passed that particular test, in case it wasn’t clear.

    [reply]

  75. “Mono implements an improved, Free replacement for a proprietary offering.”

    The problem here is that Microsoft are free and able to patent the implementation and spec and apply for patents in the future (otherwise an implicit RAND license would not be necessary), so if you implement ECMA 334 and 335 then they can tar you with the same brush and say you are covered. They have a very good chance of doing this because it is, after all, their invention. A dialogue needs to be sought to clarify that position and nail it down in a ‘FreeMono’ agreement, sort of like what happened with Free Qt. Everyone then knows what will happen.

    “if indeed such agreements are available (ITWire’s curlish “attempt” to secure such an arrangement aside)”

    How would you suggest they got such an agreement?

    “the fact that statements have been made in public supporting the idea of royalty-free licensing essentially reduces the financial impact of such infringement to zero”

    Such statements in public mean absolutely nothing, and it appears to be what Miguel is relying completely on as well:

    http://lists.ximian.com/pipermail/mono-list/2004-May/020539.html

    It’s not good enough to call Microsoft and have them say “Oh, we’ll license this to you”. An agreement needs to be in place so open source developers know what is what.

    “If Foocorp has a license to use patents, under a “non-discriminatory” license, and did not pay for them – then it would be discriminatory to change anyone else for them (breaking the signed terms regarding patent licensing)”

    It doesn’t stop Microsoft’s ability to change the terms.

    “Mono cannot be “disabled” via an incompatible change to Microsoft.NET”

    No one is suggesting that it can, but Mono and .Net compatibility was a huge selling point in actually developing Mono in the first place. If .Net compatibility now somehow doesn’t matter than what was the point of developing Mono in the first place and why didn’t someone come up with their own ideas and technology merely ‘inspired’ by it rather than dragging this nonsense in?

    “Absence of “patent protection” is not the same thing as “patent violation”.”

    Regardless of whether there is or isn’t patent violation then the cloud hanging over open source developers without legal clarity over protection from patents and their status is unacceptable.

    “The layering of escape routes is extensive in Mono, especially Mono in Debian/Ubuntu. In the first instance, the contentious Microsoft-sourced non-ISO libraries such as System.Windows.Forms are not included by default”

    I wish people would stop regurgitating Mono’s FAQ as a safety net at the bottom when they’ve been through everything else. Specific namespaces are irrelevant. What’s at issue here is the core CLR technology and the specifications themselves and clearing the air via a legal agreement that all developers can see.

    Apart from that, Mono is certainly the best way of developing Gnome and GTK applications. It’s just a pity this .Net stuff had to be dragged into it when it just wasn’t necessary.

    [reply]

    directhex Reply:

    @Segedunum,

    A dialogue needs to be sought to clarify that position and nail it down in a ‘FreeMono’ agreement, sort of like what happened with Free Qt. Everyone then knows what will happen.

    Would such a thing convince you? Especially given you then imply that Microsoft can turn around and change terms ad-hoc.

    How would you suggest they got such an agreement?

    They sent 1 email, and waited for a month. Anybody who has ever dealt with a large corporation could tell you that such an “attempt” is going to yield you with zero results, certainly within the suggested timescale. I once let HP know I had £60,000 to spend on kit – and they didn’t bother responding until 3 months later.

    If they were interested in anything but a hatchet job, then they would have followed a *realistic* path, including reminder/followup messages. Oh, and the control group issues.

    Sam uses the fact that he got no response to a message about Mono as proof against Mono. What is his control? Which “known-good” products did he also try to secure coverage for? Did he get a positive response back on Samba, but silence on Mono? Because THAT would have been a story.

    Asking once, about one product, waiting 1 month, is either gross incompetence, or an intentional hatchet job.

    An agreement needs to be in place so open source developers know what is what.

    That would be nice. http://www2.apebox.org/wordpress/rants/124/#comment-928 suggests it might even be achievable if someone who isn’t going to ring alarm bells on a quick Google of their name were to put in the work trying to breach the outer bureaucracy of Microsoft to obtain such a thing.

    No one is suggesting that it can

    You’d be surprised. It’s one of the most common arguments.

    why didn’t someone come up with their own ideas and technology merely ‘inspired’ by it rather than dragging this nonsense in?

    To what end? How different is “different enough”? What would Mono need to change in order to no longer be a patent risk, in your view?

    [reply]

    Segedunum Reply:

    @directhex,

    “Would such a thing convince you? Especially given you then imply that Microsoft can turn around and change terms ad-hoc.”

    What? Seriously. What? It’s not about convincing ‘me’. The reason why such an agreement is required is because Microsoft can effectively decide what is reasonable and non-discriminatory. Even ITWire’s cursory investigation showed that. Open source developers need to know what the score is and know what reasonable and non-discriminatory will mean for them. Additionally, reasonable and non-discriminatory does not mean royalty free at all. ‘Speak to your lawyer’ as Miguel keeps telling people simply isn’t good enough for open source software because RAND and royalty free licensing creates such uncertainty. They are terms for corporations with lawyers to hash out.

    “Sam uses the fact that he got no response to a message about Mono as proof against Mono.”

    What was important there was that the e-mail he got back showed even the ECMA had no clue about the RAND terms that they themselves supposedly enforce, and they then referred him to Microsoft. Feeling more confident yet?

    “Did he get a positive response back on Samba, but silence on Mono?”

    I’d be interested to know what published specifications Samba is following, what standards body publishes those specifications and under what terms they are made available. We do have to compare apples with apples on that front if we’re to have a ‘control’, and we’re not. You see? Samba (or even Wine) != Mono, despite what the Mono proponents might have you believe. The ECMA specifications allow Microsoft to tar you with a brush that says ‘You’re covered’. It’s difficult to do that with Samba or Wine because they don’t adhere to a common specification. They are two implementations that happen to be compatible to varying degrees.

    “That would be nice. http://www2.apebox.org/wordpress/rants/124/#comment-928 suggests it might even be achievable”

    Words are nice. Legal agreements are better. It won’t make the difficulties that open source developers have with RAND and royalty free licensing go away. As explained, in such circumstances they have to care for their rights on their own, which is why we have lots of ‘Speak to your lawyer’ butt-covering talk from some Mono people. No one wants to take up the carpet and deal with the potential termite problem. If no one talks about it then it’s OK.

    “You’d be surprised. It’s one of the most common arguments.”

    The original point still stands. Microsoft can certainly ‘break’ Mono from a compatibility point of view, so if you’re then going to talk about compatibility not being a problem then what was the point of Mono’s .Net compatibility in the first place?

    “To what end? How different is “different enough”? What would Mono need to change in order to no longer be a patent risk, in your view?”

    Something that is not ECMA/CLR compatible but would take some ideas from it. Perhaps an amended JVM? The patents Microsoft has currently over .Net make specific reference to being CLR and ECMA compatible i.e. if you are then you’re covered. If you’re not then you’re OK. They’re ring-fencing their own interests. Your attempts to imply that Mono would face all the same problems if they had invented their own technology that wasn’t CLR/.Net compatible seem pretty weak. That is, after all, what Microsoft is licensing their terms under.

    [reply]

    directhex Reply:

    @Segedunum,

    The patents Microsoft has currently over .Net make specific reference to being CLR and ECMA compatible i.e. if you are then you’re covered.

    Oh, you have some patent numbers then! Let’s see ‘em!

    [reply]

    Segedunum Reply:

    @directhex,

    “Oh, you have some patent numbers then! Let’s see ‘em!”

    I notice the replies are getting shorter and shorter ;-). We usually get the whole “Oooooh, patent numbers!” thing when there’s nothing else left to say. I believe this ground has been covered before as well. Here’s the main one if you’re interested:

    http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=/netahtml/PTO/srchnum.html&r=1&f=G&l=50&s1=%2720030028685%27.PGNR.&OS=DN/20030028685&RS=DN/20030028685

    Alas, pouring over it won’t save you, although the text does give an indication of where they’re going with this – ring fencing compatibility and using the CLR and ECMA compatibility to cover applicability. Notice parts 0039, 0040 and 0044. Fancy implementing that in a JVM? You’d be OK as it stands.

    However, if you’d actually read the implications of what has been written so far then you would realise that it simply doesn’t matter if there isn’t a specific patent pertaining to the ECMA specifications or the CLR right now. The point is that Microsoft can apply for some [more] any time they like, and as the CLR and CLS are their inventions they have a pretty good chance of getting them. No one has any control over that. From there it’s a case of open source projects using Mono working out how it will affect them, what the reasonable and non-discriminatory terms are, individually, working out whether the royalty free talk is actually true and whether Miguel’s ‘letter’ actually exists:

    http://lists.ximian.com/pipermail/mono-list/2004-May/020448.html

    At this point we all need to ‘speak to a lawyer’ apparently.

    The issue of RAND and royalty free licensing has been discussed before with regard to open source software because such licensing is designed to be hashed out by lawyers from companies. Unless a bunch of open source projects can know what the score is via a clearly defined agreement then they can find themselves very much on their own and being cut out of any dialogue. That’s why RAND licensing tends to be quite popular. They tend to create oligopolies via divide and conquer of smaller players.

    [reply]

    foo bar Reply:

    @Segedunum,

    You are referencing the [description] section of the patent, which is intended to be a guideline for a human trying to understand the actual patent application.

    The patent is the section [Claims] and that is what was granted. This is a patent application not on ECMA or the VM or the language, but on web services and distributed computing, none part of the discussion on the ECMA core included in Ubuntu or Debian.

    So technically they have received a patent for the following method, which pretty much every web service on the world no infringes (2001 filing)

    “1. A software architecture for a distributed computing system comprising: an application configured to handle requests submitted by remote devices over a network; and an application program interface to present functions used by the application to access network and computing resources of the distributed computing system.”

    Good luck implementing anything today that does not infringe that claim. Or even better then 1999 patent 5,956,509 (referenced by this patent) that would make every HTTP REST use infringe.

    [reply]

    Segedunum Reply:

    @foo bar,

    I didn’t really want to get into the minutiae of debating specific patent claims or their enforcability because that’s what certain people want, and it doesn’t really matter. Microsoft can always apply for something new any time they want with everyone else having to deal with the consequences. Even then you have to step outside the bounds of the ECMA specification to create a practical CLR as Mono has done and implement further namespaces and APIs.

    Anyway, I’ll bite a little.

    “You are referencing the [description] section of the patent, which is intended to be a guideline for a human trying to understand the actual patent application.”

    Yep, and? I specifically said they are using the CLR, CLS and ECMA specifications to ring-fence the patent.

    “So technically they have received a patent for the following method, which pretty much every web service on the world no infringes…..Good luck implementing anything today that does not infringe that claim.”

    No, no, no. That is not what this is and you’ve failed to read the detail section as to how they have defined point 1. It is a patent application for a set of APIs on top of .Net, and any CLR based system as they define it, for implementing distributed applications. It is not a general patent for web applications.

    [reply]

    foo bar Reply:

    @Segedunum,

    So the [Description] section is pointless to debate, as every patent lawyer would have explained to you in the first 5 minutes of a review.

    It is as practical as debating the font used in the patent application.

    The patent grant is over the [Claims] section, and like it or not, that is what the patent office has granted. That is the actual “invention” and this is what the government is granting a monopoly to the applicant over, the invention that they are disclosing and making available to the rest of the world to consume.

    The claims apply broadly not only to .NET (which is where it was first created) but to any system that infringes on the claims made.

    [reply]

    Segedunum Reply:

    @foo bar,

    As I’d said before, debating a single patent is pointless here but you can’t even get that right.

    “So the [Description] section is pointless to debate”

    The description sections provides detail as to what they mean in the main parts above. That’s why it is called ‘Detailed Description’.

    “The patent grant is over the [Claims] section, and like it or not, that is what the patent office has granted. That is the actual “invention””

    Yes, and the description section describes what they mean in there otherwise there wouldn’t be a ton of detail in it. Dismissing the detail as to what they mean is just plain stupid, or blind.

    “The claims apply broadly not only to .NET (which is where it was first created) but to any system that infringes on the claims made.”

    No it doesn’t. Terms are used in the claim section and they are specifically described in the detail section. This is a .Net patent relating to the implementation of APIs relating to web services on a CLR compliant system. They even tell you what those APIs are in [0053] and onwards. It’s even in the description “An application program interface (API) provides a set of functions for application developers who build Web applications on Microsoft Corporation’s .NET.TM. platform.” in the abstract, although their definition of a .Net platform is obviously much broader as described in the ‘Detailed Description’.

    As said though, it’s all smoke and mirrors. Microsoft can apply for something any time they like and no one has any control over it. This is not a general patent.

    [reply]

    Alan Reply:

    @Segedunum,

    This is exactly why non-lawyers should not discuss patent issues. You make this claim in relation to patents:

    “Microsoft can apply for some [more] any time they like”

    According to US Patent law, which I believe is what you are referring to, Microsoft have essentially 1 year from the date in which mono implements a feature to file a patent on that specific feature, otherwise that feature becomes unpatentable. After this year, there is zero risk (exactly zero risk, not nearly zero) that Mono can infringe a *new* patent.

    http://www.uspto.gov/web/offices/pac/mpep/documents/appxl_35_U_S_C_102.htm#usc35s102

    [reply]

    Segedunum Reply:

    @Alan,

    “This is exactly why non-lawyers should not discuss patent issues.”

    Uh, huh.

    “Microsoft have essentially 1 year from the date in which mono implements a feature to file a patent on that specific feature, otherwise that feature becomes unpatentable. After this year, there is zero risk (exactly zero risk, not nearly zero) that Mono can infringe a *new* patent.”

    1. We all know how successful patent offices are at picking out prior art and implemented ideas. The twist with Mono comes from the fact that they are implementing Microsoft’s ideas in the first place.

    2. It’s he who patents first, not who implements first.

    Besides, you can argue that they’ve already filed for what they need. Current CLR implementations need far more than what is in ECMA’s specifications alone to actually work.

    It’s a quagmire that doesn’t merit any further discussion because it shouldn’t have been necessary.

    Segedunum Reply:

    @Alan,

    In addition, it certainly didn’t stop Rambus doing the same thing on the quiet:

    http://www.channelregister.co.uk/2009/05/14/ftc_drops_rambus_antitrust_case/

    Pop Catalin Reply:

    @Segedunum,

    IANAL but:

    The patent issues in general are far greater than mono patent issues, if Microsoft decides to come after and sue free software for patent infringement they have a lot of opportunities to do it starting from kernel to samba, wine, open office to may others all of which have don’t have an important thing in common with Mono, they don’t implement a open standard that has a nondiscriminatory obtainable patent grant.

    What Novel should do is pressure Microsoft into clearing the Mono situation, basically forcing Microsoft to give the license they promised, even through court (making MS to answer regarding the issue, because they promised non discriminatory treatment and and that means they are obligated to answer). And if they this do that things will get settled once and for all.

    Actually all the protection Mono needs is the fact that they have tried to obtain the license, but Microsoft didn’t reply to the request, while at the same time being aware of Mono status and aiding them.

    I’d say Mono is pretty comfortable regarding legal matters.

    [reply]

    Segedunum Reply:

    @Pop Catalin,

    We have already been through why the ‘.Net’ situation is different from Samba, Wine, Open Office and the Linux kernel. Basically, people are deriving from a specification that Microsoft invented and has published so that there is far less ambiguity.

    You can debate the whys and wherefores but you have to ask whether this was ever necessary in the first place, particularly when people start butt covering by saying that .Net compatibility isn’t important. Well if it isn’t, why did we ever have to get into this?

    Alan Reply:

    @Pop Catalin,

    “We all know how successful patent offices are at picking out prior art and implemented ideas. The twist with Mono comes from the fact that they are implementing Microsoft’s ideas in the first place.”

    Should MS obtain a patent after the 1 year grace period and launch a lawsuit against mono, or mono users, it will be trivial to get those patents invalidated[0]. If they do already have all the patents they need, well, any infringing ones should easily be found and any which cannot be invalidated due to prior art should be worked around, as per policy.

    “It’s a quagmire that doesn’t merit any further discussion because it shouldn’t have been necessary.”

    You’re absolutely right there.

    foo bar Reply:

    @Segedunum,

    “if indeed such agreements are available (ITWire’s curlish “attempt” to secure such an arrangement aside)”

    How would you suggest they got such an agreement?

    ITWire could have used a control group, very much like a medical trial or any journalist worth its value would have done and tried not only to get a patent license agreement on Mono, but request a patent license agreement for another one of the technologies that Microsoft claims they own patents to, like say, Linux.

    To make the test better, they could have picked a handful of technologies to obtain licenses/covenants for:
    * Mono (the value we want to find out)
    * Linux kernel (we know they will say they have a bunch, so let us find out what the price is)
    * Some patent that they give out for free (Something that would go through IETF, like XML).

    Then request to Microsoft patents on those thee (Mono, Linux kernel, and XML) and wait for the replies.

    [reply]

  76. Hooray! Sensible articles on mono at last… Someone mentioned that most Linux users are programmers – I’d say thats self perpetuating, if you insist on resisting things that make apps better then no one apart from programmers are going to bother.
    People need to get their heads around that fact that the vast majority of users don’t care what their programs are written in. If something allows better programs to be used, then it should be – I certainly don’t want to be stuck with usability from the 90s because some developer got sulky.
    You do a good job of establishing that mono doesn’t break any free software rules (certainly no more than any other free software) – so resistance to it is baseless. I think you do undervalue opportunities for transitioning from windows – I’m thinking of an excellent indie game “Dyson” written with .net which can (if you’re lucky) Just Work under linux with mono.
    Furthermore, if we want Linux to grow, it needs to be attractive – and that includes making it easier to program for.
    But really the point to hammer home is this: THE BEST PROGRAM FOR THE JOB SHOULD BE INCLUDED BY DEFAULT. If that program is written in mono, so be it.

    [reply]

  77. Turn it as you want:

    1. Microsoft claims patents on technologies that they say are part of Mono.
    2. Microsoft wants, like any other company, to make money, as much as it can.
    3. They therefore will and even have to pursue any possiblity to exploit their IP in their stakeholder’s interests, like any other company.

    It is 100% sure that Microsoft therefore will ask for royalties for their IP in Mono.

    Certainly, they will not approach you or me or Joe User or Linux Distributor XY, as that will not pay. They will, however, approach, device manufacturers that include unlicensed Mono libs in their devices. Remember, they have to. It is not their money, but their shareholders. You, me as their shareholder (I do not and never hold positions in MSFT or derivatives), would want them to do so.

    So in essence, a device manufacturer will either go the “safe” way and avoid i.e. Ubuntu and instead choose Moblin or Android; or they will end up paying royalties sooner or later. I don’t see a real risk that Joe Enduser will face royalty charges from Microsoft, but distros will put themselves out of the device business or pay to Microsoft if they use Mono in their default setup.

    Excellent example: Zareason or System 76 wouldn’t be well advised to continue shipping preinstalled Ubuntu with Mono. They will be approached by MS sooner or later, as if they would be when they ship WMA/WMV technology on their systems . Same with device makers in Far East.

    So this is not about Microsoft about being evil or not, it is about understanding market rules. It is just a question of WHEN Microsoft sees the right time to cash in, but not IF.

    [reply]

    Pop Catalin Reply:

    @amd-linux,

    There’s only one thing missing from this theory to make it hold, the patents! If the someone would for a change identify those patents that are threatening Mono, it would certainly make it look plausible. Unfortunately there are endless articles about this and not a single patent named. Its not like patents are secret or anything, someone *has* to find at least one they all are public. And when that happen we can asses the level of threat. Until then Mono is no different that any other software out there.

    [reply]

    Segedunum Reply:

    @Pop Catalin,

    “There’s only one thing missing from this theory to make it hold, the patents! If the someone would for a change identify those patents that are threatening Mono”

    Microsoft have a number pending which ring fence compatibility mostly, but what people just don’t get is that it doesn’t matter if there specifically aren’t any yet. The RAND (and flimsy royalty free) terms allow Microsoft to apply and acquire some any time they feel like it. The point is that neither Mono nor open source developers and users using Mono have any control whatsoever over that, nor do they have any clue what will happen.

    [reply]

    alpha-linux Reply:

    @amd-linux,

    The problem with this line of argument is that the same applies to everything in Linux, let me show you:

    ——
    1. Microsoft claims patents on technologies that they say are part of Linux, OpenOffice, Gnome and KDE.
    2. Microsoft wants, like any other company, to make money, as much as it can.
    3. They therefore will and even have to pursue any possiblity to exploit their IP in their stakeholder’s interests, like any other

    It is 100% sure that Microsoft therefore will ask for royalties for their IP in Linux, OpenOffice, Gnome and KDE.
    ——-

    This is not a theory, it is what Microsoft has been claiming for ages. They claim some 230 patents on the kernel itself, 2004-studies put the number of patent problems in the kernel at 24-28:

    http://news.cnet.com/Group-Linux-potentially-infringes-283-patents/2100-7344_3-5291403.html

    [reply]

  78. [...] moet vooral GNote worden, etcetera. De felheid van de discussie gaf Jo Shields de inspiratie tot een vrij omvangrijke verdediging van Mono en applicaties die daarmee zijn ontwikkeld. Het [...]

  79. Ubuntu is a “Desktop Distro aimed at consumers”, that means it’s important for Ubuntu to ship with the very best apps available, because that’s what consumers (non technical ones) of a desktop OS want: Apps, the best available to them.

    Mono is ***GPL***, no mater what patents may or may not exist from Microsoft or anyone else, Mono “still” is free software.

    Mono “doesn’t” willingly infringe any patents. Microsoft with it’s patents can kiss MY ASS, I will use mono to build apps until the day it dies from old age, and not a minute less. If you don’t like Mono for what ever reasons, the use what ever you want to build apps but instead of talking, show me the apps, I want to see Banshee and F-Spot alternatives that are just as good (not a fraction less good) and then mono can be replaced without the users loosing anything.

    We all know the theories of how C and C++ can make faster, slimmer applications, well they *can*, but at a *much* higher cost, a cost that’s not justifiable everywhere, because if it were, not even C or C++ would exist today, only Assembly Language.

    And free software doesn’t come for free, someone has to build it, and even open source resources aren’t unlimited resources, they are just like “any other resource in this world”, you can use them wisely for maximum gain or you can use them badly for little practical gain and allot of waste.

    You know what’s the fastest slimmest least resource consuming application in the world? The app the does nothing. There’s a point where you truly want *features* in you app and those features have a development cost. What’s great about Mono is that is a balanced framework, you can make apps that are in no way unusably slow or resource hogs, while at the same time it’s productivity allows you to add a decent set of features with greater ease on a lower development budget than in C or C++. And developer budget is pretty critical in these days.

    As long as there are people willing and more than willing to code in Mono and they make great apps you guys could at least come up with better reasons than patent threats for patents that haven’t been proven to exist yet.

    I will take my chances, I’ll continue to support Mono, even if it’s not clear it there is a risk or not to it, and if something bad happens I’ll still support mono and plea for it’s cause then.

    Microsoft doesn’t hate OSS, it’s just some execs that are complete idiots and dushbags like Balmer, most of the the people at MS sensible passionate coders, and those are the people that pushed openness from inside Microsoft, they are responsible for more and more open sourced products, they are responsible for standardization and use of open standards and standar libraries like JQuery (please don’t comment about IE, I know that MS screwed badly there, but they didn’t let things as they were at least).

    Mono is the reason, that Linux for me is now a development platform instead of just a router in a box under a desk like it has been for years. The next app released in my shop (mainly Windows targeted) will also run on Mono. As for me as a developer in the past year I’ve started contributing to OS, not because I hate Microsoft or because I think Linux is better or some other mundane reason but because I feel I have something to give to the world and I want to do it, and I love doing it.

    [reply]

    John Myers Reply:

    @Pop Catalin,

    “Mono is ***GPL***, no mater what patents may or may not exist from Microsoft or anyone else, Mono “still” is free software. ”

    False. If a GPL-licensed free software is encumbered by patents, and the patent owner does not grant a perpetual, universal, royalty-free license to use the patent under the GPL, then the program can NOT be distributed under the GPL. If you don’t know much about the GPL and patents, you shouldn’t criticize those who do and thus are, reasonably, worried.

    “Mono “doesn’t” willingly infringe any patents. Microsoft with it’s patents can kiss MY ASS, I will use mono to build apps until the day it dies from old age, and not a minute less.”

    Microsoft can KICK your ass if you violate one of its patent. And if you really need evidence of this, well, it has just done that to TomTom.

    “If you don’t like Mono for what ever reasons, the use what ever you want to build apps but instead of talking, show me the apps, I want to see Banshee and F-Spot alternatives that are just as good (not a fraction less good) and then mono can be replaced without the users loosing anything.”

    That would be a problem in the perspective of building a free operating system. Applications using mono are not free because they’re inherently patent encumbered. Should that become a problem (read: Microsoft start suing), then all applications using mono would have to be removed from the operating system at once. Which would be a great harm both to its users and its image. Users would just switch to the only operating system where their apps are still running. That is, the one belonging to the owner of the patents, Windows.

    “As long as there are people willing and more than willing to code in Mono and they make great apps you guys could at least come up with better reasons than patent threats for patents that haven’t been proven to exist yet.”

    You are misinformed. There are no patent “threats”. There are proven patent problems, and the proof is here.

    “I will take my chances, I’ll continue to support Mono, even if it’s not clear it there is a risk or not to it, and if something bad happens I’ll still support mono and plea for it’s cause then.”

    Non-hobby developers cannot “take their chances”. A patent lawsuit will kill anything but a small company, and will be a major hassle for a big one.

    “Microsoft doesn’t hate OSS, it’s just some execs that are complete idiots and dushbags like Balmer, most of the the people at MS sensible passionate coders, and those are the people that pushed openness from inside Microsoft, they are responsible for more and more open sourced products, they are responsible for standardization and use of open standards and standar libraries like JQuery (please don’t comment about IE, I know that MS screwed badly there, but they didn’t let things as they were at least).”

    Microsoft does hate OSS and there are plenty of internal emails and public quotations that can prove that. By the way, one of the ways devised by Microsoft to destroy OSS was to “babelize” it by forcing proprietary technologies into it. See the “halloween documents”. Mono fits perfectly in this picture to me.

    “Mono is the reason, that Linux for me is now a development platform instead of just a router in a box under a desk like it has been for years.
    The next app released in my shop (mainly Windows targeted) will also run on Mono. As for me as a developer in the past year I’ve started contributing to OS, not because I hate Microsoft or because I think Linux is better or some other mundane reason but because I feel I have something to give to the world and I want to do it, and I love doing it.”

    Linux will never be a better place to run .NET applications than Windows. That’s because .NET is developed behind closed doors and there is no reference implementation provided in the form of source code. That’s why the community-provided implementation of .NET barely supports .NET 2.0, while Microsoft is rolling out 4.0. Of course developers will only target the Microsoft implementation. And users will start complaining that Linux sucks because they can’t run their apps.
    If you like c#, then there is a much better solution in Linux: Java. The Java plaform is free, it is developed by an open consortium, and there is a GPL reference implementation which has feature-parity on all platforms it supports.

    [reply]

    Casper Bang Reply:

    @John Myers,

    Innovation in Java stopped a long time ago due to Sun’s limited resources and a painful devotion to backwards compatibility. Even if you could somehow modernize and revitalize the JVM and Java, Sun is actually more in control of Java than Microsoft is of .NET. Microsoft has one vote in ECMA, Sun has veto-right in the JCP. In fact, talk to some Apache Harmony people about what they think of Sun’s attitude towards free Java and you might be in for a surprise.

    [reply]

  80. Great summary! I didn’t know what to think about Mono and patents, but now I know it is a non-issue when considering it for development.

    Thanks!

    [reply]

  81. A developer myself, different fields of course. Very well written and informative. I have always been for Mono and of course respect to those who develop. ;) Mono is great as well as the variety of applications written in it specially Gnome Do. “Show me better I say and i shall take it!”

    great job btw

    Passion Conquers Profit.

    [reply]

  82. Why does mono applications have an .exe extention. It reminds me experience using windows which is really bad. I hate to see it in linux

    [reply]

    Joshua Simmons Reply:

    @crease,
    Because it’s following a standard. It’s a file extension, not the devil. :)

    [reply]

    Alan Reply:

    @crease, If the .exe and .dll extensions upset you in any way, you can completely remove them or change them to whatever you like. They will still operate exactly as expected.

    [reply]

  83. Then it should be removed by default.

    [reply]

    directhex Reply:

    @crease, File bugs against (non-Mono-related) root-system-bin, python2.4, python2.5, python2.6, python3.0, python-setuptools, pq, nsis, nautilus-clamscan, mrtg-contrib, mn-fit, live-helper, libgtkada2-bin, hevea, dosemu, ddclient, clamav-testfiles and autorun4linuxcd. Then we’ll talk about patching our runtime to arbitrarily use a non-standard file extension.

    [reply]

  84. I will admit that, before reading this article, I was pretty much convinced by Boycott Novell. (To the point that I uninstalled GNOME Do even though I was using it regularly.)

    That article was quite… sobering.

    Thank you very much.

    [reply]

    The Open Sourcerer Reply:

    @Jean Hominal,

    Do read another-side of the story too though: http://www.stefanoforenza.com/mono-here-we-go-again/

    [reply]

    Stifu Reply:

    @The Open Sourcerer, I like how the author of this article, acting all high and mighty in it, seems surprisingly less confident, more hesitant, when replying to the comment pointing out double standards in the position of FUD-happy Mono haters.
    Oh, and I don’t understand why these guys think big funny pictures, like the ones you often see at boycottnovell, help their argument in any way. It just makes the whole thing look more like a joke… You’d think you’re on 4chan or something. Anyway, thanks for the laugh.

    [reply]

  85. * “Mono is not the result of any deals between Novell and Microsoft. ” but it is explicitly affected by them. Novell bought Mono then MS bought Novell’s good will.
    * Pushing Mono in the default risks making OIN waste a lot of money defending against MS in a case they can certainly win. As MS holds patents for this technology some of which are not covered by any of their promises not to sue. After OIN dies a terrible die for defending this Mono tantrum, all the other OIN-protected projects will be at risk. Great.
    * Still no way to get any Royalty-free license, regardles of what Jo claims.

    “GREAT APPS” none of which are really needed. Everybody who is used to good desktop photo software hates F-spot just as much as g-thumb. Some people like tomboy but they couldn’t differentiate it from g-note. Rhythmbox is acclaimed the second best music libray player, just after Amarok (which regardles of the WE WANT GREAT APPS mantra, is not in the ubuntu default, odd?) Banshee is still, far , far, far ,fAR aways. For some reason Jo just forgets about the GREAT APPS mantra when he pushes Banshee out of a mythical package size argument! Of course, just dumping Mono altogether and replacing F-spot with gthumb and tomboy with gnote would boost freaking tens of megabytes, unlike the mere 6 MB that replacing Rhythmbox with Banshee would. What’s worse are the attempts to smear against Rhythmbox development when it didn’t stop: more info

    [reply]

  86. [...] I have to add a link to this page, because it is such a great response to the anti-Mono jihadists: http://www2.apebox.org/wordpress/rants/124/. Here is a link to the Mono project: http://www.mono-project.com/, a fantastic open source software [...]

  87. Who owns mono? I asked this months ago and was answered rather quickly. I still will not use mono for security reasons. There have already been found problems with mono based software that will usurp the integrity of a linux system.
    —————————————————————-
    We use three open source licenses:

    * The C# compiler is dual-licensed under the MIT/X11 license and
    the
    GNU General Public License
    (http://www.opensource.org/licenses/gpl-license.html) (GPL).

    * The tools are released under the terms of the GNU General Public
    License (http://www.opensource.org/licenses/gpl-license.html) (GPL).

    * The runtime libraries are under the GNU Library GPL 2.0
    (http://www.gnu.org/copyleft/library.html#TOC1) (LGPL 2.0).

    * The class libraries are released under the terms of the MIT X11
    (http://www.opensource.org/licenses/mit-license.html) license.

    You can find more details regarding Mono’s licenses on our License page:
    http://mono-project.com/License

    Hope that helps

    Joseph Hill (jhill@novell.com)
    Product Manager for Mono

    > Exactly which license is mono under. where can I get the black and white of the license with novell’s stating that it is infact the mono license?

    [reply]

    directhex Reply:

    @davi jordan,

    There have already been found problems with mono based software that will usurp the integrity of a linux system.

    Care to back that up with anything that could actually be fixed?

    [reply]

  88. I just came across this post and even though im a noob at linux i have my own comment, WHy use mono when stereo has been in our lifes for so many years? Just to spare some HDD space?

    Cmon we have now dolby digital 5.1, surround..etc and you guys just use mono because its more cool or open source??? grow up penguins

    [reply]

    directhex Reply:

    @Fred, Um……… Right. Your sanity went that way –>

    [reply]

  89. What does Mono offer, that Java does not (or will not in a shorter period of time than mono will do what it promises)?

    [reply]

    directhex Reply:

    @Vytautas, From the position of a packager:

    * Versioned libraries w/ ABI compatibility. The Java team need to constantly chase versioned dependencies for libraries in Java apps (one of the main reasons Eclipse remains un-updated), whereas CLI assemblies both have an ABI version burned in, along with their list of dependencies (and their versions). Additionally Mono has a mechanism to mark one ABI as compatible with another, via “policy” files. This ENORMOUSLY simplifies the life of a packager.
    * The libraries used by CLI apps are layered – those used in Java are spaghetti. The main reason Java apps aren’t shipped by anyone is space – the main reason so much space is taken is that you simply can’t split up the Java classpath in any significant way – every .class ends up calling into a different .class, such that there’s no way to uncouple them. The developer of IKVM (a Java runtime for .NET/Mono) has tried to split up the OpenJDK classpath, and ended up with http://www.frijters.net/OpenJDK-deps.png – clearly far from ideal. By comparison, CLI is properly layered per-namespace, with very very little crossover, such that an app can be built against only a bare minimum of libraries and work fine – and only that bare minimum need be shipped.

    From the position of a developer:
    * P/Invoke. Java’s JNI is a true abortion of software design, making it nigh on impossible to leverage existing system libraries without significant developer overhead. By comparison, P/Invokes are as easy to use as pure CLI code. By making JNI pain disappear, it makes it much easier for developers to write apps which feel at home on a Linux desktop and tie in as if they were C apps.

    Java 7 has certainly promised at one point or another to fix the second two issues (I don’t know if that’s still on the TODO though), but the P/Invoke issue at the very least has existed since 2001 and Microsoft Java first broke the spec with easy-to-use J/Direct as a JNI replacement.

    [reply]

    Rafael Belliard Reply:

    @Vytautas,
    Plain and simply, what Mono offers me is an environment I’m completely used to. Perhaps I could do my work on Java and forget all about Mono, but that would mean I’d have to learn the language, and as similar to C# as it may be, it’s still not C#. For people writing hello world’s it wouldn’t be a problem switching from “Console.Writeline(“foo”)” to “System.out.println(“foo”)”, but for those of us who make heavy use of .NET 2.0/Mono’s libraries, it’s a PITA for us to try and just naturally write code.

    [reply]

  90. [...] pro-Mono crowd (for which I think this rant by Jo Shields is a fair representation, though if you have a better one please post) contend that [...]

  91. Hi Jo

    Great article!

    I am moving from a windows server environment to Fedora 11 and trying to get Mono 2.4 & mod_mono working… but having real problems (one after another)

    Do you know where I could get some professional IT support (I am willing to pay)

    Thanks

    [reply]

    directhex Reply:

    @Lucifer, I’d talk to fedora-mono@lists.fedoraproject.org – one of those guys might be willing to offer you consultancy, and they’re the most experienced with mono-on-Fedora issues

    [reply]

    Ilgaz Reply:

    @Lucifer,

    How is it ”moving away from Microsoft environment” when you run clone/copy/replacement whatever on Linux? You aren’t moving away from Microsoft and you are actually losing functionality and money by moving to something that doesn’t cover and will never likely cover the latest features of .NET.

    When will people understand Linux is not really a free ”windows”? What about moving to true multi platform, truly open, patent free environments and frameworks while you move to Linux and guarantee your next foreseeable future on any operating system/hardware you like? Even including Windows. For example, J2EE apps doesn’t really know or care where they run in in whatever CPU.

    They are making great amounts of money from this Mono thing, what kind of money advantage will you get when you remove your working Windows and move to something which will never provide same functionality as Windows version?

    (pgp signing OP, I am also copying these to my own local machine, in case you censor them which is pretty common on your Mono scene)

    [reply]

    Casper Bang Reply:

    @Ilgaz,

    Believe it or not, Mono is actually more than capable of standing on its own. It may derive from and implement a Microsoft spec, but since these offer features and productivity leaps and bounds ahead of Java (closures, properties, events, using etc.) I think it’s a red herring to use the argument that it’s always behind.

    [reply]

  92. Why did you change your introduction? After making a big fuss about GPG-signing to ensure that nobody could get away with monkeying with it, you took out the part about “they invited people who don’t think Mono causes AIDS to justify themselves.”

    Your credibility dwindles.

    [reply]

    directhex Reply:

    @begggingyerpardon, lol wut?

    Scroll up.

    See that big line? It looks like this: “—————————————————–”

    What has been altered after the line, other than replacing ASCII adornments with HTML entities?

    Anything before that line was providing context regarding the verbatim repost below it.

    [reply]

  93. [...] About #mono in !ubunru, I'm neither one side nor the other, but reading this, I have to agree: http://www2.apebox.org/wordpress/rants/124/ [...]

  94. You make a brilliant point with the fact that C/++ stems from proprietary roots. Consider Java as a more pertinent point – they are all waving their hands at .Net. Has Microsoft ever bought a case against anyone for a .Net implementation? Microsoft had a court order to cease distribution of their Java VM because of a case Sun bought against them. These nuts should stop concentrating on Windows and should consider concentrating on Linux.

    Whether or not it should be included by default? You are completely right: it depends if there are any dependencies – just like the many C/++ libraries installed on Linux (which, again, are written in a ‘proprietary’ language).

    Yes, I am a Windows developer and Microsoft advocate. In the same breath Mono IMHO is leaps and bounds ahead of the Microsoft CLR. I love to tinker with Ubuntu – and indeed some day I might adopt it for reasons such as F-Spot, Banshee and Tomboy. Right now I don’t want to go near developing for Linux (or recommending it to end users for that matter) because of this internal flaming and fighting.

    [reply]

    Jeremy Reply:

    @Jonathan Dickinson, Developers argue like this all the time (open source or not). I don’t see what point you are trying to make.

    [reply]

    Jonathan Dickinson Reply:

    @Jeremy, you made my point exactly. The crux of it is that I am put off most FOSS projects because of the constant (and childish) Microsoft bantering. This is one reason that I am ‘closet’ Mono advocate – I really think Mono is moving in the right direction – actions speak louder than words and their words are piercing [what has become] the background noise of the Microsoft slander.

    My other point was that they are all concentrating on Microsoft and saying how ‘evil’ they are. I have messed around with four or five Linux distros in the past and all of them had Java by default. The main issue is that Sun bought a case against Microsoft over the Java technology (you may remember Microsoft had a JVM of their own and it was faster than the Sun offering at that point) – but no-one sees that; they just all want to have a go at Microsoft.

    All that wasted energy – pity.

    [reply]

  95. [...] by a man who they really should be concerned about – Stallman The Stultifier. “Free Software is a meritocracy — those who do things earn respect,” asserted one,… wrote someone [...]

  96. I oppose mono for a very simple reason. Mono is not a standard, it is not a development environment. The standard is made and published by Microsoft and Microsoft defines the true standard and development environment with .Net. As such no matter what standards mono follows or what the quality of the implementation it will always be a second class citizen to Microsoft’s framework. In fact, given their documented history with numerous very similar technologies, this is the crux of Microsoft’s intention in releasing the framework and standard in the first place!

    Anyone who is used to the first class and full featured MS .net will be disappointed by the inadequate Mono platform that doesn’t do x, y, or z that .net did. They will seeing this lacking in the tool that they use and look upon the entire open platform with disdain. For evidence look to those trying to use wine to play games, or photoshop users who try gimp, or active directory fans who try samba, or bookeepers and secretaries who try open office. No hardcore gamer, photoshop, Office, or AD fanatic settles for an open solution that lacks features compared with their favorite tool. Even if the features which are implemented are faster and/or more stable. All people notice is what doesn’t work or what is different than they are used to.

    Besides, is there any wide audience for .net stuff besides netflix?

    [reply]

  97. About this
    ” nor for my employer.”. Care to say who your employer is? If it is Novell, calling agreement unfortunate doesn’t change things since Novell, the company you work for still exists because they inked that deal with Microsoft.

    I don’t really know who your employer is and too tired to check. If you are a person who has direct or indirect ties with Microsoft, you should have stated it too.

    Most of ”Mono supporters” generally have ties with Microsoft, hoping for a job there or actually work with companies who are partners with Microsoft.

    It is really not practical to state each time, I agree but let me remind you, the OS we talk about here is named GNU/Linux and it comes with GPL license. If you don’t agree with GNU’s views of free software (not really all RMS views) and have come to a point to clone Microsoft technologies, perhaps you should re-consider the OS you use or develop for.

    In fact, Free Software Foundation is a bit late to review who should really keep the Linux trademark. When someone installs Linux, he/she doesn’t really expect to use mysteriously licensed frameworks originating to Microsoft.

    Isn’t it a bit unethical to slip into Debian with a trivial note taking application? It sounds almost like someone cracked into Debian master ftp server. What is next? Moonlight for Debian? What is unacceptable is the clear abuse of Debian’s prestige and status in open source World (and the rest of World).

    Entering to Debian CD/DVD could be a cunning plan but it seems it back fired. Take your trojan back please and please, keep your stuff away from OS X, we got Cocoa and BSD/GTK/Qt and last thing we need is a clone framework. If MS cares enough, let them ship the original .NET for OS X.

    [reply]

    directhex Reply:

    Care to say who your employer is? If it is Novell, calling agreement unfortunate doesn’t change things since Novell, the company you work for still exists because they inked that deal with Microsoft.

    You’re on my personal website. Do some damn research.

    the OS we talk about here is named GNU/Linux and it comes with GPL license.

    GNU/Linux comes with a number of different licenses, including components under BSD-likes, LGPL, GPL, and more. It’s certainly not just GPL.

    When someone installs Linux, he/she doesn’t really expect to use mysteriously licensed frameworks originating to Microsoft.

    Like, say, AJAX? You DO know that AJAX is an IE6-only extension duplicated into other browsers of the MS-submitted ECMAScript language?

    Isn’t it a bit unethical to slip into Debian with a trivial note taking application?

    You win the moron cake. Mono has been in Debian for over half a decade. And inclusion of Tomboy in the gnome metapackage came from the GNOME team, not the Mono team.

    It sounds almost like someone cracked into Debian master ftp server.

    Evidently you don’t have the slightest understanding of Debian’s governance.

    What is next? Moonlight for Debian?

    That went in months ago.

    Take your trojan back please and please, keep your stuff away from OS X, we got Cocoa and BSD/GTK/Qt and last thing we need is a clone framework.

    5 years ago – http://go-mono.com/archive/1.0/

    Used for some iPhone game development (and The Sims 3), amongst other things

    If MS cares enough, let them ship the original .NET for OS X.

    There’s an Open Source (but definitely NOT Free Software) implementation for OSX available from Microsoft. I don’t think it has much value beyond research purposes.

    [reply]

    Ilgaz Reply:

    @directhex, sorry for not checking out who your employer is because I was really tired that time and it saved me from absolute shock.

    So, Debian which we all knew is run by fanatics of Microsoft technology who uses 3rd class politician tactics to ”win” arguments. Note taken, thanks.

    BTW, putting blame on Gnome team is really funny since they are the ones to abuse a FSF Desktop environment and make it almost a demo of .NET technology. We won’t speak about a ”Gnome” when they do the ultimate mistake of relying on Mono in version 3 which is very likely with that chaotic administration.

    While on it, a true multi platform, truly free without any weird patent issues framework makes it possible to run KDE 3/4 on OS X. Even better than Linux in some cases since OS X has Quicktime etc. frameworks and Cocoa. Enjoy taking notes while we run entire desktops.

    You know why .NET will never ship for OS X? Because OS X isn’t run by some saved from Chapter 11 by Microsoft companies and their puppets. We speak about NeXT 2 here and that EA, the original MS puppet who can’t code anything else than DirectX will of course use Mono/.NET.

    [reply]

  98. Totally agree with Jo. Being a .NET developer myself, Mono’s the fastest way for me to write some code on Unix without having to delve knee-deep into Qt and C++’s micromanagement, and just write something the way I’m *used to*.

    Get the facts right. Mono for the win.

    [reply]

  99. Thanks for the informative article. I am a developer and have avoided using Mono up to this point, mostly because I have other tools that meet my needs and have had no compelling reason to switch. As for Mono not being a “standard” – assuming you are referring to a standard as a group of people that choose the direction of the language, independent of any one company’s agenda… then most other languages are not “standard” either.

    I must admit that I am still hesitant to use Mono for any of my projects. I think the reason is that I have no guarantee that I can make my app cross-platform without a lot of effort. We’ve got two implementations of .NET that diverge at certain points, and it *could* be a headache to constantly address those issues. If Mono was available for all major platforms, then I would have no hesitation whatsoever – it would essentially replace .NET. I think this is the one major advantage that Java has over Mono (as much as I dislike the Java language).

    [reply]

  100. [...] Shields wrote a fantastic piece a few months ago that is incredibly well-grounded and destroys the entire argument: [...]

  101. I’m ambivalent about Mono, but does anyone really think Tomboy is good? It’s slower to load than gEdit and has a horrible user interface.

    [reply]

    Chris Reply:

    @Mikel, It took me a little while to adjust to Tomboy’s interface, but now I can’t do without it. Comparing with gEdit isn’t valid, I think, as these apps serve very different purposes. eg. Load time isn’t really an issue as Tomboy is intended to be running constantly. It’s more like a personal wiki service than just a way to edit small text files.

    [reply]

    Ilgaz Reply:

    @Mikel, It looks like it served its greater purpose well which is putting Mono into Everest of free software and I bet the author will be rewarded somehow. So it is good software in terms of making people lose respect to Debian and erasing Debian’s decade+ build up of prestige.

    gNote was also developed for basic purpose that it can be achievable, even better on Linux with truly free frameworks and it will work better. Just like why original Gnome was coded for, to stay away from non free frameworks. It is really ironic if you think about it considering most of these people owes their fame to Gnome project.

    [reply]

  102. Stop polluting Linux distros with this Mono garbage, the users don’t want it, it’s useless, there is no need to have it around

    [reply]

  103. I still think Java is a better choice. Technically its standard libraries are better – in my opionion of course – and there are excellent free tools available to use it (Eclipse, Netbeans). Java is also learned by many students. Memory footprint may be high for Java’s “non-native’ Swing. However, there is still SWT e.g. which wraps GTK, Mac and Windows native GUI widgets. Generally, Java may even be lower in memory consumption since its garbarage collectors are superior to Mono’s. This may show up specially in server applications. I cannot prove it but I am quite sure that the Java-stack is much more tested and verified than what is being possible for Mono. Legally, Java is much less troublesome than Mono to start with since SUN has actively open-sourced it. So why Mono?

    [reply]

  104. [...] linked to a good mono article http://tinyurl.com/mfey3b "why do people use C, the standard from convicted monopolist [...]

  105. Here’s a wild idea: Why don’t you ASK Microsoft !?

    Just say: Do you think you have any patents on .NET tech?
    If they say no, and you get them to put that in writing, we’re all good, RMS should recant.
    If they say yes, or doesn’t say anything, then Mono is and should remain just an alternative, and should not be used as primary dev tool, nor be included in distros. Java or Python, or anything else (perhaps even something new, you’re capable of doing good stuff) should replace it.
    Before that – before we can establish beyond any doubt that Microsoft won’t ambush us, we should be careful.

    [reply]

    directhex Reply:

    @paxcoder, Hasn’t worked over their “hundreds” of patents in the kernel. Ballmer’s gone on about those – and since they won’t say what or where they are, we have no idea just how crucial or integral they are (as opposed to tangential features of one filesystem driver) – should we axe the kernel to be sure?

    Oh, and you DO know Sun signed a patent deal with Microsoft in 2004 which covers Java, right? And that there are other patents in Java which aren’t traferrable either, such as the Wang patents they were sued over?

    [reply]

    paxcoder Reply:

    @directhex, thanks for the info about Java (I personally don’t use it, but still). Yeah. I can just be glad EU has no dirty patents :-)

    [reply]

    paxcoder Reply:

    @directhex, I was talking about openjdk. Does it have patents?

    [reply]

    directhex Reply:

    @paxcoder, You mean Sun (Oracle) patents, Microsoft patents, or other peoples’ patents?

    Short version is “I don’t know, but probably” to all three. I don’t know whether OpenJDK was altered to avoid Microsoft and Kodak patents after Sun had legal issues with them in Sun Java (once they paid up, presumably they had no more reason to). And I don’t know whether there are further patents from other people in Java which are infringed. I also don’t know whether the Microsoft and Kodak agreements were transferred into OpenJDK from Sun Java.

    Honestly, they’re not questions I think about very much.

    [reply]

  106. [...] start rewriting Mono applications in C++? Jo Shields has a lengthy, but excellent, post called Why Mono Doesn’t Suck. Jo’s post makes a lot of really good points about Mono if you don’t have a short [...]

  107. [...] Shields写了一篇why mono doesn’t suck, [...]

  108. It has been claimed that Stallman doesn’t have any problems with Mono. He has just made a statement that, he does have problems with Mono.

    [reply]

  109. FreePascal+Lazarus could be an alternative to mono because it has tons of libraries, small memory consumption, fpc is very fast compiler, userfriendly IDE and so on… what do you think?

    [reply]

  110. Kill Microsoft’s buttocks!

    [reply]

  111. Kiss Microsoft’s buttocks!

    [reply]

  112. Is it possible to split Mono into
    1. core part, including a runtime implementation and basic class libraries.
    2. Windows specific part, which possibily have patent issues, such as WinForms, silverlight, etc.
    3. Linux specific part which only depends on core part. So we can write any innovative software freely on this part?

    My assumption is that the core part has no patent and royalty fee issues.

    I really like C# and freedom. This is just some unmature thoughts of mine. Whether or not this split will make us more safe? and also helps Mono get accepted more by open source communities?

    [reply]

    directhex Reply:

    @jin, Already done years ago in Debian.

    [reply]

    jin Reply:

    @directhex,
    Thanks for your info.

    “My assumption is that the core part has no patent and royalty fee issues.”

    is it undoutedly true?

    Since the open source communities have strong concerns about patent and royalty fee, maybe Mono team or Novel can help do something, for example,

    “Mono team just focus on the core part and maybe part of the Linux specific part, and let the brave communities or other business entities drive the Windows part”

    If anyboby want to use the Windows specific part, they know their risk, and they balance the risk and potential benefits by themselves. But other people can innovate freely and safely with other parts.

    will it makes both Mono and open source communities more safe and comfortable? and also helps Novel and Mono team get more respects and acceptance in open source world?

    [reply]

  113. Without getting into any details, for me personally, any development technology based on ‘MS standards’ is unacceptable, counter productive and dangerous. I don’t want to be in a situation, where a powerful corporation, a convicted monopolist who uses its monopoly to illegally destroy competition, is able to undermine any part of my business by simply casting FUD over the legality of what my solutions can be based upon.

    I say no to MS ways, .NET, no to any clones of these technologies.

    But you feel free to believe otherwise.
    Cheers

    [reply]

    Bernard Glopnik Reply:

    @Roman,
    why do you trust C++ and ATT or Java and owner-of-the-month? I am old enough to remember when Microsoft was the champion against evil IBM, or when the potential breakup of monopilistic Bell was the most important worry. I remember people not having used Fortran because of IBM.

    C# and Mono should be judged on utility, not on political correctitude

    [reply]

    Roman Reply:

    @Bernard Glopnik,
    I am judging C# and Mono on utility – it’s useless as long as there is a behemoth behind it that can create FUD around the entire concept based on their patent arsenal. And please, putting Java into your list? I don’t know how old you are but you certainly are not paying attention – Java is distributed under GPL at this point and C++ has no VM to run in, it is a definition of a language, not a platform. So what the hell are you even saying?

    [reply]

  114. So what has MS said about mono’s patent situation? Absolutely nothing. That sounds very unsuspicious to me.
    Carry on, shillboy.

    [reply]

  115. [...] dibangun oleh microsoft tapi oleh tim opensource), beritanya bisa anda lihat di sini, sini dan sini. Awalnya sih saya gak terlalu tertarik untuk berkomentar, karena saya bukan pengguna ubuntu sebab [...]

  116. I you believe it, one could say that you are right, but how about the modified version?: “Understanding might be a three-edged sword: your side, their side, and the truth. Or are you in truth?”

    [reply]

    Simon Madsen Reply:

    @Simon Madsen, “Or are you in truth” can appropriately be left out

    [reply]

    directhex Reply:

    @Simon Madsen, Except that would be a misquote

    [reply]

    Simon Madsen Reply:

    @directhex,
    OK thank you,a misquote of who?
    Here we go again:

    Do you think understanding might be a three-edged sword: your side, their side, and the truth?

    Sorry for the intrusion:d
    (nice website by the way)

    [reply]

  117. Mono in Debian…

    I note that the controversy of Mono in Debian which reached fever pitch with the inclusion of Tomboy as part of the default Gnome applications rages on, and now RMS has entered the fray.

    I respect Stallman a lot. I’m a fellow of FSFE. His positions…

  118. [...] [...]

  119. [...] interoperability and their more open support of open systems. Adding fanning the flames was this Here we go again – why Mono doesn’t suck. Ah I had forgotten about the joys of how much can be written about a emotive topic in such a short [...]

  120. [...] stumbled over this post on Slashdot today: Why Mono Doesn’t Suck. I definetely recommend anyone reading this one. Below is a short excerpt I believe is most [...]

  121. Someone can explain me why Microsoft is backing Mono :
    Philanthropy ?
    Secret desire of open-sourcing windows ?
    Love of the open source community ?

    Do you remember that :
    http://news.cnet.com/Bill-Gates-and-other-communists/2010-1071_3-5576230.html

    [reply]

  122. [...] The Mono talk. What Fedora has with that? Hmm… And Debian [...]

  123. [...] Comme le troll anti #mono ressort de sa caverne voici une excellente réponse… http://www2.apebox.org/wordpress/rants/124/ [...]

  124. I’m a developer and I don’t care if you use Mono.
    But it’s still a dead product, just as I predicted 3 1/2 years ago.
    It has no traction.
    Go ahead and use if you want.
    But he’s still dead, Jim.

    http://www.realmeme.com/roller/page/realmeme?entry=mono_meme_update_mono_still

    [reply]

  125. [...] default Ubuntu distribution.  Here is the original post that seemed to trigger it all. Here is the reply that was posted by Jo Shields, a member of the Debian Mono group. Richard Stallman also weighed in on the matter, [...]

  126. Et c’est reparti : pourquoi Mono n’est pas une menace….

    Le billet qui va suivre n’est pas de moi, c’est une traduction d’un billet de Jo Shields lisible ici dans sa version originale. Toutefois c’est un peu le billet que j’aurais voulu écrire sur Mono. Il se trouve que Jo Shields l’a fait……

  127. If you could travel forward 20 years in time the results of Mono will be one the following.

    1) Mono disappeared along with java replaced by something that does work. Most likely something like Vala with a bytecode for application transfer.

    2) Gnome is dead. Mono lives on. Why Mono developers become dominate since they could not code core parts of Gnome in Mono they systematically replaced every part of it. No new developers exists who knew how to create gobject items well so all gobject based project have died. All due to Mono lack of means to integrate. Finally MS releases a .Net OS that runs .Net applications faster because it is designed for .Net so Linux loses along with mono. Making all the time spent developing mono and Linux a complete waste of time. Why Linux .net blocked the developers from coding in a language that could expand the kernel.

    3) Mono becomes a popular platform Novells agreement with MS runs out. MS is desperate for money so patent attacks everyone using so Mono disappears into the vapors and was a complete waste of development time.

    If your goal is to produce something that does not kill gnome or that will not disappear the internal design of mono need to change. To not kill gnome need better intergration and the means to produce gobjects with .net code. Main reason this is not possible is mono dependence on PE executables so native executables cannot interface. Yes .net was designed for windows so is incompatible in key areas.

    OIN would be stupid to risk there patents against a valid claim. They do not use there patents against apple over the TTF patents. They are valid patents. .Net most likely has at least some valid patents. Stop being stupid. OIN only is really a defense were there are crossing patents or prior art to disarm attackers.

    Linux kernel does not sit back and say we have OIN we don’t have to act on patent risks. Currently working out patch to avoid Fat patents is a good example of this. Mono developers want people like me to trust you. Show some active moves to truly sort out this patent mess. If we had a list of patents MS has on the .Net standard we could act in advance so avoiding the problems before anyone gets sued.

    Best example of an non removal able patent is MP3. Remember that is an ISO standard as well. Holders of those patents have extorted money. Comparing to freetype is being a idiot.

    Mono developers and supports are being as bad with patents as the pirate bay has been with take down notices. Stupid idea we can stick our head in sand and we will not die.

    Speed wise mono loses hands down to Vala.

    Python is also gaining speed. Python has a major advantage over mono. You really cannot compare them. Please go look at blender 2.50 interface video http://vimeo.com/5137477 . Python is used to real time recode the front end. Ie edit python while editing seeing the results. Python and Mono are two completely different classes of languages. There is no example of mono doing anything like what python can. Last release python 3.1 has halved you speed advantage over it so at best 50 times fast and python still does not have a JIT or AOT yet. Python could end up the same speed as mono. On flexibility python would win. How did python speed itself up massively in the last release. It dropped using python code in back end locations and swapped across to pure C. Python JIT will have a solid foundation.

    I think it funny that malloc happy is a problem. If garbage collection is all you have. Both garbage collection and malloc can leak memory badly. Tools to manage and detect leaks are always required. C and C++ are ahead of mono in that field.

    Mono makes use of the .net runtime. What does Vala make use of the Gnome provided runtime. gobject. Can you please explain why do we need wrappers over GTK with mono where Vala can just talk pure gobject so avoiding overhead.

    Step back have a good look at Vala if you took the ideas behind .net integrated them with the way Vala got a runtime ie using the pre existing Gnome one. You would truly have something that is fast and lasts. But this requires you to give up the idea of following the .net standard and creating your own.

    You tell me are my look forward 20 years wrong. Mono developers are too busy copying not looking around or thinking about the future.

    [reply]

    oiaohm Reply:

    If you want to fair benchmark python vs mono. Run mono without jit and bytecode covert python script. You will find out that python is way faster. Only reason mono is beating python in benchmarking is the jit advantage.

    Please learn how to do fair compared its critical for seeing what one is the better. If mono does not address its internals it will lose to python in time. Vala is already beating mono hands down. Vala is a relegated design to C#.

    Stop being so short term looking.

    [reply]

    Dale Reply:

    @oiaohm, How in any conceivable way does that makes sense? Why in the world would one leave out part of a tech in order to compare it to another?

    [reply]

    oiaohm Reply:

    Simple because a JIT is under development for python. So unless there is some magical reason why python code cannot be converted to native by a JIT equal to mono the speed will in time be gained by python.

    Processing of bytecode compare is a raw thickness of wrappers compare. You want a fair compare of tech. So you remove what is bias. JIT on the mono side creates a very large bias.

    Remember I am not comparing for usage now. I am comparing to work out what one has the better internal design to serve me into the future. So removing a bias is perfectly valid.

    For current time there is another reason. Running on platforms that mono JIT cannot work you would have to drop back to the bytecode processing system. Its part a cross platform test as well. If mono cannot perform without its JIT or AOT makes it a lot harder to run applications on any newly created CPU type.

    There can even be cases where the bytecode is wanted. Debugging so bytecode mode not performing is a hindrance to developers.

    So all its cross platform talk of mono is basically trash talk. Python wins the cross CPU types. If I dropped a new CPU type on Python it would be faster running than mono.

    Selective advantage on particular cpu types due to a optimizer (JIT) python does not have yet is where Mono wins. That is a very poor thing to be claiming victory with. Its the world of software development is a very temporary thing particularly thinking the resources of Google are being put into giving python a JIT.

    The art of long term looking Dale. You don’t make the mistakes of comparing items that are temp advantages particularly when they are not an advantage for every cpu type a developer might be wanting to use.

    [reply]

  128. [...] статьи Джо Шилдза (Jo Shields) «Here we go again – why Mono doesn’t suck»Я участник Debian Mono Group, Debian CLI Applications Team, и Debian CLI Libraries Team. [...]

  129. [...] taken me a while to get around to de-constructing the latest magnum opus of the mono apologists, Here we go again – why mono doesn’t suck. Be forewarned, this will be long and tedious. I normally want to keep things a bit more light and [...]

  130. [...] http://www2.apebox.org/wordpress/rants/124/ [...]

  131. [...] discussion, good point: Why Mono doesn't suck: http://www2.apebox.org/wordpress/rants/124/ [...]

  132. [...] 自由软件基金会主席Richard M. Stallman对Debian让Mono包含在默认安装内的决定表示了反对,认为任何一个使用C#的程序都会令社区处于危险之中。Ubuntu则认为没有什么大不了。这件事也引起了Mono开发者Jo Shields的关注,他写了一篇针锋相对的文章,解释为什么Mono不会威胁自由开源软件,为什么它对开发者是可取的,为什么Ubuntu也应该默认安装它。 [...]

  133. [...] disinformation and if you get lucky a few pure-T 151 proof lies. I think Jo Shield’s Here we go again: Why mono doesn’t suck is the best ever defense of Mono I have read, and it is still as hole-y as swiss cheese from the [...]

  134. As you ought to know, being an ISO standard is not and does not claim to be a guarantee that the standard is free. (Consider, for example, the MPEG series of patents.)

    Also, how can you talk about the absence of any suitable replacement for Tomboy without even mentioning Gnote?

    I don’t doubt that some people oppose the use of Mono for poor reasons, or do so in an unacceptable manner. In no way does that detract from the polite and well-reasoned arguments put forward by RMS and others (although I take your point about Mono not really being part of the ‘default’).

    Personally I have no problem with Mono remaining in Free so long as the balance of evidence supports it. Becoming dependent on Mono is a different matter entirely. Given their past record, it would be irrational for us to treat technologies which originated from Microsoft with anything other than extreme caution.

    [reply]

    directhex Reply:

    @Graham Shaw, I’ve already talked about Gnote in a prior post – and feel pretty vindicated about my “it’s still too young for primetime” sentiment given http://bugs.debian.org/534969

    [reply]

  135. I didn’t read past the first two lies:
    #1:
    “Mono gets no special treatment under that [Novell-Microsoft] deal. It is not mentioned in the deal” – Yes, it is mentioned. As the FAQ about the seal says,
    “Under the patent agreement, customers will receive coverage for Mono, Samba, and OpenOffice.org as well as .NET”.

    #2:
    “They determined that the best note-taking application to offer their users was Tomboy…. The only other comparable GNOME application is Zim”. Gnote may not, in YOUR opinion, be ready for primetime because it contains a bug affecting non-ASCII characters. But no objective person can deny that it is “comparable”.

    [reply]

    directhex Reply:

    @Roger Morgan,
    #1: Being mentioned in an FAQ suggests it’s a FAQ. Try reading the actual agreement itself, not the FAQ.
    #2: I’m growing immensely tired of the revisionist history that the anti-Mono folks spend so much time with. Gnote has never been in a stable release of Ubuntu – the very first release only came into existence AFTER Ubuntu 9.04 was finalized. Am I wrong in my statement? Only if, like most anti-Mono people, you believe in time travel.

    [reply]

  136. [...] some fallacious and dishonest point to post about! Thanks guys!In the comments of the master opus Here we go again – why Mono doesn’t suck we have this [...]

  137. For the most part, a seemingly well written commentary on the Mono Project. Unfortunately not realistic in dealing with the serious threat that Microsoft poses with this project. Microsoft has repeatedly thrown out lawsuits to anyone and anything that it feels is a threat, even in cases where it has absolutely no chance of winning. Microsoft has a pattern of litigating people and companies out of existence. THIS is what concerns a lot of companies and people about things like the Mono Project and others. All your arguments are for the most part ABSOLUTELY true, and I would say altruistic. In an ideal world these arguments would work, people would play nice. The real world of Patent Litigation is not nice, actually cold hearted and often senseless. Mono is exactly as you claim, a well done platform that works. But in the end, it is the small companies and even some large ones that are wary of anything that would potentially lead to costly litigation. Until the Software Patent is made away with completely, projects like Mono will continue to have its detractors. It is the damn world we live in.

    [reply]

    directhex Reply:

    @DudeWBeastly, is Mono a greater risk to Microsoft than, say, OpenOffice.org? Bearing in mind they can still sell you Visual Studio and Windows if you target Mono – and the .NET framework itself doesn’t cost anything. As compared to Office, which is their biggest cash cow, and directly threatened by the competing app OOo

    [reply]

  138. [...] pros and cons of including Mono-built applications as a part of standard Linux builds. Both Pro and [...]

  139. [...] the sake, a nice post which I hope will contribute to stop the FUD against [...]

  140. Sorry, I’m not convinced by your article. I’m for the Free Open Source Movement and against Microsoft, it is not childish, it is coherent with my political viewpoints and what you say is insulting. Mono is not fast when it deals with OpenGL, it is a vast joke. Mono is not a must-have and Tomboy could be rewritten with another language, there is no need of C# which is almost only a bad clone of Java mixed with some of the worst aspects of C++ .NET. You underestimate the risks for Linux. I’m under Mandriva and when I switch to Mandriva Linux 2009, if I see Mono, I will remove it like all applications requiring it including GNOME.

    [reply]

  141. Maybe in Mono there is the idea that free software is always compelled to follow Microsoft monopol… And Java exists and have been freed by sun, for applications where portability is the point over performance.

    If .NET have more platform dependant components for a more performance oriented balance, maybe this is not a good approach to rely on a clone for Linux… It will ease such applications port between both platforms but we’ll always be dependant on Microsoft behaviour.

    Let’s see WINE that have a useful but endless development… when virtualisazing an OS into another is now so easy. Mono is going on the same path… do what you want, but I always defer .NET updates on my windows partition because it becomes very bulky! If linux goes this way, maybe I’ll go to BSD?

    [reply]

    directhex Reply:

    “Maybe in Mono there is the idea that free software is always compelled to follow Microsoft monopol” – or maybe you’re talking utter shit. Always possible!

    [reply]

  142. I talk as I want, and always stay polite when not facing the others: Always so easy to shout from behind a keyboard from far away… but so coward!

    On this point, imo Mono shoud not be in default install. Just like WINE and Samba: It’s good to have them to ease a migration or integrating linux in windows environments/tools… But in default installs just to support a dektop post-it program, Stallman is right to pop-up from his MIT-Bearded-Integrist box this time.

    And if you think he’s from another century, just consider Fedora opposite attitude with Red-Hat (so common in business environments) probably anticipating a very bad risk/benefice balance.

    [reply]

    directhex Reply:

    @yan, speaking your mind doesn’t mean I can’t speak my mind, and call you out on statements which are, well, utter shit. “Maybe in Mono there is the idea that free software is always compelled to follow Microsoft monopol” would be utter shit. And, FYI, I’d be delighted to say so, to your face, in person – I’m just as much of a dick in real life as online, and not ashamed of that fact.

    You also seem to have missed the bit where there are two apps using Mono, by default, as of 2006, on an Ubuntu install – one of them gained a theoretical replacement in April, the other still has NO realistic alternative (where a realistic alternative must include data migration and a comparable feature set). I think you should read http://www2.apebox.org/wordpress/rants/70/ – and if you’re still adamant that the sky is falling, then a much better read is http://mono-nono.com/2009/07/28/chicken-little-remix-up/

    [reply]

  143. [...] me away, which is directly replied by the Mono developer (Carla Schroder) right here, and here or on the blog. On those pages, you will find so many links that are related to the topics. The debate is not end [...]

  144. In a way I am one of those anti-Mono people, but the reason isn’t just because I think I am right. I hate Microsoft too, because their software is unreliable, buggy and uses too much resources. However they are the best at the moment so I am stuck using them. I don’t think that they’re all bad or the ultimate evil or such, they are just a couple of money blinded people that don’t allow something to reach satisfying levels before publishing. However if you learn to work around their mistakes they are good. So that’s for Microsoft. For hating Mono, I found myself stuck without windows, and being a developer I felt really constrained using an OS that I am not that familiar with, and so I tried Mono. The first thing that I immediately hated was that it has no inbuilt gui editor and more importantly, it isn’t up to quality. There are many missing things like the proper support of datasets my preferred method of storage. Apart from that I haven’t yet figured out how to make a portable installation and that is another big minus for me. Those are my reason for hating these things and if some one thinks otherwise I’m not really interested. It’s just another way to pass boring time.

    [reply]

    directhex Reply:

    @Jonathan Camilleri, Sorry, but some of this is just plain weird.

    The first thing that I immediately hated was that it has no inbuilt gui editor

    Um… neither does Microsoft.NET. Visual Studio isn’t built into Windows, nor into the Microsoft.NET SDK – it’s a distinct install, much like the MonoDevelop IDE is.

    There are many missing things like the proper support of datasets my preferred method of storage.

    You really just happen to need one of the four methods on System.Data.DataSet which isn’t implemented yet as per http://go-mono.com/status/status.aspx?reference=2.0&profile=2.0&assembly=System.Data ?

    I haven’t yet figured out how to make a portable installation and that is another big minus for me.

    man mkbundle2

    [reply]

  145. Excellent points, I much enjoyed reading this article. I really liked how your Mono to .NET is as GCC is to K&R from AT&T. Or GNU to UNIX. These are very powerful points that people either forgot or don’t know about in the first place.

    [reply]

  146. Here’s the hole I find: f-spot or stop or whatever it;s called is NOT a best of breed app. Most every new user I know finds it ridiculously complicated, slow and flaky. Gthumb is faster, simpler, and more reliable. What is gthumb lacking? It’s just not as fancy looking – but the controls work better and it’s scads faster. Try using gphoto with a few thousand picture database – you’ll grow old waiting for it just to open.

    The first thing I do when I install a new version of ubuntu is go into synaptic and rip out mono. Show me an app that makes it worth my while and I’ll leave it in. Banshee? Forget it – rhythmbox works just as well. Tomboy? No thanks – I’ll use google through evolution that way i can access my notes from ALL my machines (and the intarweb).

    MONO sucks, yo.

    [reply]

    directhex Reply:

    @poptones,

    Here’s the hole I find: f-spot or stop or whatever it;s called is NOT a best of breed app. Most every new user I know finds it ridiculously complicated, slow and flaky. Gthumb is faster, simpler, and more reliable. What is gthumb lacking? It’s just not as fancy looking – but the controls work better and it’s scads faster. Try using gphoto with a few thousand picture database – you’ll grow old waiting for it just to open.

    Not my decision nor assessment, talk to the Desktop team – although Gthumb is NOT a photo library app, it’s a directory browser app for photos – and there’s a huge functional difference between approaches.

    The first thing I do when I install a new version of ubuntu is go into synaptic and rip out mono. Show me an app that makes it worth my while and I’ll leave it in. Banshee? Forget it – rhythmbox works just as well. Tomboy? No thanks – I’ll use google through evolution that way i can access my notes from ALL my machines (and the intarweb).

    Cool kids are using GNOME Do, from what I hear.

    And Tomboy HAS assorted syncing options (and even a web-based front end named Snowy) – it’s one of the main things that sets it apart from its C++-based clone.

    [reply]

  147. Just one example of the many headaches one gets trying to use this crapware…

    “The assembly mscorlib.dll was not found or could not be loaded.
    It should have been installed in the `/usr/lib/mono/1.0/mscorlib.dll’ directory.”

    Thanks to the MS-ness of mono, conventional approaches to this sort of problem just don’t work. You have to deal with all sorts of MESS-iness involving incompatible dlls and multiple versions and mono MS-type “installers.”

    If I wanted to fuck with that nonsense I’d still be using Windows. Every time I try to use mono I end up feeling dirty and alone – like a long reformed alcoholic in a room full of drunks.

    [reply]

    directhex Reply:

    @poptones, Wow, thanks, I *never* realised that Mono was the only framework in the archive with “dependencies” and things like that. How positively Microsoftian!

    Now, you want the ACTUAL answer? You can have it anyway:

    There are TWO versions of the core libraries (as defined in the ECMA spec) – 1.1, and 2.0. In Ubuntu Jaunty and Debian Lenny, we made an effort to stop needlessly shipping both versions (after all, why waste space with 1.1 libraries when all the apps are 2.0-only?). If you try to run a third-party (i.e. not packaged and not my problem) 1.1 app, then yes, some dependencies won’t be there, such as the 1.1 corlib. You can either install it, or use the –runtime flag to force the app to be forward-loaded as a 2.0 app and use 2.0 libraries.

    This process is exactly like rebuilding the archive against a recent GCC/G++ to avoid shipping old versions of the GCC support libraries – never had to go out of your way to install an old libstdc++ to run some ancient un-packaged app?

    [reply]

  148. Thanks for writing this all out. It has been difficult to get some facts about Mono, and so my opinion of Mono has been less than educated. Now that I am better educated, I see that Mono is okay, and I will consider learning it. Thanks.

    [reply]

  149. Excellent points. Just please don’t , I repeat DO NOT port Microsoft SharePoint to Linux. That’ll be a disaster, a disgrace, an unfortunate event, an abomination of layers upon layers, a cup of crap all over, a leaky abstraction from hell, a broken pattern, an anti-pattern, a cruelty to software developers…

    [reply]

    directhex Reply:

    @LOVE_MOSS_NOT, Who’d want Sharepoint? For one thing, it’s proprietary

    [reply]

  150. There is an easy way to stop the movement against Mono

    Microsoft should produce a legally binding, royalty free, patent unencumbered, MIT/GPL+/BSD compatible license, not covenant, not promise, a license.

    And because I’m not a layer, it should be reviewed and accepted by the legal teams at any of the EFF, FSF or Groklaw.

    Get an URL to that review and voila, you’ve got a one-liner defense against any anti mono comment.

    Until I see that, I’ll continue avoiding mono as the plague.

    [reply]

    directhex Reply:

    @rgz, Microsoft don’t hold copyright over Mono, and don’t make licensing decisions over its release. And they don’t necessarily have a list of patents which are relevant to Mono, which are actually *USED* by Mono, which they own – as doing so would require an audit of hundreds of thousands of lines of code, at a great cost to them.

    For their own Free Software (e.g. ASP.NET MVC) which they own the copyright on, then they use their own (GPL-incompatible) FSF-approved Free license which includes an explicit patent grant

    [reply]

    rgz Reply:

    So your rationale is that Mono is safe because Microsoft has no (and will never have) motivation to actually use the patents it is currently acquiring.

    Mono is safe because MS does not do EEE. That’s a pretty wild statement.

    A FSF-approved GPL-incompatible license? That’s a pretty *weird* statement, citation *must* needed.

    [reply]

    directhex Reply:

    @rgz, I didn’t say that. You did. I replied to your statements – and you’ve extracted your own meaning from what I said.

    Mono is safer than many apps on your desktop, for various reasons. I can’t declare it as “safe” in any absolute terms, as it’s not legally possible to do so – but the same can be said for ANY piece of code, from kernel to browser. It’s phenomenally naive to believe that everything is safe unless it’s Mono – and pretty naive to believe that Mono is necessarily puts you more at risk from patent attacks from people who stand to profit from those attacks than other things on your system (again, from kernel to browser). Eolas, for example, could prompt removal of HUGE parts of a distro’s app suite, including browsers and webapps – and that’s nothing to do with Mono.

    As it stands, do I think it does not serve Microsoft’s shareholders for them to attempt to sue Mono users (which is the usually declared fantasy situation I hear – y’know, because it’s not as if Microsoft would be legally obliged to serve a C&D against the distribution first, and that the people who make the decisions in the distro consider the risk to be ~0, no siree). Attacking Mono would cause major financial harm to Microsoft, for very little benefit. Attacking end users would be flat-out retarded.

    As for your failure to understand FSF policy, the licensed used by Microsoft components such as ASP.NET MVC is the Ms-PL (Microsoft Public License). To quote the FSF website (http://www.fsf.org/licensing/licenses/): “This is a free software license; it has a copyleft that is not strong, but incompatible with the GNU GPL. We urge you not to use the Ms-PL for this reason.” – doesn’t sound like a ringing endorsement, right? Note that the FSF’s approach is that ANY license which cannot be relicensed as GPL should never be used. They say the same thing for common licenses such as CDDL or MPL, down to the same wording: “[MPL] is a free software license which is not a strong copyleft[...] We urge you not to use the MPL for this reason.”. The key thing to take away is that they acknowledge that these licenses are Free Software licenses, and meet Stallman’s Four Freedoms. Urgings against their use is part of the “GPL everything” attitude, not a statement that a license is not Free – hell, they tell you not to use LGPL because it’s not restrictive enough, so go figure.

    [reply]

    rgz Reply:

    @directhex, so while some random software probably infringes on some random patent holder Mono is safer because the patent holder is Microsoft.

    Again, uh?????

    Again your rationale is that Microsoft is not motivated (because of shareholders, PR etc) to sue mono distributors.

    Then why Novell paid MS to avoid just that?

    And if I understand your second point correctly, the Ms-PL license means that there will never be a GPL fork of ASP.NET so I understand why the Ms-PL it is considered an anti-GPL tool, much like the GPL is an anti-proprietary tool.

    But that’s ASP and that’s source copyright, what does that’ have to do with MS patents over C# or ECMA RAND conflicts with the future of FOSS?

    That’s why I say that the whole issue would end once MS releases an open patent grant.

    We had the same issue with Java and Sun open sourced it, is it too much to ask the same from MS?

    As for why some distros like Ubuntu have not dropped Mono yet, IDK, maybe their nave, pobably Mark thinks he can get a deal similar to Novell’s, that could be good for Ubuntu but would be disastrous for Linux Mint or Debian for that matter.

    Would we see the day all relevant distros will follow SUSE and pay a Microsoft Tax? And if not, then why Novell did?

    As more me I’ll be pleased to porting my stuff to ironpython as soo as I see that open patent grant.

    [reply]

    rgz Reply:

    @rgz
    replace “their” with “they’re”
    replace “more me” with “for me”
    Yes, English is not my native language, sorry.

    [reply]

    directhex Reply:

    @rgz,

    so while some random software probably infringes on some random patent holder Mono is safer because the patent holder is Microsoft.

    Again, uh?????

    Mono is safer because it has more assurances than most random apps do. ECMA334 (C# language definition) and ECMA335 (bytecode format, libraries, and all other runtime implementation semantics) are published standards with an explicit binding covenant not to sue (similar in wording to the ODF one). Mono is protected by OIN. And by explicitly supporting Mono in some of their projects, Microsoft are now heavily restricted by promissory estoppel. Can you say the same for, say, Mesa (Microsoft hold many OpenGL patents)? Or OpenOffice.org (Implements OOXML support, patented)? Or the millions of potential patents from hitherto unknown people who, unlike Microsoft, have nothing to lose (as their only business is patents)?

    Again your rationale is that Microsoft is not motivated (because of shareholders, PR etc) to sue mono distributors.

    Then why Novell paid MS to avoid just that?

    There’s enough patent FUD floating about (no thanks to fatboy Ballmer, nor to the “eek, patents!” Linux community) that there are MBA’s out there who will pay a fee to offset patent risk in their business liabilities. At work, we use whatever ships with the systems we buy for no reason other than vendor support.

    And if I understand your second point correctly, the Ms-PL license means that there will never be a GPL fork of ASP.NET so I understand why the Ms-PL it is considered an anti-GPL tool, much like the GPL is an anti-proprietary tool.

    The same can be said of CDDL (OpenSolaris license) or MPL (Mozilla license), but yes.

    That’s why I say that the whole issue would end once MS releases an open patent grant.

    Which patents, beyond the ones in ECMA334/335 specifically concern you? I’d be VERY curious to see successful patent suits over, I dunno, the C# equivalent of exec().

    We had the same issue with Java and Sun open sourced it, is it too much to ask the same from MS?

    You had an entirely different issue with Java and Sun. And issues remain there (Sun has an exclusive patent deal with MS; Kodak successfully sued for patent infringement in Java; OpenJDK has missing pieces). “The same” from MS would be a GPLv2 release of the .NET framework – and frankly, I have no interest in their inferior implementation.

    As for why some distros like Ubuntu have not dropped Mono yet, IDK, maybe their nave, pobably Mark thinks he can get a deal similar to Novell’s, that could be good for Ubuntu but would be disastrous for Linux Mint or Debian for that matter.

    Or perhaps you just made that up? Ubuntu’s Technical Board, which is the governance structure with the power to make such decisions, held a discussion and unanimously decided that Mono fell under the provision of an Ubuntu patent policy which says, and I quote: “The Ubuntu Technical Board has received no claims of infringement against the Mono stack, and is not aware of any such claims having been received by other similar projects.[...] Given the above, the Ubuntu Technical Board sees no reason to exclude Mono or applications based upon it from the archive, or from the default installation set.”

    I’d say it said more about you than me that you assume Shuttleworth has some kind of secret deals in mind which harm other distributions – and especially stupid given Mono in Ubuntu is maintained in Debian by a cross-distro team.

    Would we see the day all relevant distros will follow SUSE and pay a Microsoft Tax? And if not, then why Novell did?

    Free Software can be altered to work around patents – ANY patents – in the event of an actual documented infringement. Doing so may be disruptive. Novell’s gamble was that they could sell more product by saying “if there ARE patents, then you guys don’t need to worry about disruption”. Other distro vendors don’t, and shouldn’t, behave so cynically.

    As more me I’ll be pleased to porting my stuff to ironpython as soo as I see that open patent grant.

    IronPython is licensed under Ms-PL. To quote the license: “2. (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.” – as Microsoft are the developers of IronPython, releasing under the Ms-PL, the software comes with a patent grant. In addition, they test the software against Mono on Debian, and have made changes to behave better on Mono – which brings estoppel into play too.

    [reply]

    rgz Reply:

    @directhex, Thanks, hearing about OIN protection is certainly reassuring in regards of Mono (and mortifying in regards to OpenGL, who cares about OOXML).

    ECMA doesn’t tell me enough and “covenant not to sue” is downright scary because it’s a deliberate avoidance of the word license (to me), besides the links I find are about Moonlight not Mono per se, can I get a link to those documents? Also a document proving that MS can hijack Debian because of “estoppel” please.

    If Novel felt compelled to fork $40,000,000 I worry, this is not because of fud but the cause of fud, or at least a positive feedback loop. I worry other distros are forced to follow SUSE and pay a tax, I don’t have insight that Canonical is planning this but I can’t ignore that four and seven zeros.

    Short note: I don’t worry because the MPL didn’t prevent IceWeasel, the way the Ms-PL would have.

    Doesn’t the expression FUD means, deliberately and maliciously implanting Fear Uncertainty and Doubt? The fear and doubt are genuine and the uncertainty is Microsoft’s fault for not clarifying the matter, and it must not be clear since $40 millions in protection money were deemed acceptable. Would you please link me to that clarifying document that Novel customers weren’t capable of finding (or trusting?).

    Don’t you think every time you say “anti-Mono FUD” you are unfairly accusing us of malice?

    [reply]

    directhex Reply:

    @rgz,

    ECMA doesn’t tell me enough and “covenant not to sue” is downright scary because it’s a deliberate avoidance of the word license (to me), besides the links I find are about Moonlight not Mono per se, can I get a link to those documents? Also a document proving that MS can hijack Debian because of “estoppel” please.

    http://www.microsoft.com/interop/cp/default.mspx
    http://en.wikipedia.org/wiki/Estoppel

    If Novel felt compelled to fork $40,000,000 I worry, this is not because of fud but the cause of fud, or at least a positive feedback loop. I worry other distros are forced to follow SUSE and pay a tax, I don’t have insight that Canonical is planning this but I can’t ignore that four and seven zeros.

    What’s the source of your figures? And no distro will pay for “patent protection” unless they want to advertise that as a feature – as I explained, Free Software can be changed to avoid patents instantly on receipt of a Cease & Desist.

    Short note: I don’t worry because the MPL didn’t prevent IceWeasel, the way the Ms-PL would have.

    I’m not sure what you mean here. Please show your working.

    Doesn’t the expression FUD means, deliberately and maliciously implanting Fear Uncertainty and Doubt?

    Yes.

    The fear and doubt are genuine and the uncertainty is Microsoft’s fault for not clarifying the matter, and it must not be clear since $40 millions in protection money were deemed acceptable. Would you please link me to that clarifying document that Novel customers weren’t capable of finding (or trusting?).

    I’m not disagreeing that the fear is genuine and the uncertainty is intentional. I’m disagreeing that those two are being applied in an honest way – and the doubt, the doubt is being intentionally spread by dishonest means.

    The arguments used against Mono can generally be traced back to a single source or set of sources, and those sources intentionally lie in an “end justifies the means” way. There is no excuse for fabricating arguments – especially when some believe that the *real* evidence is sufficient. I tend to take the same approach in other places – and I’m attacked as pro-Microsoft for it (e.g. I don’t criticize Microsoft for made-up reasons, there are more than enough genuine reasons to rely upon).

    As for your (currently uncited) $40m figure, like I said, some potential Novell customers might compare the costs of the distro versus RHEL, Solaris, etc, and decide that the distro with a 0-risk-from-Microsoft guarantee is a better buy than the one without. If you deploy 10k machines across a business, and find yourself sued, your shareholders are going to want to know why. No matter how remote the possibility, that calculation needs to be factored into business liability insurance calculations – and depending on personal levels of concern, may come to differing outcomes.

    Don’t you think every time you say “anti-Mono FUD” you are unfairly accusing us of malice?

    As long as the war on Free Software and its contributors continues, no, I don’t. The gap between “that guy packages something I am concerned about due to a higher level of distrust for the predictability of Microsoft Corp” and “that guy is a cockroach” or “that guy is spreading cancer” is the gap between respecting and not respecting the “anti-Mono” side.

    [reply]

    rgz Reply:

    @directhex, thank you, I’ll be sure to print that MS page, however as I was afraid that link does not provide any license, it’s just the “promise not to sue” for patents MS owns, what happens if the patents are sold to patent trolls like MS tried to do recently (http://www.eweek.com/c/a/Linux-and-Open-Source/Why-Did-Microsoft-Sell-Off-22-LinuxRelated-Patents-618335/) it seems MS as a very easy an legal way out of its promises, a license would fix that overnight.

    In fact I found an FSF article stating just that so it’s not like I’m the only one worry exactly that (http://www.fsf.org/news/2009-07-mscp-mono in “Moving the Goalposts”).

    I can’t believe you didn’t know about the $40 million dollar agreement between Novel and MS! It can be found *anywhere* in the tubes, here take some links:
    http://www.novell.com/news/press/novell_outlines_details_of_agreement_with_microsoft
    http://news.cnet.com/Microsoft-paying-Novell-308-million-for-Linux-pact/2100-1014_3-6133361.html
    http://en.wikipedia.org/wiki/Novell#Agreement_with_Microsoft

    You constantly repeat that this is just an stunt show for PR from Novell, and also that patent infringing code can be re-written trivially if necessary. My case is that that Novell legal and development teams didn’t find it so trivial.

    That’s why RMS is not arguing that .NET should not be implemented (see DotGNU) or that existing C# apps are evil, just that we shouldn’t use C# for new apps and replace existing one if possible, my answer to your question, why is mono a controversy now when it is so old? Personally it just recently became an issue for me because the motion to move Banshee into the default installation.

    I don’t want you to say I’m misinterpreting you so let me clarify, it seems you said that “the fear is genuine but it is spread dishonestly”, dishonesty means lying, making false statements (even by silence) so what is the lie that we are spreading? That MS promises have too much weasel room? That MS has declared FOSS a competitor it has to outsmart? That MS has a long history of screwing up partners in legal technicalities? What is the false assumption we, or at least myself am spreading with it being true?

    Also you mention some sources lie, can I get a clear statement of which sources these are? Is the FSF lying? Groklaw? the EFF?

    But really, for now, enjoy the weekend.

    [reply]

    directhex Reply:

    @rgz,

    @directhex, thank you, I’ll be sure to print that MS page, however as I was afraid that link does not provide any license, it’s just the “promise not to sue” for patents MS owns, what happens if the patents are sold to patent trolls like MS tried to do recently (http://www.eweek.com/c/a/Linux-and-Open-Source/Why-Did-Microsoft-Sell-Off-22-LinuxRelated-Patents-618335/) it seems MS as a very easy an legal way out of its promises, a license would fix that overnight.

    http://www.oasis-open.org/committees/office/ipr.php – almost identical wording from Sun on ODF’s “promise not to sue”. So either you weren’t aware that this is pretty normal wording, or your argument is simply that Oracle is a super-duper trustworthy company.

    In fact I found an FSF article stating just that so it’s not like I’m the only one worry exactly that (http://www.fsf.org/news/2009-07-mscp-mono in “Moving the Goalposts”).

    It would be lovely if the above link didn’t contain factual errors and gross misunderstanding of the technology – or made even the slightest effort to actually address the issues they “raise”. Or if they could not have the double standard with other “promise not to sue” patent promises from people they actually aren’t digging up dirt on.

    I can’t believe you didn’t know about the $40 million dollar agreement between Novel and MS! It can be found *anywhere* in the tubes, here take some links:
    http://www.novell.com/news/press/novell_outlines_details_of_agreement_with_microsoft
    http://news.cnet.com/Microsoft-paying-Novell-308-million-for-Linux-pact/2100-1014_3-6133361.html
    http://en.wikipedia.org/wiki/Novell#Agreement_with_Microsoft

    I didn’t pay much attention to the paper figures – the only actual transfer of money was from Microsoft to Novell, for an order of magnitude more than your quoted figure.

    Oh, and let’s not ignore the number of low-level patents held by Novell on core eCommerce stuff. The whole patent deal was as much a question for Microsoft as for Novell.

    You constantly repeat that this is just an stunt show for PR from Novell, and also that patent infringing code can be re-written trivially if necessary. My case is that that Novell legal and development teams didn’t find it so trivial.

    You think the entire thing was only about Mono? There’s an awful lot more of SLE than just Mono, y’know.

    That’s why RMS is not arguing that .NET should not be implemented (see DotGNU) or that existing C# apps are evil, just that we shouldn’t use C# for new apps and replace existing one if possible,

    By “replace” you mean “lobby to have all C# apps and libs purged from gNewSense’s optional repositories” which is what RMS has been up to. There’s a bit of a difference between those.

    my answer to your question, why is mono a controversy now when it is so old? Personally it just recently became an issue for me because the motion to move Banshee into the default installation.

    The default install already contains F-Spot and Tomboy, and the Ubuntu technical board have made their feelings on Mono clear – as has Shuttleworth independently (to summarize: “We’ll react to real patent threats, not imaginary ones”). They’ve been in the default install since 2006. Until the Ubuntu Technical Board’s policy is changed, or a *genuine* threat regarding Mono appears, or better non-Mono apps materialize, then the status quo remains.

    I don’t want you to say I’m misinterpreting you so let me clarify, it seems you said that “the fear is genuine but it is spread dishonestly”, dishonesty means lying, making false statements (even by silence) so what is the lie that we are spreading? That MS promises have too much weasel room? That MS has declared FOSS a competitor it has to outsmart? That MS has a long history of screwing up partners in legal technicalities? What is the false assumption we, or at least myself am spreading with it being true?

    The assumption that Microsoft is the only patent threat in the world.

    The assumption that Microsoft won’t change their practices where not doing so harms their business

    The assumption that every single person at Microsoft Corp is cloned from Steve Ballmer’s DNA template.

    And the assumption that the actions of anyone who won’t attack Mono developers is based in malice or bribery.

    There’s your starting point.

    Also you mention some sources lie, can I get a clear statement of which sources these are? Is the FSF lying? Groklaw? the EFF?

    General case? Anyone who has ever considered Boycott Novell to be a credible source, anyone who’s ever cited it, or anyone who has ever read it and thought “oh, of course”. Corrupt knowledge is infectious, you’d be surprised – I realised just how dangerous the site was when I found one of my assumptions regarding the Novell/MS deal was false but heavily cited – and traceable back to that site as its source.

    [reply]

    rgz Reply:

    @directhex, Careful there, the those two deals are more dangerous together than separate, since over $200 million in “support coupons”, is basically free money the question of why Novell paid MS is actually simplified, they didn’t, MS did. Why would MS pay Novell to “pay” for patent protection?

    The same apologists that preach how MS is so good for Open Source because Novell got more out of the deal are also the first to insist those are two completely unrelated deals when anyone starts joining the dots.

    The Oasis promise was from Sun, not ORACLE, and I was not pleased, but even now, I trust MS main competitors to safekeep ODF relatively enough, while the patents last. The real question being what ORACLE is going to do to MySQL, for instance.

    To dispel your accusations, or most probably confirm them.

    Yes I think MS is the only *significantly powerful, adequately motivated and historically confirmed* patent threat in the world. Would you argue they aren’t in a unique position?
    Yes I think MS won’t change their practices *because* not doing so harms their business
    Yes I think anyone who actually matters in MS is in line with Ballmer’s ideas, the rest don’t make a difference.
    But no, I don’t think *anyone* who won’t attack Mono developers is based in malice or bribery. Actually that last one was a straw man and didn’t deserve to be answered and I like how you phrased it “attack Mono developers” real cute.

    Alas, I didn’t get a clear statement on who you are accusing of lying, I guess I’ll have to search the entire Internet to see who you are talking about, not. Actually since RMS has done much more than you ever will for the future of the free desktop I think he’s got a clue what’s going. I dunno about Boycott Novell, I focus more on the groups I mentioned, but what is this lie that the site spread and why do you know it is a lie? And what of the attempt from MS to sell patents away from its promises? You never address the matter directly but insist that MS wouldn’t do anything against Open Source ever.

    Time will tell, the irony being that how likely you are of being “proven right” is inversely proportional to how deep .NET gets into FOSS, so for the logevity of your favorite platform I hope it doesn’t spread too much.

    An to think that this would get resolved with a license so easily, but why demand legal reassurance from a convicted monopolist that totally loves us when you can ask *everyone else* to block out the sun with a finger?

    If MS is so much interested in getting .NET into FOSS and if they really really really really really will never use the patent against distros then Why. Don’t. They. Release. The. FUCKING. License?

    directhex Reply:

    @rgz,

    Yes I think MS is the only *significantly powerful, adequately motivated and historically confirmed* patent threat in the world. Would you argue they aren’t in a unique position?

    Not significantly so. In the general case, people sue MS for patent infringement, not the reverse. Software patent attacks in history (e.g. against Java or AJAX) have come from independent third parties like Kodak or Eolas

    Yes I think MS won’t change their practices *because* not doing so harms their business

    In 2009 and beyond, Microsoft CANNOT rely on the business practices of 1999, because their customers by and large won’t stand for it. They’re losing market segments fast – mobile, fr’example, and a large part of what attracts people in the segments they’re losing is the degree of flexibility and Freedom which Linux or other Free technologies offer them.

    In order to compete, they need to adapt, as ANY business knows. Nintendo don’t still exclusively make playing cards, GE do more than just light bulbs. Adapt or die – and as much as it might pain some within the corporation, some degree of change is required for Microsoft’s continued survival.

    Yes I think anyone who actually matters in MS is in line with Ballmer’s ideas, the rest don’t make a difference.

    A journey of a thousand miles begins with a single step. Ballmer’s “cancer” statements came in 2001, and Microsoft’s first release of something under a FSF-Free license (CPL) came in 2004. I’m not sure I’d agree with the assertion that small difference is no difference.

    But no, I don’t think *anyone* who won’t attack Mono developers is based in malice or bribery. Actually that last one was a straw man and didn’t deserve to be answered and I like how you phrased it “attack Mono developers” real cute.

    I, personally, have been called a cockroach, accused of spreading cancer, and had my CV pored over and summed up as “office boy”, by assorted anti-Mono folks. Now tell me that’s classy.

    If MS is so much interested in getting .NET into FOSS and if they really really really really really will never use the patent against distros then Why. Don’t. They. Release. The. FUCKING. License?

    And the long-form birth certificate too?

    Since you aren’t happy with their previous effort, how about YOU pen a replacement, post it up on the intertubes, and contact parties (such as de Icaza) who can put it in front of the movers and shakers?

  151. There I go again, replace “MS can” with “MS can’t”, by the way, gray on black? Do you hate my eyes? Uhg it’s stylish time!

    [reply]

    directhex Reply:

    @rgz, The site design (and color scheme) came from a time before I was really using any real large sections of text. In fact, they date back from not only before I moved to WordPress from hand-made PHP, but to the hand-made JSP before it about 5 years ago.

    [reply]

    rgz Reply:

    @directhex, oh don’t worry I cleaned it up myself -_-

    [reply]

  152. Excellent post. I’m a Windows developer working in C# and have started researching Mono as a way to open up an app I’m working on too other platforms. I’m unwilling to switch to C++ or Java despite years of experience with both because, at the end of the day, C# lets me get my job done quickly, efficiently, and helps to ensure a higher quality end product. I’m not interested in religious debates – only what works, for me and for my users. Mono looks very promising – but it’s annoying to see so much debate over a framework. Seems most should use it, or not – and leave the rest of us alone.

    [reply]

  153. It’s “who is being asked”, not “whom is being asked”. You English speakers don’t seem to have the tiniest bit of grammatical sense.

    [reply]

  154. [...] the pot against the free and open-source Mono project with FUD that’s been debunked again and again, prompting even Microsoft to weigh in, and yet Stallman still goes on in his own little “we [...]

  155. Good post. I needed that. All the forum debates I found at first had me believing that Mono would introduce DRM in Ubuntu. So thank you for allowing me to make a sigh of relief.

    But I am a bit sad about GIMP not being part of the original install in the next distro. This sadness stems from that I have noticed that some things that are not tend to lag behind on updates and that I am not a power user who feel comfortable with compiling packages myself from the homepages of the program developers. I am an (amateur) artist, and I have a need for a program like GIMP that supports my tablet. I have considered trying out GIMP-GAP for 2d animation, but I can’t find anywhere that tells me how and what words I should use the make command. (I mainly bought this computer that I run Ubuntu on to work with 3d-animation in Blender though, see website link. Also, blender was nice in an installation respect, just download the 2.49b version from blender.org, place it somewhere and start it with the executable file. The repository just had 2.49a, which though it sounds like a small difference is far improved with 2.49b.)

    [reply]

    Dave Page Reply:

    @David, I hope you’re aware that just because an application isn’t installed by default, it’s not easily available to you. However, you wouldn’t be the first Ubuntu user I’ve seen who wasn’t aware, so I feel it’s worth repeating here :)

    Ubuntu’s repositories contain many applications (including GIMP and GIMP-GAP) which are not installed by default. You don’t need to download software from the manufacturer’s website, or compile source code yourself. Simply go to System -> Administration -> Synaptic Package Manager (on Ubuntu 10.04 here) and search for “gimp”, for example.

    [reply]

  156. [...] "Free Software is a meritocracy — those who do things earn respect," asserted one, Schrod… wrote someone responding. [...]

  157. [...] Shields wrote a fantastic piece a few months ago that is incredibly well-grounded and destroys the entire argument: [...]

  158. I’ve been an Ubuntu user for more than two years. I’ve been programming on Java for more than three years, and I’ve been programming on C# for almost one year. I liked C# more than I thought I would, and I totally fell in love with LinQ. In the beginning I was poisoned against Mono, but I have to say, your post was the final push to come back to sanity. I don’t care anymore about religious debates (the lead programmer of the freedom flagship operating system doesn’t, why should we?), I just care about what works, and works fine. Gnome Do is great. Gnome Subtitles is great (all other subtitling software for Linux sucks big time). You’re right, no one can really talk about ‘purity’ or ‘holiness’ (the very core of Linux is written on C, if it was written in Python, the story would be different, and, holiness? What the <>? This is technology, not a road to salvation). There’s something that annoys me a bit: the comparison of companies like IBM and AT&T, and Microsoft. What’s the difference? Their attitude about free software. Microsoft has been always ready to attack the FOSS folks. But the annoyance goes away when I remember that patents_War == doomsday (or at least that’s what it looks like now).

    I personally stopped recommending Linux. If someone is interested, I point them to the necessary websites and resources, I even install and configure a machine for someone who asks, but I never offer to do it, or talk to them about it in the first place. Why? Because Linux works *for me*, and not necessarily for *everybody* else. I don’t wanna be hunting for complicated solutions on drivers or whatever on someone else’s machine (or mine, too). If all hardware is recognized on the LiveCD/Flash run, fine: otherwise, as for me, bye-bye would-be Linux user. Unless he/she/it insists. Linux works great on my laptop, except for the XD card reader and my TV tuner. I use Windows XP to watch and record TV (I should have searched for a supported card, many will say, and I will answer: I did, but I ended up tired and annoyed for not finding USB TV cards supported on Linux on every computer shop I went to, on many of them I got blank stares from people who had NEVER heard about Linux). So, I see, accept and resign to Linux’s shortcomings, but I use anyway because I like it, and I can use it (just like the few people that actually sees, accepts and resigns to Windows shortcomings [the majority of the Windows user base are people who doesn't master even basic computer usage], but uses it because he/she likes it (or has to, what is worse)) My pick between Office 2003 and OpenOffice? Office 2003. I really don’t like it running on Wine, so I use OO.org because I work on Linux, because Linux is secure, fast and uncomplicated to me… and for that reason (what a irony!) I feel really sorry for having such horrible thing as OO.org as a productivity office suite on Linux…

    Sorry for the short rant.

    Anyway, thanks for your post, and thanks for bringing many of us back to common sense.

    [reply]

  159. Not that an OS core could be written on Python, I forgot to say.

    “What a irony”, sorry, that was a mistake, I know it’s “What an irony”, but I was in the middle of a rant (moderate laugh).

    [reply]

  160. Thanks for a detailed post. At first I thought that mono is of no good but after reading this post & looking at its functionality, what it means to developers I vote for mono. Keep up the great work Jo.

    [reply]

  161. [...] Why mono doesn’t suck [...]

  162. [...] Jo Shields volunteered to write a reply, A Guest Essay In Favor of Mono (#1) which he also reposted on his own blog as Here we go again – why Mono doesn’t suck. [...]

  163. [...] like the Fedora Project Board, the Free BSD Foundation, the Ubuntu Foundation, etc. Please read Jo Shield’s article if my intellectually devoid rant hasn’t convinced [...]

  164. Finally one good read on this topic. I have known about this anti-mono campaign for about a month now, but I never happened to read a good explanation of the PROs and CONs of its usage. Especially the cons were given in a blurry fashion – patent violations – which patents? No proof, no citing, no reasonable argument. Thanks for the good article – it really clarified out some of my doubts. The other doubts disappeared after I read a few of the responses here. Really, people, wake up! How do you expect the end user to get sued for using a patented software (as some say Microsoft’s software) while at the same time this software is legally published for free usage and exploitation form its respective vendors. If someone should really be a subject of judgment in case of patent violation, its the vendor, not the end user. As Mr. Shields’s article says – GNU relates to UNIX as MONO to Microsoft.NET. It is an OPEN ALTERNATIVE that brings the BENEFITS of a technology naturally designed for the Windows OS to the OPEN SOURCE WORLD. It provides, it GIVES you all the benefits and the opportunities to explore enjoy and even develop better applications and CROSS PLATFORM SOFTWARE. It is WIDENING the horizons of the software world, NOT RESTRICTING them.
    And for all those anti-MICROSOFT people out there I have something to say. MS is really not a pleasant player in the software world, someone said it is a corporation with a wide selection of idiots in various positions. MS does have a bad attitude to open source and openness at all. MS sucks. Probably yes. Now let me ask all those of you who happen to be ruby/python/php developers and enjoy the use of the asynchronous javascript and XML (aka AJAX). I bet there are a few of you out there. Now suprise – the core convept of AJAX was actually based on something invented by your beloved Microsoft (see it in Wikipedia if you don’t believe me – http://en.wikipedia.org/wiki/XMLHttpRequest). The interesting part is that it has not been created to serve all the purposes that it serves today (obviously, MS did not expect any practical usage of it outside the MS Outlook Web Access context). But, is AJAX bad? Is all the web now sick and dying because a core component of all the AJAX websites originates from an MS creation? What I am trying to say here is that MS.NET here is the same thing as the IXMLHTTPREQUEST COM interface that MS once invented. And MONO one day will become it’s wide opensource adoption and the one that will make the .NET framework almost equally efficient and important to the software world as AJAX is now for the WEB. Or maybe we should all one day stop eating meat because of how a bad thing is killing animals to produce food.

    [reply]

  165. Mono is big trojan

    [reply]

  166. [...] with that, whichever libraries they happen to use,” wrote Debian developer Jo Shields in a blog post earlier this month. “Mono is not a threat.” Related Posts:GNOME creator respects [...]

  167. [...] with that, whichever libraries they happen to use,” wrote Debian developer Jo Shields in a blog post earlier this month. “Mono is not a threat.” Related Posts:GNOME creator respects [...]

  168. I’m gonna be honest with you… I have Microsoft but I just love Mono and the MonoDevelop IDE… for me the real problem, are the .exe files… I don’t understand why in Linux we got to have .sh files that launches .exe (for example), and not bin files that could be launched with an .exe or a .bat in Windows…

    This is the only reason I will not develop for mono and I don’t agree with the instalation of Mono or derivate mono apps in any Linux Distribution…

    Call me fanatic, call me whatever you want.. it is just my humble opinion…

    Btw very nice post that help me understand a lot of things ^^ Once again thank you.

    [reply]

    directhex Reply:

    @Luis Da Costa, it’s .exe files because the ISO spec says it is, and Mono tries to be Standards compliant. Removing that would be a needless breakage of compatibility for no tangible gain.

    [reply]

  169. *redacted*

    [reply]

  170. *redacted*

    [reply]

Leave a Reply