Free Software

"Liberté, Égalité, Fraternité"

By Nadav Har'ElJune 1, 2001

ABSTRACTFree software means a lot of
different things for
different people. For some people it means they can get quality software
while paying next to nothing. For other people, it means the freedom to
understand what the software they use does exactly, and even modify it
to their specific needs. Some people view free
software as a way to escape the tyranny (as they see it) of the commercial
software giants. In this essay I want to lay out the benefits of free
software to our society, as I see them. I take the slogan of the French
Revolution, "Liberté, Égalité, Fraternité", and show how each of these
ideals (and not just the often-mentioned Liberty) is an important part of the free
software movement.

CAVEAT LECTOR: (or "What this essay is NOT
about" and "some silly notes")
The exact definitions of
"free software", or
"open source" have
been discussed and compared ad nauseam elsewhere. Here I simply assume
a license which allows freely distributing the source code of the software,
modifying it, and freely redistributing the modified source code.

While I claim that free software is beneficial to our society, nowhere
do I claim that it solves or will solve all the world's problems. On its own it
probably won't bring a stop to violence and wars, won't feed the hungry
children, won't cure AIDS or cancer, won't provide a renewable and clean
energy source, and won't bring freedom to the
oppressed people ruled by totalitarian and corrupt governments. Richard
Stallman (the guy who started the Free Software
Foundation) was once misquoted as saying in a convention in England that "Free software
would have prevented foot and mouth, BSE, [and] Hatfield rail crash". In a rebuttal
article to the same web-magazine he calls this idea "It's not merely
untrue; it isn't even a plausible fabrication.".

For lack of gender-neutral
pronouns in English, I arbitrarily decided to use the female
third-person-singular pronouns (she, her, herself) in this essay. This essay,
however, applies to all humans. For fairness, my next essay will be written
using male pronouns...

Keep in mind that this essay focuses on free software only. Some of my
arguments also apply to other areas of human creativity (such as books, music
or web content) while other arguments do not.

1. LIBERTÉ

liberty 1a: The power to do as one pleases. 1c: Freedom from arbitrary
or despotic control 1e: The power of choice.

The word "free" in "free software" is instinctively associated by laypersons
with not costing anything. But in this section I want to emphasize its other
meaning, the meaning of freedom or liberty.

Unlike more physical products, software has the interesting property of
being possible to duplicate with almost zero effort or cost. If distributed
at the form of source code (rather than compiled binaries), users who are
proficient programmers may even modify the software to their particular
needs, instead of copying the original program verbatim. However, currently
most software companies sell or rent their software on a per-copy basis,
meaning that the user is expected to pay for every separate copy of the
software she uses. These software companies therefore contractually prohibit
buyers of their software to make copies which are to be used by other people or on other machines (some
contracts specifically allow copying for personal backup purposes). Some
companies use one or several of a variety of copy-protection mechanisms,
from networked license servers, machine-specific keys, and other tricks,
to enforce this prohibition on copying. Moreover, such companies do not
normally give out the software's source code to users in fear that a user
might distribute a modified (perhaps better!) product without (or with) charge, reducing the
company's profits.

Anybody who has ever used commercial software can surely recognize how in
this quest to prohibit copying, the user's freedom to use the software
fairly and efficiently is diminished. Examples abound:

Sometimes some sort of physical entity, such as a dongle, a user's manual, or a
long key printed on the CD, is needed in order to install or use the software.
Losing this physical "key", or it being damaged, means the user will no
longer be able to use the software, for completely artificial reasons.

Some software companies ask you for some serial-number of your
machine (such as the network card's MAC address, the CPU serial number, or
IP address), and the software you get will refuse to work on a different
machine. This means, however, that the user is no longer free to change her
configuration or buy a different machine - the software will not run on the
new machine without lengthy deliberations with the software company (and sometimes
the user will need to pay again).

Even though the user owns her copy of the software, she is not free to
fix it or modify it to her needs, because she usually doesn't get access
to the source code. Imagine buying a car, and being told that if something
goes wrong, or you'll want to modify it in some way not preconceived by the
car maker, you won't be able to do these modifications yourself (nor to
hire a mechanic to do them for you), and will need to buy a new car instead.
Car owners will not accept such a limitation, and neither should software
owners.

