The words we use to describe what we do can matter a lot in how we in the FOSS community think about what we do. Once upon a time there was Free Software, as defined by Richard Stallman in the famous Four Freedoms:
- The freedom to run the program, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor (freedom 2).
- The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
Now, I happen to be a big supporter of this. I love the idea of Free Software. And I have noticed that some people I greatly respect, such as Jon ‘maddog’ Hall, are always careful to refer to it as Free Software. Nonetheless, there are problems with this terminology. If you have been around FOSS for very long you have noticed that the word “free” admits of several meanings, one of which has to with the cost. And that was never the point in FOSS. There is nothing in the definition of FOSS or in the GPL that says you are prohibited from charging for your software. And because of the ambiguity in “free” we have to be careful to use “Free As In Freedom” to denote what Stallman meant by the Four Freedoms, as distinct from “Free As In Beer” to denote lack of a monetary price.
A later term was developed called Open Source, which put the focus on making the source code freely available. Now, it is clear from the Four Freedoms above that this is essential to Free Software, so I am not sure just how big a difference this makes. But if you want to explain to the average user why any of this matters, you have to acknowledge that the average user really doesn’t care if the source code is available since they can never imagine themselves trying to modify the code. In point of fact, I would expect that it is highly likely that I will go to my grave without ever attempting to modify the code of any software I use. I am not a programmer, and I don’t have any desire to be one. I like programmers, some of my best friends are programmers, and the world is undoubtedly a better place because of programmers, but I don’t think that is my role in FOSS. So I don’t have strong interest in looking at the source code. And to you in the back with your hand up, I agree that it would be silly to buy a car that had the hood welded shut, but I don’t repair my own cars either. Instead I support the economy by helping a mechanic to earn a semi-honest living.
The term I have adopted for this purpose is to call what we do “Community-Supported Software” because I think that puts the emphasis where it more properly belongs, at least for some uses. If we value this software, I think we all have a responsibility to support it in whatever way we can. Some do that as programmers, but the rest of us have a role to play. And I want to explore some of those options (and maybe motivate some people to get involved) in some posts over the next few weeks. And if you find this discussion at all useful, please feel free to forward to anyone you think will be interested. Because I think it is true that freedom is never free. It requires all of us to take part in defending and supporting it.
Listen to the audio version on Hacker Public Radio!