Not Mono is Not a Feature

Recently, it was announced that in Ubuntu 10.10 (Maverick Meerkat), that F-Spot is going to be replaced with Shotwell. I’ve used F-Spot for a while, mostly by virtue of it being the default Photo Manager in Ubuntu, but I’m not particularly attached to it, but I don’t yet have an opinion on Shotwell either. This post is about how almost every story I’ve seen on the subject has greatly stressed that Shotwell isn’t basd on Mono.

Not being based on Mono is not a feature.

I understand our community’s distrust of Microsoft. I’ve been there. I get it. I’ve been that person. However, while Microsoft may have created .NET, of which Mono is a free reimplementation, that does not mean that Microsoft is going to kill Mono. I’d argue that, at this point, Microsoft needs Mono for .NET more than Mono needs Microsoft. Mono has proven to be a major incubator of new ideas that Microsoft has rebuilt into the core of .NET (consider Mono.AddIns, which I believe is a direct precusor to MEF), or the fact that Microsoft is rebuilding their C# compiler in managed code so that they can support a C# REPL, like Mono can today. Microsoft has benefited greatly from the Mono community and open source .NET, and they’ve given a lot back, in the form of the DLR, MEF, ASP.NET MVC, and a lot more.

And, if Mono needed to, they could drop the Microsoft Interop stuff and be a fully ECMA-compliant CLR implementation, with good support on Linux through great libraries like GTK#, and on the Mac through the upcoming MonoMac work.

Further, Microsoft has even gone so far as to validate the Mono Project through Moonlight, and they’ve had over ten years to do something about the project. There is no reason to expect movement now, when Microsoft is consistently giving back to Mono and others.

Still, the community goes apeshit raging against Mono. Complaining about the use of Tomboy and F-Spot in Ubuntu. .NET is a great platform, with a solid programming experience. It’s a hell of a lot easier to avoid common programming mistakes in .NET than it is in C or C++ (both languages which I like). It’s solid technology. There is no technical reason to be opposed to .NET. It’s purely political. And while Microsoft may be hard to trust in patent terms with regard to Linux and the Operating System stack, there is not only no evidence that Microsoft will target Mono or open-source users of .NET, there is plenty of active evidence going the other way.

So please, while there may be plenty of reasons that F-Spot is inferior to Shotwell, F-Spot being written in .NET using Mono shouldn’t even be on the list of it’s ‘flaws’. That’s about as sensical as me refusing to use something like Vym or Scribus because they’re written in QT and not my favored GTK+/Gnome.