Microsoft made an interesting announcement, they are promising not to sue people for using Mono. Jolly good of them really, it is nice not being sued.
Lets just assume for the moment that this promise means what they say it means (forgetting about the partial implementations exclusion and the fact that the promise needed to be made in the first place) and it makes Mono totally safe to use now, even in countries with broken patent laws. I still won’t be using Mono. Mono is a useful tool for solving the problem “how on earth am I going to run all this .Net code I wrote when I switch to Linux?” I for one don’t have that problem, but for those that do, Mono is the tool for the job.
The reason I won’t be using Mono is that the .Net framework is already embraced by Microsoft, it is already extended by Microsoft. It was from the beginning and will probably always remain so. Mono is playing catch up and people want to be using the leader. This goes for Moonlight and Silverlight too. Silverlight 2 came out, some misguided websites moved to it, Moonlight 2 is in progress, but following. The only glimmer of hope for Mono as something that is more than a specific problem solving tool is GTK#. In this, the Free software community is taking the upper hand by extending Mono, in ways that Microsoft won’t follow. Maybe if .Net/GTK# applications become the norm on Windows this would be a good thing overall. Personally I will stick to Python/GTK on Ubuntu for my fairly limited desktop app programming requirements.
I picked up the story from The H where they’ve done a great job of describing most of the new features in a single paragraph.
One of the biggest new features is the ability to automatically organise library files across multiple folders based on track metadata, such as artist and album information. In addition to several performance improvements to features like search, Songbird 1.2 now supports 2-way syncing with iTunes, which is especially useful for users who purchase songs in the iTunes Music Store. Songs added to Songbird can also be synced back into iTunes for syncing with iPods and iPhones. Last.fm support has been included in Songbird for some time now, however, users can now access even more artist, track, album and tag information. A new 10-band equalizer has been added to Songbird to let audiophiles tweak the frequency response of audio playback.
With the ever expanding feature set and the superb extensibility thanks to their Mozilla platform pedigree we have a really good alternative to the “other” much touted music player based on Mono. I know which one I prefer.
Songbird, incidentally, was the only music player I found on Ubuntu that would sync with my iPod Nano 4th Gen. And that was the previous release of Songbird too. With iTunes synchronisation I think I have just found the last piece of the puzzle to get my wife off Windows once and for all.
Thanks to all the community and developers behind Songbird. I can’t wait to get this new release installed and give it a work out.
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):
Linux Mono is a cancer that attaches itself in an intellectual property sense to everything it touches.”
It will come as no surprise to regular readers that I am heartily encouraged by this small snippet of news I picked up via Twitter this afternoon (thanks Roy)
From the Fedora Mailing List:
I have now changed the default panel configuration in F12 to include gnote instead of tomboy, and changed comps to make gnote default and tomboy optional.
This won’t replace tomboy in existing installations, but new installations will get gnote instead of tomboy.
This also means that gnote should show up on the live cd (where we excluded tomboy previously, due to no space for mono).
And further on the Wiki we see:
Gnote is installed by default in GNOME for this release replacing Tomboy. Gnote is a port of Tomboy from Mono to C++ and consumes less resources. Gnote is both an applet that can sit in your GNOME panel as well as a individual application you can run within other desktop environments. Fedora Desktop Live CD excluded Mono in the last releases due to lack of space. Gnote will be installed by default in the Live CD as well in this release. Tomboy is still available as a optional alternative.
This is the right thing to do IMHO. I have no problem with Mono being available in the repos for those who wish to use it. I would however much prefer that it is not installed by default on my distribution of choice.
Also, if you want to know how to remove Mono from your Ubuntu distribution:
I had this thought whilst wandering down to the pub last night. It’s a very pleasant walk on a warm evening; through leafy unmade lanes in the south of Farnham and has, on a number of occasions, been inspirational.
On my jolly jaunt I was pondering the usefulness (or not) of Mono. As regular readers will know, I don’t particularly like it. There are too many ifs and butts and “unknown unknowns” with Mono for my taste. And, quite honestly, it doesn’t give me anything I need that I can’t get elsewhere.
And I was also recalling Ballmer’s famous quote about Linux and cancer.
The strange thing is, replace just one word in the quote and it makes perfect sense to me:
Has anyone else got any good re-spun quotes that would be more applicable than the original?
It’s that time again 😉
Fortunately, Mono is still quite trivial to remove and has not, apparently, increased its infiltration of the Ubuntu/Gnome code base as one might have been led to believe if you’d read this on the 1st April:
“Mark Shuttleworth, the Benevolent Dictator for Life of the popular Ubuntu Linux distro, has announced his plans to rewrite all of Gnome, X11 and the Linux kernel using the Mono platform…
Ubuntu is Linux for human beings, and, believe it or not, Microsoft employees are human beings too. We think we need to work closer with Microsoft to ensure heterogenous data silo paradigm middleware enhancements can continue to grow. Oh, and they gave me this nice T-shirt.”
As was the case with 8.10 Intrepid Ibex, there are just two applications in the default Jaunty desktop install which depend on Mono: F-Spot and Tomboy.
As an alternative to F-Spot, I happily use the Gnome viewer gThumb for managing the import and deletion of images from our digital cameras. I actually think it is better for a simple reason. It allows me to copy the images off my camera and delete them from the camera at the same time. The last time I tried F-Spot (admittedly quite a while ago now) I could never find a setting to do this.
And for note taking I have been happily using notecase. Although I note [pun intended] that the developer has stopped work on the free version himself the code is available under a BSD license so if anyone wants to pick it up and run with it they can. Anyway – notecase works fine for me and is still in the repos.
There are many other note taking type applications too. Here is what looks to be quite a comprehensive (albeit old) list of them: http://linuxappfinder.com/utilities/notes
But this is just GREAT!
Whilst I was preparing this article, I came across this on April 1st too. I actually did think it was a joke.
You can now use a virtually identical application to Tomboy without Mono! (This is still an early development so YMMV).
Even better, as it isn’t built on top of Mono, it has fairly meagre requirements too:
sudo apt-get install gnote
[sudo] password for alord:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed
gnote libboost-filesystem1.34.1 libboost-regex1.34.1 libxml++2.6-2
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 1130kB of archives.
After this operation, 3400kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
3.4MB vs. 54.0MB. That’s a decent comparison I think.
OK. The moment you’ve all been waiting for…
To remove that patent-trap-masquerading-as-free-software from your Shiny New Ubuntu Jaunty system simply type:
sudo apt-get purge libmono0 mono-common libgdiplus
Thanks to a keen eyed commenter, Lupine, we note that there is another package that lurks hidden and must be explicitly removed. I have added
libgdiplus to this command since first publishing. To remove it individually just enter
sudo apt-get purge libgdiplus. Thanks Lupine.
Then watch what happens next…
The following packages will be REMOVED
f-spot* libart2.24-cil* libflickrnet2.1.5-cil* libgconf2.24-cil* libglade2.0-cil* libglib2.0-cil* libgmime2.2a-cil* libgnome-keyring1.0-cil* libgnome-vfs2.24-cil* libgnome2.24-cil* libgnomepanel2.24-cil* libgtk2.0-cil* libmono-addins-gui0.2-cil* libmono-addins0.2-cil* libmono-cairo2.0-cil* libmono-corlib2.0-cil* libmono-data-tds2.0-cil* libmono-data2.0-cil* libmono-getoptions2.0-cil* libmono-i18n2.0-cil* libmono-posix2.0-cil* libmono-security2.0-cil* libmono-sharpzip2.84-cil* libmono-sqlite2.0-cil* libmono-system-data2.0-cil* libmono-system-web2.0-cil* libmono-system2.0-cil* libmono0* libmono2.0-cil* libndesk-dbus-glib1.0-cil* libndesk-dbus1.0-cil* mono-2.0-gac* mono-2.0-runtime* mono-common* mono-gac* mono-jit* mono-runtime* tomboy*
0 upgraded, 0 newly installed, 38 to remove.
After this operation, 54.0MB disk space will be freed.
Do you want to continue [Y/n]?
Oh yes please…
To wrap up this post, we’ve been using Jaunty on various devices for some time now. It’s been really stable, boots very fast and is probably the best desktop operating system you can get anywhere and for any price right now. Thanks to Canonical and the rest of the amazing FOSS Community for making Ubuntu and this release happen.
Our Libertus Server Appliances, with the Mono-free Jaunty 9.04 server edition, are available from today.