I’m going to take a moment to talk about bloat. What it means, and why one man’s bloat is another man’s necessity. First, a definition: bloat is an arbitrary measure of subjectively “useful” features minus subjectively “useless” features, divided by the size of something (in memory or on disk or whatever). If you want a non-computing comparison, then in pure Body Mass Index terms, most rugby players are considered morbidly obese – but in reality, the “useful” muscle accounts for the high weight-to-height ratio, compared to “useless” fat that BMI is meant to indicate.
And the same is true for apps. An app with few features and high requirements (RAM or disk) is bloated. An app with many features, all of which are useful, but modest requirements, is not bloated. The problems are how to define all the terms involved – and those messy in-betweens. If you need to pick between two apps (say for inclusion by default on a distro CD), and those two apps have feature parity, then the choice between them is easy. Where apps have their own unique features, it requires looking at the bigger picture.
Let’s take e-mail clients for example. Ubuntu ships with Evolution by default – a hefty application consuming just under 60 MiB of disk space in the Ubuntu default install of ~2.2 GiB. These numbers are taken on AMD64, by the way, where C-based apps are larger than on i386. And my figure for Evolution is just for the client – it doesn’t include the data server component used by Ekiga. Would a different client be smaller? Absolutely. Thunderbird would save about 20 meg of space. Claws (with no plugins) would save over 50 MiB. But the question is, is the space saved worth the trade-offs? The 20 meg gap between Thunderbird and Evolution means going from giving new Linux users “Outlook for free” to “Outlook Express for free” – are the added features, the added kudos of offering a Free equivalent to a £90 groupware client, worth 20 meg? Is that bloat, or is it usefulness? That’s the question distro makers need to answer. Taking it further, OpenOffice.org accounts for a terrifying amount of that 2.2 GiB install – just under 245 MiB, or 10% of the install. Would any inevitable space savings from switching to the GNOME Office suite (Gnumeric et al) be worth the loss in features?
What I’m getting to here is about my Banshee post. When I made my post, citing 6 meg saved, it was facetious of me. The numbers are true, don’t get me wrong – but it would be wrong to characterise Rhythmbox of being bloated. The difference in size between the two apps can be accounted for by things like, say, RB having about 6 meg of documentation provided, and Banshee having none. I picked an attention-grabbing headline, because the fact that a C#-based app like Banshee could actually be pretty lightweight was interesting, and challenged preconceptions. The real headline though, the reason I’m proposing switching to Banshee as default, isn’t because of space savings. It’s because the other plusses – the active development community, the constant improvement, and the features in Banshee not found in Rhythmbox – do not result in any significant losses in disk space. The Ubuntu Desktop team would love to have all the space in the world, to be able to include big things like OpenJDK by default, but they don’t and they can’t. The reason why I feel now is the time to make this proposal for Banshee (and I should note that whilst I’ve been using Banshee for a few years, I’ve previously strongly felt that Banshee was insufficiently mature, and also pulled in too much crap on disk, to be a sensible proposal), is that Banshee’s biggest plus – the Ubuntu-style striving for self-improvement – now comes with so little cost compared to the rather unmoving, “mature and unflinching” Rhythmbox.
I’ll always advocate for what I feel is the best technical solution to a task, regardless of the languages involved – and I really feel that “actively worked on” is enough of a feature to top the scales. Listen is pretty nice, but missing a bunch of features (are the missing features bloat? Who can say) and is still a little immature. Exaile is better, but actually consumes more resources than Banshee for no added features. Songbird? Well, Songbird is just plain bloated (very much aware of the irony, thank you) with its forked copy of XulRunner gobbling up twice the RAM AND disk space of Rhythmbox, and offering only an un-Accessible UI in return.
So going into UDS, I want to make it clear – I want to discuss with the desktop team candidly about which of the available applications has a sufficiently high features-to-resources ratio, with a clean migration path and no major feature losses, to warrant changing to default. If Rhythmbox wins out, then so be it – the process will result in valuable feedback which I have no doubt Banshee’s upstream could convert into fixes by the time Ubuntu 10.04 rolls around. And that active upstream is why I think this is a decision Banshee stands a good chance of winning. May the best app win, now and in the future.