Software sold in compiled binary form is naturally intended for a
particular computer and a particular version of an operating system (or a
small number of combinations thereof). When this operating system is no longer
common, the user is left with a worthless software product that can no longer
be used, and is powerless to remedy the situation.
I was personally bit by exactly this problem. I bought
a CD-ROM-based English-dictionary software. It ran on either Microsoft Windows
3.11 or Microsoft Windows 95 machines, where the latter were common in my
office. A mere year later, the Windows 95 machine I had access to was upgraded
to Microsoft Windows NT, and it turned out that the dictionary software did not work
on NT. I talked to the software company, and they left me only one option:
to buy a new version of their software, at full price, to run on NT. Not
to mention that a version for the operating system I really wanted
to use it on, Linux, did not exist at all. On that occasion I felt
like I was swindled out my money (since I had expected to buy the software,
not rent it for one year), and the freedom to use my legally-owned
copy of the software was taken away from me.
But even worse - consider the situation where a user had been using a non-free
application (say, a word-processor) to create her magnum opus, and several
years later the software vendor stops selling or supporting this application.
After a few more years, it is very likely that the old binary application
will no longer work on new CPUs and/or operating systems, and the user will
no longer be able to access her work! She's not even being given the option
to buy a new version! If the software had been free, she could have tried to port
it to her new machine, or hire someone to do that for her.

The point I'm trying to make is that these are not just examples of flawed
copy-protection schemes. These confinements of the user's liberty to use her
legally-owned software are direct results of the software companies' effort
to prevent the user from making copies of the software. Software companies
treat all users as potential criminals: Even users who are not going to
make copies of the software are usually not given the full source-code of
the software, with the full control and freedom that comes with it.

From all I wrote about the problems of non-free software, it should be
obvious how a piece of free, open source, software gives its user much more
freedoms. No arbitrary show-stopper measures are inserted into the program
and keys (either physical or digital) are not required (their use would
be futile, as anybody with the source can just comment out the code that
checks for the key). The user
is free to understand exactly what the program does (if she cares to). She
is free to modify the software to her needs, either slightly (such
as fixing a bug that annoys her) or drastically. If the user is
incapable of making these modifications herself (most computer users are not
expert programmers!) she is free to hire someone else to do them for her. The
person doing these modifications (usually improvements) is free to distribute
the modified version, as a new "branch" off the original software. Other
developers are free to branch off again, creating a whole tree of options
for the end-users (but usually only a very small number of branches become
popular with the general public). And, as quoted earlier, one of the
dictionary definitions of freedom is "The power of choice".

2. FRATERNITÉ

fraternity 2: A group of persons associated by or as if by ties of
brotherhood. 3: Any group or class of persons having common
purposes, interests, etc. 5: The quality of being brotherly.

(source:
Random House Compact Unabridged Dictionary).

Unfortunately, the attitude of fraternity, the feeling of brotherhood
and sharing of fate between fellow human beings, isn't common enough in the
modern Western world. It is a common misinterpretation of the ideals of
capitalism and free market to say that everything you ever do for someone
else should be cashed in for profit. Surely, most people will help out their
family (e.g., siblings), without expecting to be paid for that. Moreover,
most people will feel great joy and pride knowing that a small effort they
made helped their brother in a big way. Is it so terrible to have that
attitude also towards fellow human beings, complete strangers, who are not
your family?

Of course, I'm not suggesting that people should
not hold jobs, and do volunteer work 100% of their time. In fact jobs, and
money, are Society's main method to ensure that what Society wants gets
done, and time and effort aren't being wasted on things that Society
doesn't need or want. To understand what I'm really saying, consider the following
anecdote. About two years ago
I bought a new cellphone with SMS (short message service) capabilities. I got
it after I had the idea that I wanted my emails, and other important
events, to be announced to my cellphone. For that I needed a small program,
to run on the Unix server on which I get my mail, that will send SMS messages
to my phone; This program would have to use, in an automatic manner,
the Israeli cellphone companies' SMS-sending web forms which were already
available at the time. So I sat down and wrote such a program - an initial
effort of perhaps 10 hours to support the provider I used (later modifications
took, perhaps, another 50
hours). The program worked very well, and I was very pleased with the fact
that I no longer had to log-in just to check if I had new mail. But
immediately I was faced with the question of what I should do about sharing
my new program with the world. Several options came to mind:

