Mr. Richard Stallman, GNU Project: I am going to speak about free
software and, first of all, its ethical, social and political
significance, and secondly, something about its economic consequences.

Free software is a matter of freedom. The English word
“free” does not make this clear because it has two
meanings. In your language, fortunately, you have two different
words. So, if you say jiyu na sofuto, it is very clear that you are
not talking about the price, you are talking about freedom. So, I urge
you, always use your unambiguous word and not our unclear word when
you are talking about free software in Japanese.

The reason for having free software is very simple: to live in freedom
and, in particular, to be free to treat other people
decently. Nonfree software says that you are helpless and divided. It
says you cannot even tell what the program does; you are supposed to
take the developer's word for it; and often they will not tell you
what it really does. And if you do not like it, you cannot change
it. Even if the developer made his best sincere effort to make the
program useful, nobody is perfect. I could write a program, and you
might find it halfway good for what you want. Perhaps I wrote it for
somewhat different purposes, not the same as your purposes. Nobody can
anticipate everything. Perhaps I did it the way I thought was best,
but you have a better idea. Nobody can always get everything right.

With nonfree software you are stuck. You have to take it the way it
is. You have to suffer with it. And most important with nonfree
software, you are forbidden to share with other people. Society
depends on people helping each other. It is useful to live with
neighbors who will help you when you ask for help. Of course, not
always, nobody is forced to help another person, but if you are
friends with people, often they will help you out. So, of course, we
had better help other people if we want them to help us.

So what is it like when someone says you are prohibited from helping
someone else? Here is this useful knowledge, and you could help your
neighbor by sharing it, but you are forbidden to share with other
people. This is attacking the bonds of society, dissolving society
into isolated individuals who cannot help each other.

Free software is the contrast to this. Free software means that you
have four essential freedoms. Freedom zero is the freedom to run the
program for any purpose, in any way that you want to. Freedom one is
the freedom to help yourself by studying the source code to see what
the program does and then changing it to suit your needs. Freedom two
is the freedom to help you neighbor by distributing copies to
others. And freedom three is the freedom to help build your community
by publishing an improved version so others can use your version
instead, so others can get the benefit of your help. With these
freedoms, the users control the software they use. If these freedoms
are lacking, then the [software] owner controls the software and
controls the users.

We all know that computers do not make decisions themselves
really. They do what people told them to do. But which people told
them what to do? When you are using your computer, can you tell it
what to do, or is someone else telling it what to do? Who controls
your computer? This is the question of free software. The freedoms in
the definition of free software, freedoms zero, one, two and three,
the reason why these are the freedoms that matter is because these are
the freedoms necessary for citizens to control their own
computers. You need freedom zero in order to be able to do whatever
job you want with your computer. You need freedom one so that you can
make the software do what you want it to do. If you do not have
freedom one, you are stuck; you are a prisoner of your software.

But not everybody is a programmer. If we had just freedom one, then
programmers could change the software to do what they want. But if
each programmer had to make his changes personally, we would not
really have much control. We would be limited to what each of us,
individually, could do. Non-programmers would get no benefit at
all. That is why freedom three and two are crucial, because freedoms
two and three allow a group of users to work together and make the
software do what they jointly want. So you are not limited to changing
it individually, personally.
You and 50 other people who want the same
thing, you can get together. If two or three of you are programmers,
they can make the changes, and then they can distribute it to all the
rest of you. You could all put money in and pay a programmer to make
the changes you want. Your company could pay a programmer to make the
changes your company wants. Then if you publish the improved version,
everybody can use it. Thus, all of society gets control over what its
software does.

Free software is a method, a democratic method, for deciding the
development of software. But it is democratic in an unusual way,
because we do not hold an election and then tell everybody what to
do. Nobody tells people what to do in the free software community;
everybody makes his own decision. But what happens is this: If many
people want the software to improve in that direction, many people
will work on changing it, so the software will develop rapidly in that
direction. If a few people want the software to develop in that
direction, a few of them will make an effort, so it will develop
slowly in that direction. If nobody wants it to develop in that
direction, it will not. By each of us deciding what we are going to
do, we all contribute to what happens and to deciding which direction
the software will develop.

So society collectively has control over how the software will develop
overall. But you, individually, or any group or company can decide how
to develop it themselves. The result is that free software tends to do
what users want, instead of what the developers want.

People often ask, “If everybody is free to change the software,
what does that do for compatibility?” Well the fact is, users
like compatibility. It is not the only thing they like. Sometimes,
certain users want an incompatible change because it has other
benefits, and if so they can do it. But most users want
compatibility. The result is most free software developers try very
hard to be compatible. Guess what would happen if I made an
incompatible difference in my program and the users did not like
it.
Some user would change the program and make it compatible, and
then most users would prefer his version. So his version would become
popular and mine would be forgotten. Now, I do not want that to
happen, of course. I want people to like and use my version, so I am
going to recognize this in advance and I am going to make my version
compatible from the beginning because I want people to like it. So in
our community, the developers cannot resist what the users want. We
have to go along or the users will go where they want and leave us
behind.

