Linux Today: Linux News On Internet Time.
Search Linux Today
search.internet.com
Linux News Sections:  Blog -  Developer -  High Performance -  Infrastructure -  IT Management -  Security -  Storage -
Linux Today Blog
Linux Today Navigation
LT Home
Preferences
Contribute
Link to Us
Search
Linux Jobs

Marketplace Partners

internet.commerce
Be a Commerce Partner

The Linux Channel at internet.com
Linux Today
Enterprise Linux Today
Apache Today
JustLinux.com
Linux Planet
PHPBuilder
All Linux Devices
Technology Jobs

searchcats.jpg

November 2009
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

A Guest Essay In Favor of Mono (#1)

| | Comments (42) | TrackBacks (0)
Here we go, the first response to my invitation to anyone who wanted to have their say on the value and benefits of Mono, why it does not represent a threat to Linux, and anything else they might want to say about it. Thank you to Jo Shields for writing this. --ed.

Update 6/12-- in the interests of completeness, here is Mr. Shield's preamble from his blog:

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.

Thank you Jo, I was very worried about AIDS. I feel better now. --ed.

by Jo Shields

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


0 TrackBacks

Listed below are links to blogs that reference this entry: A Guest Essay In Favor of Mono (#1).

TrackBack URL for this entry: https://swarm.jupitermedia.com/mt-tb.cgi/8239


42 Comments

Vonskippy said:

Wow, a well thought out and written commentary on a topic that should be a non-issue. Are you sure this is a Linux site?


revdjenk said:

Thank you Jo...

I had NEVER heard any of this background info before!

It makes sense that we all should be more open to look at the whole of a story, than reacting to just one side, anyway.

God Bless
Doug


Craig said:

Thanks, Jo. I don't fully agree with all of your arguments -- for example, comparing C to Mono in terms of "standards from convicted monopolists" doesn't really make sense because the C standard has been controlled by ISO for about 20 years now, and AT&T's monopolistic practices involved the telephone network, not computer software. However, provided that you are correct about Mono's legal situation, you make a good argument for Mono. And you are certainly correct about the atrocious behavior of many know-nothing Microsoft bashers. There are lots of good reasons to criticize and distrust Microsoft, but that's no excuse for abusive ranting.


Earl said:

This is a very revealing article. It is also revealing that it was posted on this site. It shows the editor is willing to have a balanced input and look for more information.

Earl


Joseph said:

I think this essay is brain dead. It aid very little about why mono is worth the disk space. It many attacked C a programming language that is used to build the linux kernel. The points that were made about C are just plain wrong. That's why C is still the most used programming language. I read this essay because I am looking into mono to see if it is worth my time to learn. I have less then zero interest if it is related to MS or not. But this essay didn't provide me with any information about mono above what I could get anywhere. So what if it has garbage collection. That's been around for a very long time in many languages. I think that if this is the level of intelligence that is behind mono it's not worth my time. Hopefully this is just another ignorant wannabee and there is something worthy of my time in mono. SO far what I have seen of mono doesn't impress me. Back in the days that I had my own software company writing IVR systems I would use VB to create the GUI and use C to write the functionality and compile that into a dll. (This was when you got slackware on a handful of floppies). That worked great!! The more I look at mono the better gambas looks to me. If I can get my head around writing components for it I think mono is dead in the water for me.

The only thing that is important is does it do what I want it to do without having to give to much blood and does the user interface not suck. So far mono requires way to much blood. Maybe I just haven't grokked it yet but I doubt that.


Jose_X said:

It's tiring repeating everything. It's also late for me. Hopefully, I'll get back to this thread tomorrow, but there are a couple of bits to be said now.

>> Speedwise, Mono is much faster than Python - up to several hundred times faster according to some benchmarks.

It would be nice to see the details of such benchmarks. Not because I doubt there may not be some cases where this might happen, but because I think they would be degenerate or very abnormal cases.

C, Java, etc, usually aren't anywhere near 100 times faster than python, iirc. That is why this claim you make grabs my attention. I have also heard some negative things about the speed of mono apps, so, yes, your statement is quite intriguing.

If speed were a problem for a python app, it's more than possible to profile and code up the key parts in C. People actually do this. Python, like perl before it, like Java, etc, was designed to support this.

>> It has a fraction of the memory footprint of Java applications.

Numbers here would help as well. A "fraction" is an ambiguous term.

>> It has modern features such as garbage collection which make it easy peasy to write code with compared to malloc()-happy C or C++.

Yet C/C++ remain popular in many areas and a top performer.

Many languages have garbage collection.

The point of this part of your post appears to be to show that it is not a crazy idea that C# would have fans. No prob.

>> Mono on the whole also enables easier migration - for both developers and users - from legacy CLR frameworks such as Microsoft.NET

It's too bad that while this is a bullet feature, the mono people are not focused on moving Windows dotnet apps to Linux. Surely there are many wonderful MSdotnet apps, right?

I almost think that this is the excuse to try and pass mono off as just another wine project.

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

There are an awful lot of libraries on Linux. I don't think the issue is as much about a "language" as about an API.

Let me know when you have a reply to http://boycottnovell.com/2009/02/04/the-api-trap-part-1/ , btw. I've asked this question too many times it seems. I can try and explain it if you want me to, but ask. I don't think you understand what I wrote. Feel free to quote from it in your rebuttal.

>> Mono is covered by the OIN, .. Attacks against Mono would risk patent "world war", which Microsoft cannot win.

The OIN is useless against patent trolls. Gates, Myhrvold, and others are licensing or buying patents with no end in sight.

Microsoft itself showed they are willing to come after companies using Linux with their pathetic FAT patents. Hey, at least it's their created standard.

>> Why it is not a threat

Here is a comment I wrote recently that touches on various issues with mono and patents: http://www.linuxtoday.com/news_story.php3?ltsn=2009-06-10-013-35-OP-CY-UB-0053 .

For example, I address the following and other comments:
>> So when MS extends .net and adds the patented technologies Mono would either implement a non-infringing version with the same interface OR provide a non-infringing version with a different interface. In either case this can't extinguish mono or any of its applications because applications written today cannot have used a future, currently non-existing patented implementation.

Also, a reply to this http://boycottnovell.com/2008/11/25/jose-on-mono/ would be nice.

It describes reasons not to want to contribute to distros that encourage actions which increase the value of Microsoft assets.

I do very very much hope software patents are ruled void by the US courts, but that day has not arrived yet.

>> 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?

C was from the 70's.

The issue with many people here is patents.

Software patents were not an issue 30 or 20 years ago.

The C being used today has moved way beyond what ATT provided as well as ATT control.

Of course, this is all a red herring anyway because..

mono is not "a language". It's a heavy package, heavy on the API front. You know better than to keep comparing mono to C.

Jo, maybe you are arguing for us to re-evaluate mono perhaps in 10 or more years or at least after software patents become void if that happens. OK well, that would be a suggestion that sounds reasonable to me.

>> Mono implements an improved, Free replacement for a proprietary offering.

I think instead of saying "improved", you should say FOSS. I am not sure people are flocking to mono from MSdotnet.

>> If this is a problem, why do people use GNU (which provided an improved, Free replacement for proprietary UNIX)?

What do you want to hit, the ruthless monopoly aspect or the high patent risk aspect? With the sorts of analogies you keep putting forth, I am wondering if you understand either of these issues.

.. I expect to finish this tomorrow.

PS: Thanks again Jo for the general hints and info on Debian packaging. Just don't think that changes anything about mono. And please don't be tempted to take my comments here personally.


Troll said:

Once bitten and twice shine. OOXML, FUDs on patent infringement, dirty tricks on "buying" Windows installation, ... I'll wait until Microsoft play fair for at least 5 years. Thanks for developing Mono and playing catch-up with .Net, but no thanks.


Buks said:

Sounds much like the big hooha about KDE daring to use the "dangerous" QT framework!


Troll said:

forgot to mention that I'll take freedom and peace-of-mind over convenience any time. BTW, I'm using Zim, gqview, and Launchy.


John Morris said:

I know it isn't entirely rational but I have sworn to abandon any distro where mono can't be nuked and leave a 100% usable desktop. I have heard all of the arguments and am unmoved by them. I simply do not trust Microsoft.

The comparison between Microsoft and AT&T just reveals the author's lack of knowledge of the early history of UNIX. Had AT&T been able to enforce a monopoly on UNIX it would have probably have died out and there would have been no BSD, GNU or Linux, instead Stallman would have used something else as the base to build his Free platform around when that printer manufacturer ticked him off.

I do not trust them not to be laying a trap with patents. And since, for all the blather[1] to the contrary, Mono is only interesting in the sense of chasing Microsoft's tail lights, thus I believe it dangerous to allow a sworn foe to have the helm on an environment that plays a key role in the evolution of Free Software. The potential for mischief is simply too great; why taunt the dragon? So it should never be allowed to play a key role.

The presence of mono doesn't bother me so long as it is used to bring in end user apps, the key phrase being bring in. Using mono to implement core technologies in the Free Software stack is dangerous enough that I won't develop a dependency on anything based on it. If that means I am using an obscure DE on BSD in a few years so be it. And since a pretty big portion of the userbase seems to share that belief any attempt to push mono into the core tech base will probably cause forks and other unrest.


[1] Yes blather. Let us compare and contrast with the closest comparable language/runtime, Java. Was anyone interested in a clone of Java that wasn't Java in the sense of tracking Sun closely enough so as to run Java apps? Can anyone envision a Mono that forked away from .Net (barring a patent problem, etc) to the point where .Net apps wouldn't run? So Microsoft will be dictating the APIs into the indefinite future. And they will resist the temptation to cause their sole remaining rival mischief?


dustbin said:

Well done, Mr. Shields, well done, indeed!

-dB


Unknown said:

It's also late where I live, so let's cut to the chase. Of course, brands belong to their owners, not me.

1] It's the 21th century; this "it's so good that everyone ought to use it" is not even from the past one -- it's more like those mad scientists claiming steampower can only be good and what could go wrong with dynamite?

2] Technical factors always lose. Period. What is good today will be rubish tomorrow. Being a techie means adapting to change, like living with a disease. Even Linux will have an end, like Mono will, too -- and also M$haft (who the heck uses such wording, most only write M$, it's shorter).

3] SCO was a major PITA -- and they had absolutely nothing! M$ will do like the "Alien Queen", clinging to the spaceship even to the movie's last minute; don't be naïve to think they just be gentlemen, stand up and say "we concede we were defeated, congrats".

