“Linux is about choice” – yes, but not how you mean it

I agree with Richard – the phrase “Linux is about choice” sets my teeth on edge. I think it’s because every time I hear it, it’s being waved about angrily, like a club, by someone who really means “Linux is about me getting what I want”.

But here’s the thing: in a way, Linux (and all Open Source) really is all about choice. Because one of the essential guarantees of Open Source is the freedom to fork, and the freedom to fork gives you the power to make any choice you could possibly want to make. And this fact makes all other arguments about choice irrelevant.

It also frees the developers of all Open Source projects from any responsibility to consider these sorts of demands – if you want it so bad, fork your own project.

Oh, you can’t/don’t want to fork? Well, remember that every time you add support for an optional backend or a checkbox for optional behavior, you’ve just added at least two moving parts and increased possible failure rates by a factor of six. Put another way: Every choice presented to the user means less testing and more bugs for all users. So you better have a really damn good justification – this means code or data, not anecdotes and slogans – before you even bring up the idea of adding a new choice. And “Linux is about choice!” is definitely not a valid justification. At all. Ever.

I think Ajax’s seminal post from January 2008 may have said it best:

There is a legitimate discussion to be had about where and how we draw
the line for feature inclusion […] But the chain of logic from “Linux is about
choice” to “ship everything and let the user choose how they want their
sound to not work” starts with fallacy and ends with disaster.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s