Vegans, Monks and The Devotion to Free Software December 27
For many years I have strived to use only Free Software. There is a certain conceptual purity in adherence to that rule which appeals to me. However, in that time, I’ve identified a few problems I haven’t satisfactorily solved. I’m writing this in the hopes of stimulating some discussion or comments that might give me some new insight.
Definition of Free Software
Free Software is software that grants four specific freedoms: freedom to run for any purpose, freedom to modify and study, freedom to make verbatim copies, and freedom to redistribute your improvements. Explaining these ideas to people can be difficult. Other than price, most people don’t understand why they should care about Free Software. Very few see any connection with Free Software and liberty. The cynic in me would say that actually very few are willing to make any meaningful sacrifice for liberty.
An argument for using Free Software is that proprietary software leaves you as a kind of tenant, never really owning the system that is governed by that software. You might have bought your computer, but the current and future performance and feature set is governed by the copyright holder, who only licenses you to use the software but not make any non-trivial changes. As we have seen, software is appearing everywhere: in your car, in your home electronics and appliances, even in your credit cards (those that are smart cards). In the proprietary picture, you have no right to control or change these systems. Meaningfully exercising your constitutional freedoms increasingly involves the use of software. These arguments were laid out by Richard Stallman, the founder of the Free Software Foundation, who anticipated these problems more than 20 years ago (FSF on Wikipedia, FSF philosophy).
The Goal of using only Free Software
Today, it is relatively easy to use (almost) exclusively Free Software. Ubuntu is a distribution of GNU/Linux that is easy to install and use and comes with almost all the utilities many users need, including an excellent web browser (Firefox) and an office suite (OpenOffice). Those using Free Software today aren’t making a big sacrifice. Generally, there is a minor inconvenience of dealing with minor incompatibilities with proprietary software users. I would argue that the benefits of Free Software, such as not having to pay, not having to deal with license keys or copyright violations, automatic management of all the software installed on the system, outweigh the difficulties for most people. For someone who can program computers, the benefits are even greater: you can add new features to your favorite programs and even share those improvements with others legally.
Is using only Free Software more like being a Vegan or a Monk? Wikipedia defines veganism as “a philosophy and lifestyle that seeks to exclude the use of animals for food, clothing, or any other purpose.“. One could make the analogy of Free Software purists as Vegans. Those that only care about zero price (so called Freedom 0), might be compared to vegetarians. Being a vegetarian might be a bit difficult, but being a Vegan can be a real challenge. You have to be really sure that no hidden ingredient in some food might be an animal product. There is some similarity with verifying that your software follows all the four freedoms. For instance, try explaining to your Mom why the program Pine is not okay, even though you can run it for zero cost and get the source code.
Being a Vegan is a challenge, but approximately one in 100 or so choose to do it. On the other hand, being a Monk (or Nun) is something virtually no one chooses (outside of Tibet where almost 1/3 of the population are monks).
The Siren Call of Conceptually Simple Rules
I should state right off the bat, that the idea of a simple criterion for what is wrong or right is appealing to me. It may be naive, but I would like to identify some set of rules or conditions that would qualify software as “Kosher” to use. I suppose it is likely that such a quest will not be successful without spiraling into absurdity. Even Veganism, which seems like a simple rule, could be argued to be harmful to the plants, and so Fruitarians go further and only eat ripe fruits. When it comes to diet, I myself follow a somewhat arbitrary simple rule: I don’t eat Mammals. I acknowledge that there is some absurdity here and that there must be many non-mammals that I would eat that perhaps I shouldn’t (on some basis) or some mammals I don’t each which perhaps I should (on some basis). But the rule is very simple, useful, and therefore, to me appealing.
In order to find a good set of rules and in order to avoid complete absurdity, one should start with the motivations for the rules. I want to maximize the utility of technology and maximize my personal liberty. These two goals conflict: when using proprietary software utility may be increased at the cost of liberty (I can’t exercise some subset of the four freedoms). As a programmer, access to source code and the right to modify it also increases utility. So for me, it’s tempting to limit myself to software that only grants the four freedoms. But let me discuss some problems with this I have identified.
Where is it hard to follow the pure Free Software Ideal?
Here are a few challenges for Free Software purists:
- Cell phones
- Game systems
- Portable media players
- Drivers/firmware for PC hardware (such as video or wireless cards)
- Flash, which has become very common on the web, does not currently have a fully capable Free Software replacement (see swfdec and gnash). However, Adobe does provide a flash plugin for GNU/Linux at zero cost.
- Social software with large user bases, such as Skype.
All of the above have software or firmware that is updated after the unit is sold to the end user. In addition we could be more strict and consider:
- Home video: DVD players, cable boxes, television firmware
- Car software (e.g. the console in my Prius has a touch screen which controls climate, audio, and shows fuel economy statistics)
- Software running on web pages (javascript code or the flash code driving a web page which is executed by your browser).
Personally, I am willing to use a cellphone that runs proprietary software because I have found no free alternative to replace it. When Openmoko, a free mobile phone platform is ready, I’ll almost certainly switch to that. In the mean time, my Treo becomes a sort of thin-end-of-the-wedge for proprietary software. Since the phone is already non-free, I am willing to install non-free programs on it such as Google’s Map application for the Palm OS, or their Java Gmail client.
I’m willing to use audio, video and gaming devices such as DVD players, Slimdevice’s Squeezebox, original (non-iphone/ipod touch) iPods, and the Nintendo Wii. Unfortunately, due to the disaster that is DRM, many media devices are especially hell-bent on denying users their rights, but I only purchase devices that I feel do not curtail my rights. I own a ReplayTV PVR, which automatically skips commercials and whose manufacturer sued to the brink of extinction. The argument I’ve constructed for the “media exemption” is that media content is primarily expressive and not primarily functional, so as long as the system does not do non-trivial DRM (note the wiggle room), I allow it. I am currently not willing to use the iPhone or iPod touch, since these machines are too close to general purpose computers and I think present too much of a risk to my freedom (since Apple maintains totalitarian control over those devices). If I were a purist, I could replace the firmware of my iPod with some free firmware such as Rockbox.
For my computers, my rule is that any non-bios code that runs on my CPU must be Free Software. I am willing to load the non-free firmware to my Intel wireless card, but I am not willing to run non-free ATI drivers for my graphics card. The difference is subtle, but real. These days, even hardware can be described and emulated by software. The firmware for my wireless card, in this picture, is basically hardware that can be modified after it is sold. I could disallow this exemption, but then we’re left with an absurdity: if Intel had made burned the original firmware into a read-only memory on the card, it would be okay. I admit the firmware exemption is shaky. The same argument could be extended to a Dell computer: Microsoft could burn Windows onto a ROM in principle, so why not just run Vista (of course, practically that would never work since the volume of code is so large with an entire OS that it could never work securely for years without updates). The CPU rule means I can’t run Adobe’s flash. This is a minor inconvenience but the Free Software programs gnash and swfdec can both show Youtube videos, even if they can’t view all flash programs and pages. The policy here is very close, if not identical, to the Debian GNU/Linux policy for what goes into the main section of their software distribution (another convenience: software is okay to run as long as it is in Debian main). The bios exemption is due to the fact that BIOS software is quasi-firmware like: it is rarely if ever updated and stored in flash or ROM. If possible, I will use LinuxBIOS to replace my BIOS, but currently the motherboards supported are rather limited.
I don’t use Skype on my computer, there is no need. I can run Ekiga and call anyone using standard SIP compatible software or hardware. I may be willing to use Skype on some device other than my computer, such as a dedicated skype handset. In this case, it’s like using a telephone. Obviously there is some bizarre cognitive dissonance going on with this issue.
An interesting inversion comes on the web. On the computer, I allow non-free hardware (the designs for my CPU and motherboard are not available to me), but insist on the code running on the CPU to be Free. On the web, I insist on the virtual hardware (the Java/.Net/Flash virtual machine) to be Free but the software (the page or service) is allowed to be non-free: I don’t expect the four freedoms to apply to all the javascript that might be embedded in a web page. I have no real argument for this except practicality and simplicity. Web code is sandboxed, so it can’t really be used to deny me control of my own property. Instead, it is like a representative of a service that I don’t own. Secondly, disabling javascript would render a very large subset of the web unusable.
Conclusion
In the course of writing this, I’ve rediscovered that practicality motivates my usage of Free Software. Clearly I use a lot of non-free software, less than the vast majority of computer users but none-the-less I do use non-free software. However, like most people I prefer to have more freedom if given the choice, and like most people, some trade-offs I’m willing to make and others I’m not. That doesn’t mean that every choice is okay and equal, it just means we have to accept a little grey, and be willing to continue to wrestle with the issues and make choices. A guiding principle for me is to always try to gain freedom, and try hard to avoid backsliding into a state of less freedom. By elevating the previous idea above some idyllic notion of purity, one avoids inviting total ideological collapse due to minor violation of principle.
I should make it clear, almost all of the ideas here originated elsewhere. Most came from Richard Stallman, various participants of the Debian project (such as Bruce Perens), Code by Lawrence Lessig and countless others who have contributed to the debate over Free Software and Free Culture.