4] When will people learn? It's not about being fast or leaner. One cannot adopt a purely technical stance saying "I'm out of this Politics thing". It is about strategy! What would be the reasosns for Silverlight's creation? Has M$ ever thought about dethroning Flash out-of-the-blue? Of course, not... it's a necessary measure to undermine Flash usage. Moonlight is but a tool in this fight. The same goes with Mono vs .NET. In the end, it's something like using the enemy's power against himself. Think about how many developers are now helping spread those M$ standards, not using more traditional languages/APIs and, wait for me, engaging in intra-movement fights?

5] There's more, but I'm tired -- but this Mono is getting so bad that I'm thinking about a mc replacement...


buynsell said:


The merits of the software itself are irrelevant. Really. It's the stench of Microsoft that cannot be cleansed.

You say Mono has next to no legal baggage. Are you a lawyer? Apparently not, nor do you quote any lawyers, either. Nor do you speak for Microsoft. Red Hat and Fedora are taking no chances. I trust their legal judgment more than yours.

Microsoft likes to say that Linux violates its patents, yet Microsoft lacks the honor to publicly disclose which ones. Microsoft wants to destroy Linux with patent litigation, or force every Linux user to pay a Microsoft license.

OIN will offer little protection. Microsoft only has to threaten litigation to force people to pay. OIN is useless with a settlement, which is kept secret, so there is no bad publicity. And how much money does OIN have compared to Microsoft? Why should Microsoft be afraid of OIN?