Try to sell program, and the idea behind it (SMS were not common at the
time, and people still didn't quite know what to do with them), to a company,
or start a whole new company around it. Remember, this was the time of the
start-up frenzy and the time when your dog's homepage could be valuated at
a billion dollars on the stock market.

Distribute the program as shareware.

Distribute the program freely as free software. I would start by giving
it out to my closest friends, and then distributing it in some public venue
(such as a web site or free-software related mailing list).

I chose option #3, that is to distribute the program as free software. I
will get in a moment to what I have against shareware and why I didn't choose
option #2, but the harder decision was not to choose option #1. My
friends told me that I should choose option #1, each citing their favorite example
of someone who had a small idea that later turned her into a billionaire.
But I refused. My first reaction was that any company could recreate my work
by hiring someone to do it, and even for a programmer less skilled than
myself it wouldn't take longer than a month - so why would anyone want to
buy my program from me? My second reaction was that I wasn't looking for a
new job at the time. But I also felt the "fraternity" feeling I described
above: if with so little effort (10 hours in the initial version) I could
do something that (as I later found out) would be so useful to a large
number of people, just knowing this is more than enough reward for the
small amount of effort I've invested.

I've also made personal gains from my free
software (and free content) work. This is because this feeling of fraternity is
not one-sided: Many users express their gratitude for your volunteer
work - sometimes with mere words, and sometimes with more concrete financial
incentives such as job offers and invitations to talk in conferences (actual
money is usually not given). In fact I
found that my (relatively insignificant) work in the free software and free
Internet content arenas did wonders for my reputation in the Israeli job
market, something that is worth much more to me than, say, $1000 I could
have gotten from users if I released this software as shareware. I also
gained a lot of broad experience, and I feel thankful for my users for
driving some of this development forward. I feel that in all free
software (and free content) projects I've been involved in, I've gained
much more than I could have gained by turning it into a commercial venture.

I promised I'll return to say something about shareware and why I didn't
want to license my software as shareware. Shareware was
popularized in the 90's in PC software. These were usually (but not always!)
programs written by an individual and were not "important" enough to be
sold like standard commercial software (or the commercial distribution
channels would ask for too large a percentage of the profit). These
programmers decided to let people freely distribute and copy their programs.
But unlike the attitude of fraternity and free software among their
contemporary Unix developers (such as the Free Software Foundation's
GNU
project), the shareware developers still wanted to be paid for every
copy used. The README file in the program's distribution explained how if
you use the program, say after a 30 day evaluation period, you must
"register", by sending a certain amount of money to the programmer. In some
cases in order to
"persuade" you to pay that amount, some of the features in the program were
disabled, or the program stopped working 30 days after installation, and
it resumed normal operations only after you inserted a digital "key" you got
after paying. Since the programmer didn't want other people to distribute
modified versions of the program (possibly asking money to be sent to
a different address!), shareware programs were almost never distributed with
their source code.

But there was a serious problem with the shareware
approach. Most users were not willing
to pay even $10 (and certainly not $50) for each of the small utilities
they used. When you use 20 small utilities, paying $10 for each becomes
a lot of money - and even worse - a lot of hassle with mailing that money
in various currencies to 20 different people and waiting for the digital keys in return mail.
So most users either not used shareware programs at all, or used them
without registering ("cracks" even appeared to remove the artificial
limitations of the non-registered version). So what did the shareware
author gain? Her effort was exactly the same as if she gave out her
software for free; The value of her program to Society was much lower,
because much fewer people used her programs (but perhaps many people were "living in sin",
using the program without registering). And in most cases, when the
shareware program was not incredibly popular the programmer ended up opening
100 envelopes and answering them, and earning $1000 (unfortunately nobody,
not even the ASP,
seem to publish data an how much a typical shareware author makes, so I'm making
an educated guess here). This is a respectable
sum but certainly not something that would let someone quit her job and devote
herself to shareware programming. Only a tiny minority of shareware authors
ever made a living from shareware - see for example the story of
Jim Knopf.
The shareware model led to a situation
of mutual resent (users resented the author for requesting them to go
through the hassle of registration and paying, and the author resented the
fact that most users did not register) instead of the fraternity
I am trying to advocate.

3. ÉGALITÉ

Most people in non-communist countries concede that complete equality
between human beings (or even citizens of a certain country) is almost impossible to achieve,
and is not necessary
for a well-functioning society. However, almost no one will argue that acute
inequality is required. It is possible (and indeed done in many
countries) to ensure a basic minimum standard of living for every citizen,
e.g., ensure that citizens don't starve, get medical treatment, have a place
to sleep, and can give their children a decent education.
However, doing so usually requires levying taxes on the richer population; This lowers the amount of inequality in
the society, but at the same time causes resent in some (though not all)
rich, and even upper middle-class, people. This "leveling off" of the
inequality is also viewed as state intervention in the economy, which is
frowned upon by many conservative politicians (especially in the USA, where
tax rates are among the lowest in the western world).

In this respect, the holy grail of furthering social equality is finding ways
in which poor people can be helped and their situation improved without
taking more taxes from the more affluent population. My claim is that one of
the ways this can be done is through free software.

Of course, free software, in isolation, isn't much help to a very
poor person.
A homeless person isn't likely to have a computer at all. People whose children are
sick or starving have more on their mind than using a computer. The
availability of free software can only help these people in a
less direct way - driving down the computing costs of the government can
leave more money to be used in feeding, healing, and housing the destitute.

But a whole stratum of people, who are poor but neither destitute nor coming
from completely dysfunctional families, will benefit from free software more
directly. These people obviously want to provide the best education that they
can for their children, to try and break the vicious circle of "inherited
poverty". In the modern world, "computer-literacy" - learning to use
computers - is an important part of this education;
Not only for the glamorous and high-paying jobs in the high-tech sector,
but also for many non-programmer jobs. A child who has never had the
opportunity to get acquainted with computers, would be in 10 years in an
inferior position in the job-market, compared to her computer-literate
peers. In 50 years, being computer-illiterate may be just as unacceptable as
being illiterate now is. The term
"digital divide" is often
used to describe the big gap in the opportunities available in the modern world to
someone with a basic experience with computers and the Internet, compared to
someone who cannot afford or is never given the opportunity to learn to use a
computer - or someone who knows how to use a computer but cannot afford
owning (or even accessing) one.

For obvious reasons, poor families cannot afford to buy state-of-the-art
computers every two or three years. But they may be able to afford scaled-down "economy" configurations,
or even to buy a cheap 2-year-old used computer. However,
after buying the hardware these families will also need software. Buying
new software (a commercial operating system, word processor, a compiler
for one programming language, etc.) is too expensive. Buying used software
is outlawed by many software vendors, but even if it were legal it would not be
in the child's best interest to use out-of-date software; This young-adult would
be arriving in the job market with knowledge of old software that hasn't
been used for several years. Some areas (such as the Internet) have changed
so much in 3 years that 3-year-old software is simply irrelevant.

Another solution, "pirating" commercial software (i.e.,
copying it illegally), is certainly possible and indeed this is what many
poor people do (as do many not-so-poor people too...). But this has a
serious side-effect which people rarely consider: A child growing up
using pirated software on one hand, and hearing (e.g., in BSA ads) that it
is illegal on the other hand, will learn that sometimes it is OK
to break the law. Is this really what we want to teach our children?
In totalitarian countries even normative people find themselves breaking
the law every day, for everything from following their religious beliefs,
trying to learn what goes on in the rest of the world, or even in obtaining
food. This should not happen in a free country.

A much better, and certainly more legal, solution is for poor people to
use free software. Assuming quality
free software exists (and it does!) for every purpose the child needs,
from operating-system to word-processor, this child will be able to use
state-of-the art software (upgrading it whenever a new version comes out,
for free), without straining the family's budget, and without relying on
the government's help (coming from richer people's taxes) or on humiliating
charity. Free software will not be seen by the poor as charity, as
it is also used by middle-class and rich people. Obviously, the usefulness
of a computer with free software is not limited to children, and the adults
in the family will also benefit from it.

