The Free Software Community After 20 Years:

With great but incomplete success, what now?

It was 5 Jan 1984, twenty years ago today, that I quit my job at MIT to begin developing a free software operating system, GNU. While we have never released a complete GNU system suitable for production use, a variant of the GNU system is now used by tens of millions of people who mostly are not aware it is such. Free software does not mean “gratis”; it means that users are free to run the program, study the source code, change it, and redistribute it either with or without changes, either gratis or for a fee.

My hope was that a free operating system would open a path to escape forever from the system of subjugation which is proprietary software. I had experienced the ugliness of the way of life that nonfree software imposes on its users, and I was determined to escape and give others a way to escape.

Nonfree software carries with it an antisocial system that prohibits cooperation and community. You are typically unable to see the source code; you cannot tell what nasty tricks, or what foolish bugs, it might contain. If you don't like it, you are helpless to change it. Worst of all, you are forbidden to share it with anyone else. To prohibit sharing software is to cut the bonds of society.

Today we have a large community of users who run GNU, Linux and other free software. Thousands of people would like to extend this, and have adopted the goal of convincing more computer users to “use free software.” But what does it mean to “use free software”? Does that mean escaping from proprietary software, or merely installing free programs alongside it? Are we aiming to lead people to freedom, or just introduce them to our code? In other words, are we working for freedom, or have we replaced that goal with the shallow goal of popularity?

It's easy to get in the habit of overlooking this distinction, because in many common situations it makes no difference. When you're trying to convince a person to try a free program, or to install the GNU/Linux operating system, either goal would lead to the same practical conduct. However, in other situations the two goals inspire very different actions.

For instance, what should we say when the nonfree Invidious video driver, the nonfree Prophecy database, or the nonfree Indonesia language interpreter and libraries, is released in a version that runs on GNU/Linux? Should we thank the developers for this “support” for our system, or should we regard this nonfree program like any other—as an attractive nuisance, a temptation to accept bondage, a problem to be solved?

If you take as your goal the increased popularity of certain free software, if you seek to convince more people to use some free programs some of the time, you might think those nonfree programs are helpful contributions to that goal. It is hard to dispute the claim that their availability helps make GNU/Linux more popular. If the widespread use of GNU or Linux is the ultimate goal of our community, we should logically applaud all applications that run on it, whether free or not.

But if our goal is freedom, that changes everything. Users cannot be free while using a nonfree program. To free the citizens of cyberspace, we have to replace those nonfree programs, not accept them. They are not contributions to our community, they are temptations to settle for continuing nonfreedom.

There are two common motivations to develop a free program. One is that there is no program to do the job. Unfortunately, accepting the use of a nonfree program eliminates that motivation. The other is the will to be free, which motivates people to write free replacements for nonfree programs. In cases like these, that motive is the only one that can do the job. Simply by using a new and unfinished free replacement, before it technically compares with the nonfree model, you can help encourage the free developers to persevere until it becomes superior.

Those nonfree programs are not trivial. Developing free replacements for them will be a big job; it may take years. The work may need the help of future hackers, young people today, people yet to be inspired to join the work on free software. What can we do today to help convince other people, in the future, to maintain the necessary determination and persistence to finish this work?

The most effective way to strengthen our community for the future is to spread understanding of the value of freedom—to teach more people to recognize the moral unacceptability of nonfree software. People who value freedom are, in the long term, its best and essential defense.