Will Microsoft eventually pay Debian and Ubuntu not only to install Mono by default but eliminate competing non-Mono apps as well -- just as they have to netbook OEMs like Asus not to offer Linux anymore? What a great way to co-opt Linux's most popular distro.

Here's the acid test: release Mono under GPL 3 or a compatible license. The article I really want to see from you or your colleagues is why you refuse to do this.

Ubuntu is at a crossroads here. When Novell did the deal with Microsoft, Mono became Microsoft software. And that is a bad thing.


Vince said:

Patents are a threat for any program and for any programming language, Mono is no exception.

Mono is not more risky than Java or C applications.

Fight against patents instead of platforms


Bo Fussing said:

Well written essay Jo

I like your quote on Microsoft being a corporation with a wide selection of idiot senior managers, and a limited selection of competent developers.

Also I support your argument that frameworks like Mono encourage .Net developers to look at supporting the Linux platform by porting their apps or using their skills to create FOSS. I have had conversations with .Net developers where this was the case.

-Bo


CHub said:

I'm a IL fan, but I must admit there are risks that Microsoft could use the interoperability to bring competition to applications on the Linux/GNU platform. Example a popular package written in C# could find itself quickly sold on the Linux platform, end of the day you have a Windows World running on top of linux.

I've only recently moved over to Linux in the last two years, and one of the reason was to free myself from restrictive software. I don't want the likes of Microsoft supplying the main stay. I wont open source, clean and unlimited software.