But if you look at nonfree software developers, the ones who are very
powerful, they can impose incompatibility and they are so powerful
that the users cannot do anything. Microsoft is famous for this. They
make an incompatible change in a protocol, and then the users are
stuck with it. But it is not just Microsoft. Consider WAP, for
instance. WAP contains modified versions of ordinary Internet
protocols, modified to be incompatible, and the idea was they would
make these telephones and they would say “they can talk on the
Internet”, but since they did not use the ordinary Internet
protocols, the incompatibility would be imposed on the user. That was
their plan. It did not work, fortunately. But that is the danger you
face when the users are not really in control: Somebody will try to
impose incompatibility on the users.

Free software is primarily a political, ethical and social issue. I
have explained that level of it. It also has economic
consequences. For instance, nonfree software can be used to create
very rich companies, where a few people collect money from everyone
around the world, and those few get very rich and other people are
deprived. There are many countries (Japan is not one of them, I guess)
where the people who can afford a computer usually cannot afford to
pay for the nonfree software, for permission to use the nonfree
software. So in those countries, nonfree software as a system creates
tremendous deprivation. But in any country, money is squeezed out of
most people and concentrated to a few who become very rich by nonfree
software. With free software, you cannot do that. You cannot squeeze a
lot of money out of people, but you can do business with people as
long as you are providing them with a real service.

Free software business already exists. In fact, I started a free
software business in 1985. I was selling copies of GNU Emacs. I was
looking for a way to make money through free software. So I said,
“Pay me $150, and I will mail you a tape with the GNU Emacs text
editor.” People started paying me, and I mailed them tapes. I
made enough money to live on. I stopped this because I started the
Free Software Foundation, and it seemed appropriate for the Free
Software Foundation to start distributing GNU Emacs. I did not want to
compete with the Free Software Foundation, so I had to find a
different way. For several years, the Foundation made enough money
this way to pay several employees, including programmers. So actually,
if I had done it myself, I would probably have become comfortably well
off by selling copies of free software.

After that, I started another free software business where I would
make changes on commission.

With nonfree software, you cannot change it. You are a prisoner of
the software. So you either use it exactly as it is or you do not use
it at all. With free software, you have those two choices, but you
have another choice also, actually many different choices. You can
make changes, bigger or smaller, in the program and use the modified
program.

Now, if you are personally a programmer, you could make the changes
yourself. But suppose you are not a programmer. Then, you can pay a
programmer to make the changes for you. For instance, if this ministry
is using a program and people conclude this program does not work the
way we really want, you could easily spend some money to pay a
programmer to change it to do what you want. This is the kind of free
software business that I was doing for several years in the 1980s. (I
could have kept on doing it, but I received a big prize and I did not
have to do it anymore.)

Nowadays there are many people making a living this way. I recently
heard from somebody in South America who said that he know 30 people
there who are making a living this way. South America is not among the
technologically most advanced parts of the world, but this is already
starting there. In 1989 or 1990, I believe, a company was started to
do this kind of business, and that company was started by three
people. In several years it had grown to 50 people, and it had been
profitable every year. They could have kept on doing it, but they got
greedy, and so they started developing nonfree software, and later on
they were purchased by Red Hat.

Anyway, the free software business is a new way of doing business that
does not exist in the proprietary software world. So people often
wonder how would free software affect employment. Suppose every
computer user had freedom. Suppose, therefore, that all software were
free software. In other words, if you have the program, you have the
freedom to run it, study it, change it and redistribute it.What would
that do to employment in the information technology field?

Well, of all the employment in the field, a small fraction is
programming; and most programming is custom software, software being
written for one client. That is perfectly okay; as long as the client
gets the source code and gets the full rights to control the software
once he has paid for it, then this is legitimate. In fact, it is free
software for the client who has it. [Thus, only the programming
which is not client-specific is really nonfree.]

So of this fraction that is programming, most of that is custom
software; software to be published is a small fraction of a small
fraction of the total [IT sector employment].

So, what would free software do? It might eliminate this tiny fraction
of the employment, but maybe not. Because while the possibility of
paying these programmers by restricting the users would go away, there
would be a new possibility instead of supporting programmers who would
be paid to make improvements and extensions in free software. So will
we lose more jobs or gain more jobs? Nobody knows. It is impossible to
tell. What we do know is that the decrease in employment in the IT
field is limited to this small fraction of a small fraction, which is
programming for publication. The rest would continue the way it is
now. So it is clear that there is no problem for employment.

