Is It Ever a Good Thing to Use a Nonfree Program?
If you run a nonfree program on your computer, it denies your freedom;
the main one harmed is you. Your usage of it can harm others
indirectly, by encouraging development of that nonfree program. If
you make a promise not to redistribute the program to others, you do
wrong, because breaking such a promise is bad and keeping it is worse.
Still, the main direct harm is to you.
It is even worse if you recommend that others run the nonfree program,
or lead them to do so. When you do that, you're leading them to give
up their freedom. Thus, what we should avoid most firmly is leading
or encouraging others to run nonfree software. (Where the program uses
a secret protocol for communication, as in the case of Skype, your own
use of it pressures others to use it too, so it is especially
important to reject any use of these programs.)
But there is one special case where using some nonfree software, and
even urging others to use it, can be a positive thing. That's when
the use of the nonfree software aims directly at putting an end to the
use of that very same nonfree software.
In 1983 I decided to develop the GNU operating system, as a free
replacement for Unix. The feasible way to do it was to write and test
the components one by one on Unix. But was it legitimate to use Unix
for this? And was it legitimate to ask others to use Unix for this,
given that Unix was proprietary software? Of course, if it had not
been proprietary, it would not have required replacing.
The conclusion I reached was that using Unix to put an end to the use
of Unix was legitimate. I likened it to participating in small ways
in some other evil activity, such as a criminal gang or a dishonest
political campaign, in order to expose it and shut it down. While
participating in the activity is wrong in itself, shutting it down
excuses minor peripheral participation, comparable to merely using
Unix. This argument would not justify being a ringleader, but I was
only considering using Unix, not going to work for its development
The job of replacing Unix was completed when the last essential
component was replaced by Linux, the kernel started by Linus Torvalds
in 1991. We still add to the GNU/Linux system, but that doesn't
require using Unix, so it isn't a reason for using Unix—not any
more. Thus, whenever you're using a nonfree program for this sort of
reason, you should reconsider from time to time whether the need still
However, there are other nonfree programs we still need to replace,
and the analogous question often arises. Should you run the nonfree
driver for a peripheral to help you develop a free replacement driver?
Yes, by all means. Is it ok to run
it? Definitely—but other than that, you should
have LibreJS block
it for you.
But this justification won't stretch any further. People that develop
nonfree software, even software with malicious functionalities, often
try to excuse this on the grounds that they fund some development of
free software. However, a business that is basically wrong can't be
legitimized by spending some of the profits on a worthy cause. For
instance, some (not all) of the activities of the Gates Foundation are
laudable, but they don't excuse Bill Gates's career, or Microsoft. If
the business works directly against the worthy cause it tries to
legitimize itself with, that is a self-contradiction and it undermines
Even using a nonfree program to develop free software in general is
better to avoid. For instance, we should not ask people to run
Windows or MacOS in order to make free applications run on them. As
developer of Emacs and GCC, I accepted changes to make them support
nonfree systems such as VMS, Windows and MacOS. There was no reason
to reject that code, but I did not ask people to run nonfree systems
in order to develop it. The changes came from people who were using
those systems anyway.
The “developing its own replacement” exception is valid within its
limits, and crucial for the progress of free software, but we must
resist stretching it any further lest it turn into an all-purpose
excuse for any profitable activity with nonfree software.
Occasionally it is necessary to use and even upgrade a nonfree
system in order to install a free replacement system. It's not
exactly the same issue, but the same arguments apply: it is legitimate
to run some nonfree software momentarily in order to get rid of