Site Map - skip to main content - dyslexic font - mobile - text - print

Hacker Public Radio

Your ideas, projects, opinions - podcasted.

New episodes Monday through Friday.

hpr2197 :: Why you should not say Free Software

Ken suggests that the term Free Software is a bug.

<< First, < Previous, Latest >>

Host Image
Hosted by Ken Fallon on 2017-01-03 is flagged as Clean and is released under a CC-BY-SA license.
Listen in ogg, spx, or mp3 format. | Comments (4)

As we all know the word Free has two meanings in the English language. Free of cost and Free from Freedom. So we get the expression "free as in Beer" and "Free as in Freedom" - or Free with a lower or upper F. Having disambiguity in a computer program is bad. So let's translate that problem to computer languages, and I'm going to deliberately pick the C language. So for example were the word "exit" (which is a function), and you wanted to use it as a variable.

set exit = 1;

This leads to problems as the computer can't tell if the references to "exit" the function or is it the "variable".

For that reason the "The GNU C Library Reference Manual" makes it clear that this is not allowed

1.3.3 Reserved Names
The names of all library types, macros, variables and functions that come from the ISO C standard are reserved unconditionally; your program may not redefine these names. All other library names are reserved if your program explicitly includes the header file that defines or declares them. There are several reasons for these restrictions:

Other people reading your code could get very confused if you were using a function named "exit" to do something completely different from what the standard "exit" function does, for example. Preventing this situation helps to make your programs easier to understand and contributes to modularity and maintainability.

It avoids the possibility of a user accidentally redefining a library function that is called by other library functions. If redefinition were allowed, those other functions would not work properly.

This was written by "Sandra Loosemore with Richard M. Stallman, Roland McGrath, Andrew Oram, and Ulrich Drepper for version 2.18".

In terms of the English Language, this results in:

  • segfaults where people just get confused.
  • Buffer overflows, where there is too much information to take in.
  • time outs where the amount of time available to explain has been exceeded.

Now you can get around the problem by prefixing the variable name with a name space, which is very common in XML.

set my:exit = 1;

However that's cumbersome and causes extra cycles to be expended, or abnormal termination of the program. Not many cycles but a few and it adds up over time. The more you use it the more wastage occurs. When you have two Bob's working in a company. You always need to specify if it's "Bob in Accounting" or "Bob in Sales".

It is often pointed out that this is not an issue in other languages, for example Dutch has "Vrij" for freedom and "Gratis" for without cost. However the FSF is a US organisation, in a English speaking area. So we should focus on the fact that the English compiler should have rejected at use of "Free" when it was first proposed because it was obviously disambiguous.

The GNU project was started in 1983 and looking at the software available around then I find it very hard to believe that the concept of "software you pay for" was not widely known.

  • WordStar, "By early 1980, MicroPro claimed in advertisements that 5,000 people had purchased WordStar in eight months"
  • WordPerfect, "The program was originally developed under contract at Brigham Young University for use on a Data General minicomputer in 1979."
  • VisiCalc, "It sold over 700,000 copies in six years"
  • Lotus 1-2-3, "Lotus 1-2-3 was released on 26 January 1983, and immediately overtook Visicalc in sales."

Looking at the archives of the Byte Magazine there are numerous examples where software "Free/free" and proprietary closed software was for sale as far back as 1979. Even the term freeware was coined in 1982 by Andrew Fluegelman.

So it would seem that the word "Free Software" was a bug from the start. Not that there is probably anything we can do about it now but if this bugs you then go over to the FSF and donate. If it doesn't bug you then donate. If you could care less, or indeed if you couldn't care less then also donate.


Subscribe to the comments RSS feed.

Comment #1 posted on 2016-12-29T02:58:28Z by sapceman

what about freedom?

How do you get the point of "freedom matters" across? in that sense open source would be a bug... because seeing the code != Free Software. It is possible to not be free even if you have access to the code. People need to get educated and get to know what is going on with software. I'm laughing because no matter what topic: free software, free energy, veganism and nutrition. the majority of people just want an iPhone that scratches their balls and watch their drone synchronizing channels. but yeah keep in mind that open source doesn't mean you're free... so what word do you wanna use? I suggest free/libre or free with an explanation. the reason it's still around, is probably because there ain't a thousand ways to say freedom.

Comment #2 posted on 2017-01-03T08:40:54Z by mcnalu

Language has a life of its own

You present a solid, clear argument Ken. Thanks for the show. My understanding of it is that they (RMS & co) didn't fully appreciate the bug until people started using the term 'free', ie it's a runtime bug. And once it's entered common usage it's hard, if not almost impossible, to alter that usage. For myself, I can live with the ambiguity by minding context and saying "free and open source software" when there's likely to be ambiguity.

Comment #3 posted on 2017-01-04T06:47:56Z by brian


when we say freedom, I believe we mean liberty. I have no problem with "libre", as it conveys the message without much misunderstanding. I have a problem with open source, as much open source is still proprietary.

Comment #4 posted on 2017-01-04T09:48:40Z by Ken Fallon


@spaceman - Yes Freedom matters. Had they named it "Freedom Software" then there would have been no disambiguity.

@mcnalu - I don't believe it was a runtime bug as I said there were loads of examples at the time of both paid and gratis software (aside from the levels of Freedom). The term "Free" was also known to be the opposite of "Paid" at the time.
Changing names has been done many times in the past, PostgreSQL, Inkscape, Wordpress, MariaDB, LibreOffice, Jenkins, etc. it's part and parcel of how "Free" Software works. RMS himself puts the better name as a reason why "Open Source" was so popular.

@brian - I reported the bug. I leave it up to better minds such as yourself to apply the patch.

Leave Comment

Powered by Comment Script