What about another issue people sometimes raise: Could we possibly
develop enough software and make it free? The answer is obvious
because we already are. The people who ask this question are like
asking could airplanes really stay up? Well, I flew in one. Probably
all of you have flown in airplanes too. I think they can stay up. In
free software today, we have hundreds of people, maybe thousands,
getting paid to develop free software. But we have over half a million
volunteer developers of free software working part time and not
getting paid and developing a lot of software.

So in fact, free software business is not necessary for free software
to do its job. Free software business is very desirable. The more we
can develop institutions that funnel funds from users to free software
developers, the more free software we can produce, the better we can
produce it. So it is certainly desirable, but it is not crucial. We
have already developed two entire operating systems, two graphical
user interface desktops and two office suites that are free
software.

People are creatively looking for ways to fund free software, and some
[ways] work and some do not, as you might expect. For instance, last
summer, there was a product that people had liked but was nonfree
called Blender, and the business decided it was no use supporting this
or selling this anymore. They discontinued it. But the developers did
not want it to be discontinued, so they negotiated a deal: If they
could raise $100,000, they could buy the rights and make it free
software. So they went to the community, and in a few weeks they
raised the money. Blender is now free software. This suggests that
maybe we can raise money from the community in the same way to make
specific extensions.

A programmer who has a name, a reputation for ability, could go to the
community and say, “If people put up this much money, I will do
the work.” He does not have to do the work entirely himself. He
can employ other programmers working with him, and this is how you
would get started. Before you have a name, before you could go to the
community on the strength of your own reputation, you could be working
as an apprentice for other programmers. They raise the funds, they
supervise the work, but by doing this, eventually you develop a
reputation too, and then you can go and get clients.

There are also, of course, legitimate roles for government funding in
developing useful software, just as governments fund scientific
research designed to be of use to the citizens, and even just for the
sake of human curiosity, but certainly to be of use for the citizens,
for the public. It is equally legitimate for governments to fund the
development of software that is going be of use to the public, and
then when it is done, hand it off to the public and say,
“Everyone can now use and improve this. It is human
knowledge.” Because that is what free software is really
about. It is human knowledge, knowledge that belongs to humanity, to
all beings. A nonfree program is restricted knowledge, knowledge that
is kept under control by a few, and other people cannot really have
access to it. They can only use it barely on sufferance. They can
never have the knowledge.

For this reason, it is essential that schools use free software. There
are three reasons why schools should use exclusively free
software. The most shallow reason is to save money. Even in a
developed country, schools never have enough money, and so the use of
computers in schools is held back. Now, if the schools use free
software, then the school system has the freedom to make copies and
redistribute them to all the schools and they do not have to pay for
permission to use the software. So the school system can thus install
more computers, make more facilities available. In addition, the GNU
plus Linux operating system is more efficient than Windows, so you can
use an older, less powerful, cheaper model of computer. Maybe you can
use a second-hand computer that somebody else is getting rid of. So
that is another way to save. That is obvious, but it is shallow.

A more important reason for schools to use free software is for the
sake of learning. You see, in the teenage years, some students are
going to want to learn everything there is to know about the inside of
the computer system. These are the people who can become good
programmers. If you want to develop a strong programming capacity,
people prepared not just to work as part of a big team in a rather
mechanical way, but people who will take the initiative, do big
things, develop powerful, exciting programs, then you need to
encourage the impulse to do that, whenever a kid has that impulse. So
it is important to provide facilities and a social milieu that
encourages this kind of learning to develop.
The way to do this is the
schools should run free software, and whenever a kid starts wondering,
“How does this actually work?” the teacher can say,
“This is done by the Fubar program. You can find the source code
of the Fubar program there. Go read it and figure it out, see for
yourself how this works.” Then if a kid says, “You know, I
have got an idea for how this could be better,” the teacher
could say, “Why not give it a try? Try writing it. Make the
change in the Fubar program to change this one feature.”

To learn to be a good writer, you have to read a lot and write a
lot. It is the same if you are writing software: You have to read a
lot of software and write a lot of software. To learn to understand
big programs, you have to work with big programs. But how can you get
started at that? When you are beginning, you cannot write a big
program yourself, not and do a good job, because you have not learned
how. So how are you going to learn? The answer is you have to read
existing big programs and then try making small changes in
them. Because at that stage, you cannot write a big program yourself,
but you can write a small improvement in a big program.