Dx said:

Good article!


Pietro Pesci Feltri said:

Your effort to defend mono is good, but not perfect.

Please, remove the remark about mono is hundreds times faster than Python. That is a false. Python is not the king of speed but no language I know is hundreds times faster than it. Believe me.

The C - ATT comment is erroneous too, but others has well explained that to you.

Think about that:

The problem is not only about MS. There are at least two other well known packages based in MS technologies:
wine and samba.

I read things about not to use them because is based is evil technology and blah blah blah. That is, in the Linux camp, there are anti-wine people and anti-samba people too. But as far as I know, the number of anti-mono people is much greater, and we are speaking here about the same people in al three cases.

Why mono has so bad reaction compared to the others?.

First, wine is about windows API replication and samba is a smb/cifs API to share files. Both of them, utilities of wide use in the computer world, and if Linux people want to get Windows people, almost everybody using that technology, that compatibility/replacement packages must exist in Linux too. wine will ever be behind Windows API, and samba will be behind cifs API, but that programs/utilities was widespread.

On the other side, how many users was using .NET technology when mono was announced?. Nobody was using that technology, and for me, that was a surprise. Mono is the first software that promise to be behind MS technology before that technology was created. Do not that tell something to you?. In that moment, a lot of Linux people told that was a non sense move, better was to try to replicate existing and emerging technologies like Java, but that was unacceptable because the mono proponents said Java was in Sun hands (BTW: Java is free now), and by my deduction, appear better to be in MS hands :). There is no common sense.

Second is the fact wine and samba are for user consumption, but .NET/mono are for developers too. I can understand to be behind in some utilities, but in development tools too?. If you think that, you are plain wrong from my point of view. I use Linux not because is free, is because is **better**, simple as that. I don't want crap at any cost nor expensive nor free.

Third is patent appear not be problem for you, but is a big problem for me. I don't want a company being sued because some MS patent problem, or the system crash because the new version is not API compatible. All because I don't choose the correct tools. Okay, I can change the problematic part whatever that be but anyway, will be my fault and I will be responsible. Is bad idea to go in life finding problems, unfortunately problems comes to you without your help. Only sit and wait.

I am Fedora user, but from Fedora 11, mono is optional, that avoid to worry me removing it, that is the first thing I usually do after installation.


oiaohm said:

OIN is only any use if the patents use to attack system overlap with OIN Patents. Attacking the Linux kernel for instance does overlap.

Novell has not taken out any patents over the Mono system to protect it. Past example is freetype covered by gplv2 just like mono core engine. Section of freetype requires a patent license from apple for you to legally use. Apple agree to allow freetype to ship there code as long as the patent effected code was no longer default. Apple could have forced freetype to remove the code completely. Niceness of Apple applied there. The documentation for that is in the freetype mailing list of the time. Apple allowed freetype to exist. You cannot presume this kind of niceness from MS. Reason why Apple allowed freetype to exist they were using freetype themselves.

