Two fallacies of choice

Fallacy #1: Choice is good

Five years later, I still think Adam Jackson’s “Linux is not about choice” might be the best thing ever posted to fedora-devel-list.

Seriously. Go read it, if you haven’t already. I almost know it by heart.

To paraphrase slightly, the heart of the post is this:

The chain of logic from “Linux is about choice” to “ship everything and let the user choose how they want their system to work” starts with fallacy and ends with disaster.

Some context: this was in 2008, shortly after Fedora 8 was released. Fedora 7 added the juju firewire stack and Fedora 8 was the first release with pulseaudio. Both things had their problems, as new things tend to do – rough edges, some devices not yet supported, etc.

And so some people just wanted the Old Way back, and some people wanted a little GUI with a little checkbox so they could choose which sound system or firewire stack to use.

ajax explains why the checkbox is a terrible idea:

If you try to deliver both at once you have to also deliver a way of switching between the two. Now you have three moving parts instead of one, which means the failure rate has gone up by a factor of six (three parts, and three interactions). We have essentially already posited that we have insufficient developer effort to have 100%-complete features at ship time, so asking them to take on six times the failure rate when they’re already overburdened is just madness.

Remember this any time you want a way to choose between two methods of doing something: that simple checkbox can mean three times as much work and six times as many potential bugs. It’s almost always less effort to just fix the problems.

So, in fact, fewer choices means better code.

Fallacy #2: “They’re taking my freedoms!”

These same conversations happen every time any open source project makes a significant change. There are always people demanding it be changed back, in the name of their Choice and Freedom – or, at the very least, there should be a checkbox so we can choose!

This is utter nonsense. And here is the underlying fallacy that makes it so:

The basic, fundamental principle of Free Software is that you have complete freedom to do anything you like¹ with it. No matter what has changed, you still have (and will always have) the old version of the software, plus all the tools used to build it. You can join forces with like-minded users to maintain that perfectly flawless version! You can add whatever checkboxes you like! You have exactly the same freedom and choices as you did before.

Free Software works in both directions, just like Free Speech:

Free Speech means nobody can stop me from saying whatever I want², but this also protects your right to say whatever you like. Nothing you say (even “shut up, idiot”) can actually infringe my right to speak, even if I don’t like it.

Free Software means nobody can stop you doing whatever you want with the software³, but this also protects the developers’ rights to do whatever they want. Nothing they change (even GNOME 3) can actually infringe that freedom, even if you don’t like it.

So: there may be legitimate criticisms of new software like pulseaudio or juju (or GNOME 3 or the new anaconda), but any complaint along the lines of “the developers are taking our freedom/choices away!” is 100% rhetorical nonsense.

¹ within the terms of the applicable license(s), of course
² within the terms of the applicable local laws, of course
³ see note 1