That is how I learned to be a good programmer. I had a special
opportunity at the Massachusetts Institute of Technology. There was a
lab where they had written their own operating system, and then they
used it. I went there and they said, “We would like to hire
you.” They hired me to improve the programs in this operating
system. It was my second year of college. At the time, I could not
have written an operating system myself. I could not have written
those programs from zero, but I could read them and add a feature and
then add another feature and another and another.
Every week I would
add another feature to some program. By doing this many, many times, I
developed my skill. In the 1970s, the only way you could get that
opportunity was to be in a very special place. But today, we can give
that opportunity to everyone. All you need is a PC running the
GNU/Linux system with the source code, and you have this
opportunity. So you can easily encourage Japanese teenagers, those of
them who are fascinated by computers, to become good programmers.

I have a friend who was a high school teacher around 1980, and he set
up the first Unix machine in a high school. He then mentored the high
school students so that they learned to become good
programmers. Several of them were very good programmers with
reputations by the time they graduated from high school. I am sure any
high school has a few people who have that talent and will want to
develop it. They just need the opportunity. So that is the second
reason why schools should use free software exclusively.

The third reason is even more fundamental. We want schools to teach
facts and skill, of course, but also good moral character, which means
being prepared to help other people. That means the school should say
to the kids, “Any software that is here, you can copy it. Copy
it and take it home. That is what it is here for. If you bring any
software to school, you must share it with the other kids. If you are
not willing to share it with the other kids, do not bring it here, it
does not belong here, because we are teaching kids to be helpful to
each other.” Education of moral character is important for every
society.

I did not invent the idea of free software. Free software began as
soon as there were two computers of the same kind, because then people
using one computer would write some software, and the people using the
other computer would say, “Do you know anything to solve this
problem?” and they would say, “Yes. We wrote something to
solve this problem. Here is a copy.” So they started exchanging
the software that they had developed, so that they could all develop
more. But in the 1960s, there was a trend to replace it with nonfree
software, a trend to subjugate the users, to deny users freedom.

When I was in my first year of college, I got to see a moral example
that impressed me. I was using a computer facility, and at this
facility they said, “This is an educational institution, and we
are here for people to learn about computer science. So we will have a
rule: any time software is installed on a system, the source code must
be on display so people can read it and learn how this software
works.”
One of the employees wrote a utility program and he
started selling it as nonfree software. He was not just selling
copies the way I was doing; he was restricting the users. But he
offered the school a copy at no charge, and the people in charge of
the computer facility said, “No, we will not install this here
because our rule is the source code must be on display. If you will
not let us put the source code of this program on display, we just
will not run your program.” This inspired me because it was a
willingness to renounce a practical convenience for the sake of
something more important which is the mission of the school:
education.

The lab where I worked at MIT was an exception though in the 1970s due
to the fact that we had an operating system that was free
software. Most computers were using nonfree operating systems at the
time. But I was inspired by the example that I saw there and I learned
to live in that way. I learned the way of life where you will teach
your knowledge to others instead of keeping it all for yourself. Then
this community died in the early 1980s. At that point, I started the
free software movement. I did not begin free software. I learned the
free software way of life by joining a lab where people already
practiced it. What I did was to turn this into an ethical and social
movement, to say that this is a matter of choosing between a good
society and an ugly society, between a clean, kind, helpful way of
life where we have freedom, and a way of life where everybody is in
bondage to various empires that conquer them, where people believe
they have no practical choice but to give up their freedom.

Theoretically speaking, on the one hand people say, “Oh, nobody
forces you to use that nonfree software. Nobody forces you to use
Microsoft Word.” On the other hand, you have people saying,
“I have no choice.” So practically speaking, it is not a
situation of individual choice. Yes, it is true, if you are determined
to be free, determined to reject it, you can do it, but it takes a lot
of determination. When we started 20 years ago, it took tremendous
work to use a computer without the nonfree software. All the
operating systems for modern computers in 1983 were proprietary. You
could not get a computer and use it, except with nonfree software. To
change this, we had to spend years working, and we did, we changed it.

For you, today, the situation is easier. There are free operating
systems. You can get a modern computer and use it with free software,
exclusively with free software. So nowadays, instead of a tremendous
sacrifice, you just have to make a temporary, small sacrifice, and
then you can live in freedom. By working together, we can eliminate
that sacrifice. We can make it easier to live in freedom. But for that
we have to work. We have to recognize freedom as a social value.

Every government tries to get its work done inexpensively, and every
government agency has a specific job to get done. So when government
agencies choose their computers, they tend to look at narrow,
practical questions: How much will it cost, when can we have it
running, and so on.

But the government has a larger mission, which is to lead the country
in a healthy direction, one that is good for the citizens. So when
government agencies choose their computer systems, they should make
this choice so as to lead the country to free software. It is better
for the economy of the country because the users, instead of paying
merely for permission to run the software, will be paying people in
the local area to improve it and adapt it for them. So in instead of
all draining away to Redmond, Washington, the money will circulate in
the region, creating employment locally instead of filling
somebody's pockets. But more important, it creates a way of life
where the country and the people are independent and free.