Another is RCU in Linux kernel IBM holds patent on that and its license is only granted to be used in GPL code. Sorry Jo Shields is spinning patent safety crap.

"If Foocorp has a license to use patents, under a "non-discriminatory" license, and did not pay for them" Again Jo Shields lies. non-discriminatory does not block patent holder form lifting price massively when first licenses expire on everyone this is still non-discriminatory. So basically when Novell 5 year deal with MS expires.

If mono has no special treatment under the deal upgrade it license to GPLv3 so reducing patent attack risk.

From a developer point of view why not complete gnome vala http://live.gnome.org/Vala. syntax style like C# none of the overheads of .net. .net is not the only path to simpler coding.

F-Spot is a great example its not the best of the bread open source image management software. Due to simple pig headness that QT applications cannot be used with GTK inside Ubuntu and others does F-Spot get included.

Applications should be selected on best of breed. I am sorry when you do that there is no place for .net. None of its applications are best of breed.

Drop mono add kde runtimes add a few kde and qt applications to the gnome desktop and you have a perfectly good desktop. Just like a few gtk applications are the best of there breed and should be included with kde distributions.

They look out of place. Then send a task force in to source out theming on freedesktop once and for all.


Laurent Debacker said:

The main point is that we do not even need to trust Microsoft. The Open Innovation Network (OIN) is there to serve as a shield. Microsoft has already attacked GPS manufacturer TomTom about the FAT implementation of the Linux Kernel. If Microsoft want to attack someone, there are many ways for them to do so, even without Mono.

Thank you very much for this fine essay.


Steve Dodier said:

"They are against political candidates, or Microsoft, or people from certain places, or whatever."

This is so low from you, Jo. The purpose of this phrase is to trick people's mind into thinking that being against some of Microsoft's practices is just as bad as being racist. A grown up person would restrain herself from using such arguments, especially after a well-written essay.

And FYI, yes, I am against those same candidates that are against people from certain places. And I am against the commercial methods used by Microsoft from spreading their software. And I'm also for a lot of things, including Free and Open Source Software.

Reducing people into two categories and comparing the one of these categories you're yourself "against" to racists is plain nonsense.

As for the "better" applications, it's ok if the choice of including applications is done on which is better. As a Xubuntu user, I consider memory footprint to be much more important than a few extra features that most of the time are not needed. This is why I do hope that we're not going to include Mono since we need it neither for the notes application nor for the image browser nor for the music player.


Omaha said:

I have been seeking to get relevant arguments enabling me to revise my restrictive position wrt Mono/Moonlight for quite some time, and the contribution from Jo Shields is indeed something I have waited for.

Basicly, it's a question of how (what) information is presented to the potential audience and by whom. Wherever anyone read whatever about Mono, the message and the messenger is extremely important. When the messenger is Novell and the message is Microsoft (through Mono) it's bound to be challenging. It will cloud facts and merits.

While I fully understand why the rants at the bottom are there, the sections presenting Jo Shield's view on facts and merits would have provided even more relevance without the rants.

Great article :)


k1773r37f said:

My responses may not be presented in the order that their counterparts appear in the article.


First, for the most part this is a well reasoned essay supporting MONO. It is one of the best pro MONO argument I have seen so far. It does not swat me though, and I feel that the main reason for avoiding MONO, that being patent threat from Microsoft, was not adequately addressed.


MONO is clearly derived from Microsoft technology. And I agree, WINE and SAMBA apply here as well. I use neither of those either. But neither SAMBA nor WINE are installed in Ubuntu by default.


I am not against having any of these available in the repositories. I am not even against them, including MONO being in the standard default repositories. I am against any of them being installed by default.


MONO is the most insidious of the three because a casual user does not even know of its existence until they are already used to the applications using MONO.


For instance, I had no idea at first that F-Spot was a MONO app. And for what it is worth, I actually *prefere* gPhoto. I was annoyed when I upgraded Ubuntu and gPhoto was replaced by F-Spot. But, in my ignorance, I went ahead and used F-Spot because it was already there. And at the time I thought that installing gPhoto and configuring gPhoto to launch automatically when I plugged in my camera was more trouble than it was worth.


