The Ubuntu/Mono debate continues…
Mono seems to be causing a great deal of debate and discussion within the Ubuntu Community right now. I’m sure it probably always has, but it definitely seems that the intensity is building at the moment.
For those who don’t know what Mono is, from their website:
Mono is a cross platform, open source .NET development framework.
Two blog posts have caught my attention in the past couple of days and should be mentioned, one on either side of the debate and interestingly that is one from a developer and one from a user. Thankfully these two posts and most of the comments attached to them have been free from the personal attack and verbal abuse that has been written on several mailing lists and forums recently. Those don’t have a place in a decent debate, I will not condone them by linking.
First the developer.
Jo Shields writes well and clearly has a lot to say. This is a well written piece that articulates the position of a software developer who clearly likes what Mono has to offer.
I recommend you read it and consider carefully what Jo has to say.
The other article, from a user and expressed in plain and heartfelt language, tells us why he feels Mono is not for him.
I also recommend you read that one too and consider his position.
What strikes me with these posts is how technical and abstract the position of the developer is and how emotional and personal the position of the user is. It is a very clear distinction and one that is probably at the heart of this disagreement.
Interestingly, the developer seems to inadvertently (I assume) be making the case for Mono dependent applications being removed from a default install in his final point in the “Why it is not a threat” section:
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”.
The user’s post is emotional and from the heart. As a user myself I believe this perspective should not be regarded in any way less important or valuable than the technical position; both are just as valid.
The bone of contention for me is Mono. I remove it. I don’t like it. I refuse to use it. It rubs me the wrong way. Anything that starts with Microsoft and goes via the sellout, Novell, cannot be good.
I know that Microsoft is opposed to the existence of Linux. That have said so, often and stridently. I know that Novell caved in and did not stand up for FOSS when they had the chance. They have since apologized, sort of, but the damage is done. Other companies did not follow suit, including Red Hat and Canonical. I respect them for this as much as I detest Novell for selling us down the drain.
My perspective on the Mono thing is from that of a user and not a developer. I really fail to see why anyone would want to build new applications on top of a framework that has so many unanswered questions and causes so much angst in the community as a whole. We have plenty of other solutions that are – if not 100% free from controversy – certainly far less likely to end up requiring the kind of backtracking or complete re-writing that Jo describes above.
I think the problem many of us have with Mono will not go away, irrespective of what, or how much, the developers say. When I first removed Mono from Ubuntu back on Hardy, I did not know, nor had read anything about the Mono controversy before. It was simply an “itch I wanted to scratch”. I was unhappy with Mono being in my desktop OS for non-technical and personal reasons. I tried removing it and found that it worked so I wrote a post on how to remove Mono from Hardy. What amazed me was the huge surge in traffic to my lowly blog and the number of comments it attracted. That was in August last year.
The fact is that there are many, many “users” of Linux who simply do not want Mono dependant applications to be included by default in their distribution of choice: Ubuntu. The opinion of developers that Mono is great – as Jo so eloquently says himself – in the end carries little or no weight with users:
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 clearly provides a useful and good tool for developers to [ahem] develop things, but there are many other less controversial solutions which are as independent from Microsoft as it is possible to be. Surely these should be chosen over a framework that carries so much baggage and ill-feeling? Fedora are moving in that direction and appear to be picking up users at Ubuntu’s expense.
In short, I strongly believe Mono and applications that depend on it should reside in Multiverse and not in Main.
Finally, I think this sums up what many feel about Mono (A re-phrase one of Steve Ballmer’s most famous quotes):