Avoiding Ruinous Compromises

by Richard Stallman

“Twenty-five years
ago on September 27, 1983, I
announced a plan to create a completely free operating system
called GNU—for ‘GNU's Not Unix’. As part of the
25th anniversary of the GNU system, I have written this article on how
our community can avoid ruinous compromises. In addition to avoiding
such compromises, there are many ways you can help
GNU and free software. One basic way is
to
join the Free Software Foundation as an Associate
Member.”—Richard Stallman

The free software movement aims for a social
change: to make all software
free so that all software users are free and can be part of a
community of cooperation. Every nonfree program gives its developer
unjust power over the users. Our goal is to put an end to that
injustice.

The road to freedom
is
a long road. It will take many steps and many years to reach a
world in which it is normal for software users to have freedom. Some
of these steps are hard, and require sacrifice. Some of them become easier
if we make compromises with people that have different goals.

Thus, the Free Software
Foundation makes compromises—even major ones. For
instance, we made compromises in the patent provisions of version 3 of
the GNU General Public License (GNU GPL) so
that major companies would contribute to and distribute GPLv3-covered
software and thus bring some patents under the effect of these
provisions.

The Lesser GPL's purpose is a
compromise: we use it on certain chosen free libraries to permit their
use in nonfree programs because we think that legally prohibiting
this would only drive developers to proprietary libraries instead. We
accept and install code in GNU programs to make them work together
with common nonfree programs, and we document and publicize this in
ways that encourage users of the latter to install the former, but not
vice versa. We support specific campaigns we agree with, even when we
don't fully agree with the groups behind them.

But we reject certain compromises even though many others in our
community are willing to make them. For instance,
we
endorse only the GNU/Linux distributions that have policies not to
include nonfree software or lead users to install it. To endorse
nonfree distributions would be a ruinous compromise.

Compromises are ruinous if they would work against our aims in the
long term. That can occur either at the level of ideas or at the level of
actions.

At the level of ideas, ruinous compromises are those that reinforce
the premises we seek to change. Our goal is a world in which software
users are free, but as yet most computer users do not even recognize
freedom as an issue. They have taken up “consumer”
values, which means they judge any program only on practical characteristics
such as price and convenience.

Dale Carnegie's classic self-help book, How to Win Friends and
Influence People, advises that the most effective way to
persuade someone to do something is to present arguments that appeal
to his values. There are ways we can appeal to the consumer values
typical in our society. For instance, free software obtained gratis
can save the user money. Many free programs are convenient and
reliable, too. Citing those practical benefits has succeeded in
persuading many users to adopt various free programs, some of which
are now quite successful.

If getting more people to use some free programs is as far as you
aim to go, you might decide to keep quiet about the concept of
freedom, and focus only on the practical advantages that make sense
in terms of consumer values. That's what the term “open
source” and its associated rhetoric do.

That approach can get us only part way to the goal of freedom. People
who use free software only because it is convenient will stick with it
only as long as it is convenient. And they will see no reason not to
use convenient proprietary programs along with it.

The philosophy of open source presupposes and appeals to consumer
values, and this affirms and reinforces them. That's why we
do not support
open source.

To establish a free community fully and lastingly, we need to do
more than get people to use some free software. We need to spread the
idea of judging software (and other things) on “citizen
values”, based on whether it respects users' freedom and
community, not just in terms of convenience. Then people will not
fall into the trap of a proprietary program baited by an attractive,
convenient feature.

To promote citizen values, we have to talk about them and show how
they are the basis of our actions. We must reject the Dale Carnegie
compromise that would influence their actions by endorsing their
consumer values.

This is not to say we cannot cite practical advantage at all—we can
and we do. It becomes a problem only when the practical advantage steals
the scene and pushes freedom into the background. Therefore,
when we cite the practical advantages of free software, we reiterate
frequently that those are just additional, secondary reasons
to prefer it.

It's not enough to make our words accord with our ideals; our
actions have to accord with them too. So we must also avoid
compromises that involve doing or legitimizing the things we aim to
stamp out.

For instance, experience shows that you can attract some users to
GNU/Linux if you include some
nonfree programs. This could mean a cute nonfree application that
will catch some user's eye, or a nonfree programming platform such
as Java (formerly) or the
Flash runtime (still), or a nonfree device driver that enables
support for certain hardware models.

These compromises are tempting, but they undermine the goal. If
you distribute nonfree software, or steer people towards it, you will
find it hard to say, “Nonfree software is an injustice, a
social problem, and we must put an end to it.” And even if you
do continue to say those words, your actions will undermine them.

The issue here is not whether people should be able
or allowed to install nonfree software; a general-purpose
system enables and allows users to do whatever they wish. The issue
is whether we guide users towards nonfree software. What they do on
their own is their responsibility; what we do for them, and what we
direct them towards, is ours. We must not direct the
users towards proprietary software as if it were a solution, because
proprietary software is the problem.

A ruinous compromise is not just a bad influence on others. It can
distort your own values, too, through cognitive dissonance. If you
have certain values, but your actions imply other, conflicting values,
you are likely to change your values or your actions so as to resolve the
contradiction. Thus, projects that argue only from practical
advantages, or direct people toward some nonfree software, nearly
always shy away from even suggesting that nonfree software
is unethical. For their participants, as well as for the public, they
reinforce consumer values. We must reject these compromises if we wish
to keep our values straight.

If you want to move to free software without compromising the goal
of freedom, look at the FSF's
resources area. It lists hardware and machine configurations that
work with free software, totally free GNU/Linux
distros to install, and
thousands of free software packages that
work in a 100 percent free software environment. If you want to help the
community stay on the road to freedom, one important way is to
publicly uphold citizen values. When people are discussing what is
good or bad, or what to do, cite the values of freedom and community
and argue from them.

A road that lets you go faster is not better if it leads to the
wrong place. Compromise is essential to achieve an ambitious goal,
but beware of compromises that lead away from the goal.