On Aaron’s post about PodSleuth, there was this comment by Søren Hauberg:
I think you (and many others) are missing one of the main mono problems. From the outside it looks a lot like Novell is pushing mono much harder then is healthy. Mono gets used in places where its the wrong _technical_ choice. Beagle is probably the prime example here. [...] All because somebody made the wrong decision with choice of language.
Maybe we made the wrong decision about the choice of language, but it’s a bit of a stretch to imply that Novell pushed this decision on anybody. We chose Mono for a couple of reasons. The first and biggest one is that we simply weren’t interested in writing desktop apps in C anymore. It’s no surprise that virtually every new GNOME app is either written in Python (Jokosher, Gimme, Conduit, etc.) or for Mono (Tomboy, F-Spot, etc.).
Secondly, at the time (sometime in 2004) Mono was a fairly new, interesting platform that we wanted to learn about. Remember that Mono was largely created for the purpose of making desktop apps easier to develop — the interoperability with Windows was a secondary benefit.
And lastly, having worked with Trow on a reasonably big desktop Python app, we wanted a strongly typed language. Writing real applications in Python requires a discipline that unfortunately most people (including myself, at that time) are unwilling to adhere to, and this easily leads to buggy and hard to maintain programs. You have to be very diligent about unit tests and code coverage for every line of code, because you can’t rely on the compiler to catch errors for you. We had been burned by this a bit, and wanted to get back to a strongly typed, but still easy to use language that integrated well with the desktop.
So there was never a sinister motive here on Novell’s part, and we the developers were unhindered in making a decision about what technology to use. You know how hackers are, they want to use whatever the new and cool technology was. For us, it was Mono. For a lot of web hackers today, it’s Ruby.
And as an aside, I disagree that Mono is inherently unsuitable and the wrong technical choice for something like Beagle, but that’s another discussion entirely.
Søren continues:
My point is simply that Novell is pushing mono so hard that it is being used in applications where it not the best choice. Combine this with the political issues around using MS technology, and its not hard to understand why some people get upset when useful stuff is written with mono.
I’m not exactly clear in what manner and onto whom Novell is trying so hard to push Mono? I can speak for Beagle, and while I’ve obviously advocated my project for inclusion in the distributions, I’ve never even pushed for its inclusion into GNOME. In fact, we were aware of the political sensitivity of Mono and it influenced our technical design of Beagle. That’s why we provide a pure C library for desktop apps to integrate with it, without having to link to Mono (or depend on it) in any way.
As for other Mono apps, only Tomboy is included in GNOME, and that was written and proposed by someone who isn’t even a Novell employee. I don’t think that F-Spot or Banshee have ever been proposed, and it’s hard to argue that they’ve ever been forced onto anybody.
Novell hasn’t been trying to “sneak” Mono into anything. The apps we’ve helped develop help showcase what is possible with it in a Linux desktop context, and how rapidly good desktop apps can be written. Maybe I am biased, but to me our advocacy is entirely rational: Mono should be a first class development environment for the desktop, and I wouldn’t see or have any problem if someone did the same for Python.