It was only after becoming accustomed to using F-Spot that I learned that it was a MONO app.


Comparing MONO/Microsoft to AT&T/C is akin to comparing green persimmons to potatoes. MS is a convicted monopolist shown inordinate leniency by the DOJ for unethical behavior in the computer software market in which it operates and MONO is an implementation of their technology for which they do have patents.


AT&T was a convicted monopolist with whom the DOJ dealt strongly for their misdeeds operating as a telephone service provider. As part of their punishment, they were prevented from participating in the computer software industry at all. Therefore while UNIX and C Language were AT&T's properties, at the time AT&T was unable to capitalize on them so they gave them to anyone who asked basically for free. (AT&T only asked for the cost of the media)


Also, AT&T did try to flex it's muscle against Unix, and lost. Well, settled out of court. But BSD is still around so it is clear who the victor was.


AT&T did not go about spouting how BSD infringed on their code without providing tangible proof either. It was clear that AT&T was upset about the attribution stanzas in BSD source code attributing AT&T's copyright to the code was the source of the claims.


M$ goes off spouting how there are 325 violations in Linux code. So far the only one identified in the FAT 32 Long Name Extensions.


MONO is just one more potential target at which M$ to aim it's IP threats.


Whether the MONO *actually* infringes, at this point is moot. In order to support M$ FUD efforts against Linux, MONO does not have to actually contain M$ IP. It just has to appear to contain MS IP. And to the casual observer, MONO does *appear* to contain MS IP. So again, why give MS such an easy target to fling FUD against?


Chris said:

Great article, these things had to be said! This whole debate cannot be left to hotheads and paranoiacs.


Benfrank said:

Omaha, or anyone else, can you point out the facts in the article? I saw very few. Mostly I saw a lot of emotion, mainly anger, handwaving the legal and community issues aside, some really silly and irrelevant comparisons, and some outright whoppers like being hundreds of times faster than Python.

What I had hoped to see were some good solid technical reasons for recommending Mono over other comparable development frameworks, and some insight into the legal questions (patents and Microsoft deliberately breaking things). Instead this is pretty much another flamey rant that doesn't really have much substance. Best of breed is very debatable and I do not think that F-spot or Banshee are the best choices. What about Rhythmbox and Digikam, to name two? Which is really personal preference, there is no objective "this one is the best and not this one" standard to apply. The whole article is really about the author likes Mono. Period.

I do applaud the author for having the courage to put himself out there like this, that takes real guts. Thank you.


Unknown said:

Please, Jo, notice that what you propose has already been tried and flunked in a titanic way:

See this article: http://www.workswithu.com/2009/06/10/memo-to-canonical-dont-repeat-ibms-mistakes/

Don't you also make the same mistake!

And since you like quotes (as I do), here are some more...

George Santayana: "Those
who cannot remember the past are condemned to repeat it."

"The issue today is the same as it has been throughout all history, whether man shall be allowed to govern himself or be ruled by a small elite." -- Thomas Jefferson

This is for those who fight against Mono:

Those who are weak don't fight.
Those who are stronger might fight
for an hour.
Those who are stronger still might fight
for many years.
The strongest fight
their whole life.
They are the indispensable ones.

* "In Praise of the Fighters" (song) Brecht, from Wikiquote

Also, regarding idiotic managers:

“Those who are too smart to engage in politics are punished by being governed by those who are dumber.” - Plato

---

Take some time to see who is tapping your back and giving you support... don't put the fox to guard the chicken...


Benfrank said:

One other thing-- some link to the alleged death threats and having people fired would be nice. The charges of terrorism are silly, and he actually calls other people childish after saying that mockery is OK, and that non-developers shouldn't get a say. I think he should look in the mirror....


Wonderbird said:

Is C# a royalty-free ISO standard? I do a lot of C/C++ programming and I can see some of the benefits of having similar syntax with automatic garbage collection, etc...