Free software is an even bigger boon to community efforts like community
computer centers (teaching kids computer skills) or libraries with Internet
connections. According to an
American
study, "Community access centers, such as schools, libraries, and other
public access points, .... are particularly well used by those groups who
lack access at home or at work. .... Providing public access to the Internet
will help these groups advance economically, as well as provide them the
technical skills to compete professionally in today's digital economy.".

These non-profit organization may be able to get donations of
old hardware from companies or individuals that don't need them any more (see
for example crc.org's "Computer re-use program"),
and multiplex cheap Internet connections, but for the reasons stated above it
is usually inadequate to use old software, and it is certainly impossible
to do anything without any software at all.
Software companies may not be always willing to donate their commercial
software to such organizations - but free software is always available.
Even more importantly, in many cases getting the new software to work on
the old machines requires some tweaking that is not possible in commercial,
closed-source, software. A community center only needs one volunteer who is a
proficient programmer and system-administrator for tweaking the software to the
center's specific needs. Moreover, this volunteer can then release her changes to the public,
so that other such centers in the world can make use of them without needing
a programmer to volunteer for them.

Recently Linux Journal ran an
article
by Wayne Marshall about a related but quite different issue: the digital
divide between Africa and developed countries. In his article Marshall denounces many of the attempts to fix this
"problem" in Africa (saying, among other things, that "The satellite dish is the new icon of
the digital evangelist, replacing the holy cross."), but has only good
words about free software: "GNU and open-source software are the perfect
fit for the emerging nations of Africa - as for the rest of the world - not
only for the superior technical quality of these systems, but for the values
embodied in their development .... [these] systems give people the
chance to use these powerful technologies for low-cost, grassroots level
applications."

There is an important argument against my position that I must get out of
the way before I can conclude this section. This argument says that
free software is not an equality holy-grail that lifts up the poor without
dragging down the rich; Free software, if successful, will hurt existing
software companies, perhaps driving some of them out of business. That would mean
people losing their jobs, and the companies' owners losing a lot of money.
The argument continues that driving capitalists out of business and upper-middle-class programmers out of a job is even worse than taking taxes
from them, or forcing them (for example) to give out free copies of their
software to the poor. I disagree. The world of business is ever-changing,
and it is not a priority, not of Society and not of the economy,
to preserve old ways of doing business. A hundred years ago, a person might
have been a telegraph tycoon, or a typewriter magnate.
As technology changed and progressed, and these products were no longer
in demand, these businessman had to change the way they do business, or
they would be out of business. This is how the world of capitalism
has always worked, and this is the way it will continue to work. The
workers that used to produce the now-unneeded goods will move on, to produce
the goods needed by the next generation. In the world of software this
might mean less duplication of general-purpose efforts, and writing more
special-purpose or embedded software. It might also mean putting more
emphasis on customer-service. Or capitalism (and Society) might
find a whole new domain to invest our precious minds in, e.g., research into
biology and medicine (people are willing to pay a lot more to be cured from
a terminal disease than they are willing to pay for a piece of software!),
new energy sources, better methods of transportation, and so on.

After writing the bulk of this essay, I found out that
Richard Stallman had already used
the "Liberté, Égalité, Fraternité" metaphor for free software in a
speech he gave in 1998 to the APRIL
association at the University of Paris. He summarized his view of what
equality means regarding software: "Everyone has the same freedoms in using
the software, there is no ordinary situation in which an owner is very powerful
regarding this software, and the rest of the world is completely impotent,
completely restricted in using this software." (translated from the
original French). Continuing this train of thought for a moment, I note that
in order for a traditional, physical, enterprise (such as a farm, a printing
press, or a chip fabrication plant) to succeed it must have central control
(and thus, usually, an owner or a group of owners), because the same physical resources
cannot be used for executing several different plans concurrently. However,
software does not require such central control. Software can be
duplicated at no cost, and each "branch" can go on to use the software (and
develop it further) for its different purposes.

ABOUT THE AUTHORNadav Har'El is a 26 year-old
Mathematician (having received his BA and MSc from the
Technion) and programmer, living in Haifa, Israel. He has been programming
on Unix and Unix-like systems for over 15 years, and so has become very used
to software coming with its source code. He dabbled in the creation of free
software and free Internet content, especially for the specific needs of
the Israeli community (see examples).