Free Software

"Liberté, Égalité, Fraternité"

By Nadav Har'El
June 1, 2001

ABSTRACT Free 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.

(source: Merriam-Webster's Collegiate® Dictionary ©2001, at Merriam-Webster OnLine. Used with permission from the publisher.)

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:

  1. 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.
  2. 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).
  3. 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.
  4. 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:

  1. 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.
  2. Distribute the program as shareware.
  3. 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.

"Share your knowledge. It's a way to achieve immortality." - Life's Little Instruction Book

3. ÉGALITÉ

égalité [French] Social or political equality

(source: Merriam-Webster's Collegiate® Dictionary ©2001, at Merriam-Webster OnLine. Used with permission from the publisher.)

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 AUTHOR
Nadav 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).

COPYRIGHT © 2001, Nadav Har'El. Verbatim copying and distribution of this document are allowed provided that this copyright statement is preserved. Distributing modified copies of this document is allowed provided that they are clearly marked as such, modifications are highlighted, a reference to the original document is given, and this copyright statement is preserved. Distributing excerpts from this document is allowed, provided that due credit is given. All other rights are reserved by the author.