I find the history of Microsoft first trying to corrupt Java and then "inventing" C# after failing in their attempts to "run away" with the Java standard rather troublesome. If C# was actually a "real" standard as opposed to one controlled solely by a monopolist abusing vendor I might be inclined to take a fair look at its potential...

I liked the basic article and did pick up a few things from it but my basic answer about the status of C# remains unanswered. (FYI: This is not just an anti-Microsoft sentiment - I applied the same standard to Java, waiting for not just "compatible" implementations to be available but for it to be a true standard not controlled by a single vendor before wanting to work with it.)


raphtee said:

I have an old DEC Alpha on which I installed Debian about a year ago. However I was never able to find a deb for mono on the alpha, and my attempts at installing from source failed as the code would not compile on the alpha architecture. Is this still the current situation? or has there been progress on porting mono to the alpha architecture.


Grr.. said:

Come on! We can't have stupid mp3 support by default because of possible patent violation, but it's ok to have by default whole armada of MS patents and build our userland on top of them? Just who is crazy one here?


Karl said:

If good apps are all that matters why should anyone care about Microsoft's warmed-over virtual machine technology? Best-of-breed applications can be easily made using tools which already exist in every LSB distro, such as Qt. Why should any distro core be bloated with toolkits du jour just to cater to fan-boys like Jo Shields? Why should we give the 800lb gorilla of the computer industry any more leverage and mindshare?


Sam Varghese said:

iTWire (note the correct capitalisation) did not make any kind of "curlish attempt" to find out what was involved in obtaining a "royalty-free, reasonable and non-discriminatory" licence for patents from Microsoft which could be part of .NET. Kindly avoid spreading misinformation, something you accuse others of doing. Charity begins at home.

Rather, straightforward questions were asked. With regard to companies' rights over technologies, one cannot take some general saying as gospel; one requires straight talk on these fronts. And remember, the questions came about because of a post on your own website.

Have a look: http://www.itwire.com/content/view/25215/1090/

It's interesting to note that until now, nobody has ever thought of asking these questions. You have a curious mind - how come you are not curious about this?

Your rant has no links to provide substance about the claims you make; I find that remarkably revealing about Mono advocates. There are always references to "so and so said such and such" or "my uncle heard about this on a full moon night" but nothing specific.

Until Novell, Microsoft and ECMA are open about the exact terms under which developers and others can use things like Mono and Moonlight without fear of RIAA-style lawsuits down the track, I will not be convinced.

I am not a developer. But I am not a fool. I know the history of Microsoft and if anyone asks me to believe that a company, which is now under serious pressure, is going to change, then they had better provide plenty of evidence.



Joshua Simmons said:

CHub said:

I'm a IL fan, but I must admit there are risks that Microsoft could use the interoperability to bring competition to applications on the Linux/GNU platform. Example a popular package written in C# could find itself quickly sold on the Linux platform, end of the day you have a Windows World running on top of linux.

I've only recently moved over to Linux in the last two years, and one of the reason was to free myself from restrictive software. I don't want the likes of Microsoft supplying the main stay. I wont open source, clean and unlimited software.

---

I find this comment interesting.

It seems freedom no longer has anything to do with the freedom to choose, it just means that the said product has nothing to do with microsoft or any other evil company.

Your issue is incredibly flawed, you say that a popular package written in C# could become sold on the linux platform? Well for one who cares? Better software has to be a good thing, and nobody is forcing you to use it. And for two, is this not so with every other language available to linux programmers, especially the cross platform ones? For some reason I don't see a lot of people moving to remove Java and everything to do with it from linux, although it provides exactly the same "risks" in this area.

For what you propose to happen, we would have to forgo all freedom in linux, and port everything over to a new language where anything developed with it must be released under the GPL v3. The crazy thing is that I can actually see some people supporting this.

Basically, linux should be about the freedom to choose. Some zealots ( from either 'side' ) getting their knickers in a knot over non-issues really should have no sway over the platform chosen by the developer, and the platform on which something is built should have no sway over the inclusion of what is seen as a superior application in a linux distribution.


shmget said:

the author mention Tomboy as a 'best of breed' application... but of course fail to mention gNote
as a proof that mono is nothing special. A skilled C++ developer was able to migrate tomboy out of mono quite quickly...

mono... C#, is microsoft reaction to it's failed attempt to embrace, extend and extinguish Java. Since it started on that road it spared no expense to push that clone through the market and especially in universities.
The result is a generation of freshman that have been feed C#, and arrive on the market knowing nothing else. Sure they find mono attractive. But it mostly reflect the poverty of their education, rather than the quality of C#.

The author find merit in C#, by finding it less worse than each other languages at one thing (different for each language). That argument can be made for almost any language.
In the end we are left with the usual claim that malloc is hard. Yep, reading is hard too, that doesn't mean that we should stop teaching reading skill and glorify recorded book.
It baffle me to see so many people wearing their lack of skill as a badge of honor.


Eruaran said:

This caught my eye:


"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)"


What a breathtakingly disgraceful smear this is.

I've NEVER seen anything like that on Boycott Novell comments.

Provide evidence to back up your claim (A link will suffice) or apologize.

I can't take anyone seriously who indulges in such a disgustingly dishonest and juvenile attack.

Such comments speak volumes with regard to your character (the lack thereof).


Gr said:

Microsoft first designs and files patents. Then, and only then it publishes/releases software. There is no patent-free MS software or technology. If that exists, that software is either unpatentable (ie. MS was forced by law to be "open"), or it's something that even MS considers junk. So what do we need/want from them? Junk, patents, or both?


Jacob said:

Benfrank:

It's a expression of Jo Shield's position and until the ranty sections I found it both interesting and well written. That doesn't imply that I believe that Jo Shield is the keeper of the truth though. Neither are you, Carla Schroder or myself.

We are expressing our views and opinions. Somebody will read it and the absorbed information will support some of our views and change others.

What I don't like is that one side is surpressed in debates - silence doesn't challenge my position, and it doesn't improve the value of my standing. Piles of garbage and FUD are thrown by both sides surrounding the Mono/Moonlight issue.

I welcome Jo Shield's arguments. Sadly, I believe the rants undermines the value of them. I understand why the rants are there - simply because it's hard being on the receiving end of "du bist kein mensch". Might induce bitterness.

Jo Shield stood up and defended his position. I missed someone doing that without evasion, and i appreciate it. It doesn't mean that I agree though. Far from it.


Ghostshaw said:

I want to leave a little comment about the speed differences. In particular the case of very uncommon code and such. I suggest you try something like this (albeit translated to each individual language):

for(int i = 0; i int var = 0;

in varying languages, for example C, C# and python. I think we cna all agree this is a pretty common code occurence since this test your general loop. We could even go more general and do a branch, but that would be a bit to fast to time properly. Now I think you will notice that for this particular case C is a 1000 to 10000 times faster then python (taking approximately 50000 cyles so 0.00005 seconds on a modern processor) and C# will mainly "loose" time to C during startup (which in this case is very relevant but in your average use case is not) because that takes a few extra milliseconds. Python however will drag behind by far.

And btw most of the C# standard is so closely akin to other languages like C++ and Java that patent sues over it are simply impossible.


Comments are now closed; no new ones will be posted unless they say something new in a polite and thoughtful manner. Endless repetition and abuse aren't contributing anything useful. Mr. Shields was the only person to accept the invitation to write a guest post; he did so using his real name, and knowing that it would be the equivalent of putting on a bullseye. Whether anyone agrees with him or not that took some guts; which is more admirable than taking shots from behind a bunch of different fake names in comments and talkbacks.

Thank you to everyone who, agree or disagree, did write thoughtful reasoned comments, they are appreciated.


tazmaniandevel said:

I don't mind if people use mono or .Net, I just don't like it for my apps.

WEEEEEEEEE


Bru45 said:

I had hoped to see were some good solid technical reasons for recommending Mono over other comparable development frameworks, and some insight into the legal questions (patents cvs and Microsoft deliberately breaking things)


Nice post, nice blog too, thx ;)



Leave a comment








All times are recorded in UTC.
Linux is a trademark of Linus Torvalds.
Powered by Linux, Apache and PHP

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs