Bertrand Meyer challenges some open-source assumptions.
This is the original text of the article entitled "The Ethics of Free Software" printed in the March 2000 issue, unabridged and unedited. The views expressed are those of the author, not necessarily those of the magazine's editors or sponsors. To discuss this piece, please visit the reader forum.
The movement in favor of free and open-source software has recently reached a highly visible status, not only in the computer profession but in the popular media, with mass-circulation magazines as widely available as Time and Newsweek giving prominent coverage to such heroes of the movement as Richard Stallman, Eric Raymond and Linus Torvalds. Although comments on free software in its various form have been overwhelmingly laudatory, little attention has been made to justify this positive assessment and, more generally, to explore seriously the associated ethical issues.
In this article I will try to correct this situation by taking a close look at the moral issues raised by free and open-source software.
1. ABOUT ETHICS
It is useful first to define a basis for this discussion by recalling some principles of ethics. I will stay away from controversial issues and focus on generally recognized ideas.
- Ethics is about right and wrong. Human beings are equipped with an ability, partly innate and partly acquired, to judge human actions as morally good or bad. This does not mean that "right" and "wrong" mean exactly the same for everyone, simply that everyone possesses a notion of right and wrong.
- In spite of the diversity of moral views, ethics includes a universal component. The differences are not only individual (my next-door neighbor may find repellent a behavior which to me is perfectly acceptable) but also cultural: for example in Western countries we find it normal that a woman should show her face in public, a conduct that in some parts of the world is considered immoral. But many principles are culture-independent. Killing an innocent person, for example, is not morally acceptable, regardless of your culture. This discussion will assume that there are a number of such moral absolutes and will ignore more specific principles.
- Ethical rules may be rated as more or less important. Most people would accept all of the following as consequences of moral imperatives: do not litter a public park by disposing of a paper napkin on the lawn; if you are sitting in a bus and see that an obviously tired elderly person cannot find a seat, cede yours; do not steal from the corner grocery store; do not kill the next person that you see walking peacefully down the street; do not send tanks, troops and aviation to invade your neighboring country. But some of these are more fundamental than others, meaning in particular that corresponding violations are more repulsive than others (perhaps, for these examples, in the order given).
- Human beings have both good and bad impulses. A society in which everyone is evil all of the time would be impossible to manage; but in no society is everyone good all the time.
- One should judge people on their actions. Intentions can sometimes provide extenuating circumstances, but what counts is what people voluntarily do, not the reason they have, or invoke, for doing it. Hell is paved with good intentions. Aside from other reasons, limiting ourselves to judging deeds, not thoughts, is easy to justify on purely pragmatic grounds: you can observe my actions, or at least their results; you cannot tell whether my excuses are real or imagined.
- Not causing unjustified loss of human life is one of the universal moral imperatives.
- Not damaging someone else's reputation through misrepresentation is another.
- Not acquiring someone else's legitimate property against his will is yet another.
- Justly remunerating someone else's services is related to the preceding one.
The word "justly" makes the last principle perilous to apply in practice, since fairness is a subjective concept. Since this discussion is only about ethics, we cannot resolve the issue fully because this would involve economics (in a market economy, fairness is a tradeoff between demand and supply). You, my publisher, may offer me $100 for my latest novel, adding that it's really boring and you are doing me a favor, whereas I, having spent five years on it and being convinced that the result is--frankly--brilliant, scream that anything less than a million would be a moral outrage. Ethics won't bring a resolution here, only economics and the strength of our respective negotiating positions. But if I accept your proposal and the next day you sell the rights to Steven Spielberg for $10 million, many people will consider that you have done me wrong ethically.
An area perhaps more directly related to ethics than economics is the law. In an ideal world, there might be perfect identity between the legal and the moral. But not in the real world. What's legal is not necessarily moral: it is not very moral to say nasty things to your mother on her birthday, but you're not violating any laws. What's moral is not necessarily legal: not so long ago Southern US states forbade a white person from bringing a black acquaintance into a "whites only" public place, contradicting the obvious moral imperative that one should not discriminate against people because of the color of their skin. It would be exaggerated and cynical to infer that there is altogether no connection between ethics and the law; but at most what the law will give us (even if we exclude obviously immoral laws like the last one cited) is a general indication, rather than an absolute criterion, of practices deemed socially desirable, partly for moral reasons and partly for others.
2. ABOUT FREE SOFTWARE
Even among the proponents of Free and Open Source software the definition of these terms is a constant source of controversy. For example the GNU project (at http://www.gnu.org/philosophy/free-software-for-freedom.html) chides Eric Raymond's Open Source initiatives for attempting to trademark the term "open source". It also criticizes many providers of free software such as Apple (see http://www.gnu.org/philosophy/apsl.html), the Berkeley Unix Software distribution (bsd.html in the same directory) and Netscape (netscape.html) for not observing the exact GNU definition of "free", or using license terms different from those of GNU. It would thus be futile to attempt to provide a comprehensive definition here. The scope of this discussion is, however, clear. We are interested in software that:
- Is available from at least one source without payment (which does not preclude other sources from offering it for payment, for example to people who want a distribution on CD rather than downloaded, or require commercial support).
- Can be used for commercial as well as not-for-profit development, even by people who have not paid for it. (There may be some restrictions on commercial uses, for example the requirement that additions to the free software be free too.)
- Can be obtained in source code form.
Until it arrives at a more precise set of definitions (in section 3), this discussion will use the term "free software" to denote products that satisfy the properties listed above. Note that this is not the definition promoted by the GNU project, which, as we will see, uses "free" in a much stronger sense. The intent is not to fight over terminology, but simply to make do with the limited number of terms in the English language. In addition, the rapidly growing interest in "free" software extends to many products that would not be considered free under the GNU definition, but fall well within the one above.
The growth of free software has indeed been remarkable in the past few years. One of the most visible results has been the Linux operating system, developed under the leadership of Linus Torvald and nominally available at no cost (although usually installed from a CD obtained, for a price, from a commercial company). Other widely used free tools --- some having for-a-fee variants too --- include the TEX and LATEX document processing utilities, a quasi-standard for preparing theses in computer science departments; GCC, the GNU project's C and C++ compiler; Apache, the dominant Web server; the FreeBSD operating system kernel, a Linux competitor; the EMACS and VIM text editors. Through these and other products, the free software movement has already established an indelible mark on the computer industry.
Perhaps the most striking aspect of this movement is the world-wide availability of often talented software developers willing to contribute their time, energy and creativity to free software. It is this pool of enthusiastic contributors, willing to work even without immediate monetary reward, that has led in part to the general feeling of goodwill surrounding the free software community.
It should be pointed out, however, that the existence of a community of dedicated, well-intentioned and sincere defenders of a cause is unrelated to the ethical value of that cause. As an example, one of the tragedies of the twentieth centuries has been the diversion of the energy and passion of countless honest and idealistic volunteers towards support for Soviet-style communism, a regime that cause tens of millions of deaths, uncounted cases of human misery, and the destruction of civil society in entire countries. This example is obviously not a comparison with the free software community, simply a reminder that no idea can be justified on the basis of the quality of its supporters. The observation works the other way too: bad people can defend good causes. A corrupt and dishonest politician may sincerely support principles of democracy and freedom. His personal failings do not disqualify the ideas of democracy and freedom any more than the Nazi regime's impressive building of autobahnen disqualifies the merits of freeways.
3. THE ECONOMICS OF FREE SOFTWARE
The term "free software" (with the earlier definition, implying availability at no cost) is almost always a misnomer since software is produced by humans and in modern societies no human can live without money; so even if no one paid for the software someone must have paid the software developer. In practice the only possible cases are the following:
- The software developer may have a personal fortune freeing him from the monetary concerns of most of his fellow human beings. Although this case may have occurred in connection with free software, I am not aware of any example. We may treat it (if it arises) as a special case of the next one.
- The software developer may have other sources of income, paid by an employer or client as compensation for services unrelated to the free software. The developer may then, in his free time and using his own resources, without direct or indirect participation of the client or employer, and without violating agreed restrictions on external activities, develop products that he makes available as free software. As will be clear from the other cases, this is in the only case in which it is really appropriate to talk of "free software", although this term is in fact too weak; here one should more accurately talk of Donated software.
- Many public institutions such as universities will release for general use
most of the software developed by their employees (although, as universities
around the world are being pressed by the purse-string holders to enhance
their economic value, and recognize the economic potential of the software
they develop, this generous attitude is not as universal as it used to be).
In this case the software may be free to its users but it was not free to
produce. "Free software" is a misnomer; one should talk, in the case of
public universities, of Taxpayer-funded software. For example the GNU Eiffel
compiler was developed at the University of Nancy by employees of that
university who (in contrast with commercial Eiffel vendors, who need paying
customers to survive) get every month a salary from the State, whether the
users are happy or not with the product. This is a typical case of
- Companies may find it beneficial to release some of their software
products without asking for a fee. The goal may be: favorable publicity; an
attempt to establish the company's chosen solution as the standard, thus
gaining a competitive edge and moving technologically one step ahead of the
competition; a desire to get rid of maintenance costs and efforts by
offloading the work to unpaid (or more commonly paid by someone else)
volunteers; a sincere effort to help the community; several of the above. In
this case we should again not talk of free software; the phrase should be
Privately funded software.
- It may be useful to define a special case of the previous two for
situations in which the developers were not officially required by their
supervisors to develop the software, but did it anyway on company time, or
using company resources, or both, and were then authorized to release for
free. For example Richard Stallman's description (at
of the origins of
his EMACS editor, one of the most visible early examples of free software,
makes it clear that this happened as part of his job as systems programmer
at the Massachussetts Institute of Technology. Although this is very close
to the previous two cases, we may use the more specific terms
Taxpayer-sponsored software and Privately sponsored software. Even the icon
of free software, GNU, started in the same way according to Richard Stallman
(on the page just cited):
"So I resigned from MIT and I started to write the GNU system in January of 1984. Fortunately the lab's director allowed me to continue using the lab's computers. I assume that I could have found machines elsewhere, since the EMACS program I had written was rather respected, but that way I didn't have to look."
The story goes on to state that Stallman "resigned"-- presumably meaning that he stopped using the MIT's machines, since it appears from the above that he had already resigned --- because "sometimes, universities take software written by their employees to sell them as proprietary products". (What a shame indeed: that a university would think it has any rights at all on products developed by people it pays, on machines that it owns!)
The categories identified here--donated, taxpayer-funded, privately funded, taxpayer-sponsored and privately-sponsored--seem to exhaust the economic possibilities; they provide precise and accurate terminology, more useful in practice than the catch-all term of free software.
1. The reference cited is a transcript of a lecture given in Paris by Dr. Stallman, in French, in November of 1998. The citation, as well as two later ones from the same source, is a literal translation into English.
4. VOICES FROM THE REVOLUTION
Many of the contributions of the free software community are admirable. Highly disturbing, however, is its widespread slander and hatred of the commercial software world.
The best-known figure of free software, Richard Stallman from GNU and the Free Software Foundation (FSF), professes an absolute refusal of any notion of commercial software. Software should be free, period. A few samples from the GNU and FSF web pages include:
- "Signing a typical software license agreement means betraying your neighbor: 'I promise to deprive my neighbor of this program so that I can have a copy for myself.'" (http://www.gnu.org/philosophy/shouldbefree.html.)
- "When a program has an owner, the users lose freedom to control part of their own lives." (http://www.gnu.org/philosophy/why-free.html.)
- "The system of copyright gives software programs 'owners', most of whom aim to withhold software's potential benefit from the rest of the public. They would like to be the only ones who can copy and modify the software that we use." (Same URL.)
- "I think that to try to own knowledge, to try to control whether people are allowed to use it, or to try to stop other people from sharing it, is sabotage. It is an activity that benefits the person that does it at the cost of impoverishing all of society. One person gains one dollar by destroying two dollars' worth of wealth. I think a person with a conscience wouldn't do that sort of thing except perhaps if he would otherwise die." (BYTE interview, http://www.gnu.org/gnu/byte-interview.html.)
And so on (there are countless other examples). These are extremely strong indictments, based on moral terms. They are morally unjustifiable. Nowhere in the hundreds of pages of GNU and FSF literature is there any serious explanation of why it is legitimate, for example, to make a living selling cauliflowers, or lectures (as a professor does), or videotapes of your lectures, but criminal to peddle software that you have produced by working long hours, sweating your heart out, thinking brilliantly, and risking your livelihood and that of your family.
This absence of rational justification for the extremist view that all commercial software is evil is all the more striking given that some other parts of the GNU/FSF literature can be serious and reasoned. Its criticism of software patents, for example, is often cogent, and takes the trouble of presenting the opposite view to refute it. As soon as the discussion is about free software--and that's where it is much of the time--argument yields to irrational excommunication.
The only stated justification for the indictment of commercial software--apart from nostalgic reminiscences of how nice life was in the early days of the MIT Artificial Intelligence Laboratory, and how horrible it became when printer manufacturers started distributing the software in binary form, a tale that may elicit sympathy from the reader but hardly has any universal moral value (I too remember fondly when you could get access to US National Parks for free by just showing a foreign passport, but that doesn't mean the National Park Service has suddenly turned evil)--is that software is different from other wares since it can be reproduced so easily. But this does not stand a minute's scrutiny. The difference is a matter of degree, not nature; software reproduction always costs something, even if it is as little as a dollar for a CD, ten cents of network connection time for an Internet download, or the marginal cost of using up more memory. With a good scanner or photocopier, you can reproduce a book, too, for very little money these days. Yet another example is TV signals from satellites, which unlike software are in fact truly free to reproduce once you have paid for your own antenna and receiver. We may grumble at having to pay for a mere wave in the ether, but is it immoral? Most people don't think so, accepting instead that it would be immoral to obtain the contents of the signals without economic compensation to the people--producers, actors, technicians--who worked on the programs they contain.
In any case the idea that a low reproduction cost should imply a free product has no rational basis. In fact no known moral law implies that purchase cost should even be related to production cost. I may find ridiculous the idea of paying eight times as much for a BMW as for a Toyota Corolla if I guess that it costs far less than eight times as much to produce; but that doesn't make BMW guilty of moral horrors. The issue is economic (how much is prestige worth to the buyer?), with no ethical consequences.
A social philosopher preoccupied with fairness might argue that, as every American is entitled by birth to an affordable car, denying it is a moral outrage; but this is unrelated to the issue since Toyota's cheaper prices are presumably due not to superior social awareness but to a self-serving business strategy--the decision to target a different market.
The GNU and FSF view is that it is OK to sell anything except software. (To be precise, I have not found any example of something else whose selling they find immoral; satellite signals might seem a logical candidate.) Computers are OK; services are OK. But if the work of your life is a great software package, trying to make a living out of selling it --- unless you also give it away, an immediate business-killer --- is a moral abomination. It should be pointed out here that history suggests the reverse moral lesson .. Until the 18th century, writers were ripped off by publishers. The gradual imposition of a copyright (due largely in France to Beaumarchais, author of the Barber of Seville and the Marriage of Figaro as well as smuggler of arms to the American revolution) was a major moral correction, re-establishing the rights of the creators. The new idea was that the "software" (the abstract contents) had a value, not just the "hardware" (the actual paper, leather and ink making up a physical book). One of the first authors to benefit from this new economic order was Voltaire, who used his great wealth, arising originally from the sale of his books --- his software ---, to fund his lifelong fight against tyranny and injustice. The extremist free-software view would have us return, for software, to a pre-eighteenth-century world: you can make money from selling CDs, but cannot protect the contents of those CDs!
The GNU and FSF use of moral terms to indict commercial software providers, without any moral basis, relies on a perverse distortion of language. The authors take pains to explain that "free" means not cost-free but available for modification by anyone. This is acceptable: after all, the word "free" is ambiguous in English, whereas other languages distinguish between liberty (as in libre) and zero cost (as in gratuit). It is common, in scientific and technical discourse, to use a term from everyday language in a specialized sense, as long as you state your definition precisely and stick to it. But the use of "free" and "freedom" in the GNU literature is far from neutral. Much of that literature is in effect a pamphlet demanding "freedom" for software developers. The GNU license itself reads not like a license but like a manifesto against the evils of proprietary software. These passionate speeches, based on a specialized notion of "freedom", use the universal appeal of this word, derived from centuries of mankind's struggle for freedom in the usual (political and moral) sense of the term, to defend the authors' own agenda, based on a narrow and controversial notion of freedom.
This distortion--the hijacking for private purposes of a word that holds such a sacred aura for most people--is highly unethical.
Extreme analogies are another dubious rhetorical device. One of the first comments one encounters in the GNU pages (http://www.gnu.org) is a comparison to the Soviet Union:
"All four practices [of the Software Publishers Association, to prevent theft of software] resemble those used in the former Soviet Union, where every copying machine had a guard to prevent forbidden copying, and where individuals had to copy information secretly and pass it from hand to hand as "samizdat"."
There is a comic side to such pronouncements; hearing the epitomes of capitalism --Microsoft and the like--accused of sovietism by a group that advocates collective property of all software seems bit far-fetched. In fact Bob Metcalfe, in a recent InfoWorld column, did not hesitate to write that "Richard Stallman is a communist". I do not actually think such comments are particularly useful; the best way to counter the sometimes outrageous attacks of the most extreme "freedom" advocates may be to keep a cool- headed, rational attitude, and not try to match their antics. (Dr. Stallman himself said, in response to a Byte interviewer, that he is neither a socialist nor a communist.)
It would all the same be a mistake to portray that group as slightly eccentric do-gooders. Their propaganda is a campaign of hatred against people whose only "crime" is to want to make a living out of the wares they produce. A recent encounter with Richard Stallman illustrates this attitude. Mutual friends had thought it a good idea to bring him and a commercial software developer to a dinner party in a restaurant. The software developer, curious about the idea of free software and interested in sharing ideas with a creative colleague with a different background, tried to open a friendly discussion with: "I am a commercial software developer, but I appreciate much of your work and have in fact recently changed the terms of our free software license as a result of your observations". Unfortunately, he never in the entire evening got past the "I am a commercial software developer" part, which triggered an explosion of abuse to the effect that in such a case there was not even anything to discuss, commercial software being the most horrible thing on earth and a denial of everyone's right to freedom. The rest of the evening, needless to say, was extremely painful, as no one likes friendly overtures to be met with violent rebuke. It also led the commercial software developer, who until then had been not unreceptive to the quasi-universal eulogy of free software, to a much more carefully researched assessment of the pros and cons of the movement.
It is unfair, of course, to judge an idea from the character of its proponents. But in the case at hand the connection is close, as Dr. Stallman is the living icon of the free software movement, widely admired, imitated and idolized (almost like a sect leader) by his followers; he is also listed as the author of much of the GNU literature--the only one, in fact, in the documents that I have seen. So his attitude shapes much of the free software community's perception of commercial software.
That perception is that commercial software is evil. In fact, one of the catchy GNU links is entitled "Is Microsoft really the great Satan?". The page to which it leads (http://www.gnu.org/philosophy/microsoft.html) gives the answer. In short, yes indeed, but don't just pick on Microsoft; anyone else who "denies users their rightful freedom" (i.e. sells software) is just as satanic.
5. A SKEWED MORAL PERSPECTIVE
The preceding citations indicate that free software advocates condemn commercial software vendors (meaning most of the industry) on the basis of moral absolutes. As later citations will show, they present themselves as generous benefactors of humanity. What is striking is the reduction of all software-related moral issues to one aspect, a special notion of "freedom", as if nothing else mattered. This leads to pronouncements that would be funny if they weren't also scary at times. Dr. Stallman writes at http://www.april.org/actions/rms/10111998/texte.html:
"[...] scientists used sometimes to be able to cooperate even when their countries were at war. I read that once American soldiers who landed on an island of the Pacific Ocean, during World War II, found a building with a note saying: ' To American soldiers. This building is a marine biology laboratory. We put all our samples and reports in order so that US scientists can go on with our work.' Because, for them, they were working only for humanity. Not only for Japan. They wanted their work to be useful for humanity, regardless of the outcome of the war. But today we live in a state of civil war between small groups, in every country. In which every group acts to stop the others, hinder the others, hamper the others. It's sad."
This view of ethical problems is appalling. In the absence of a reference it is not clear where the anecdote comes from; but to cite as an ideal, without so much as a qualification, one alleged act of scientific chivalry from a country whose troops conducted World War II as an series of atrocities, and to claim that the situation of today's peaceful industrialized societies is "sadly" worse (a "civil war") because some selfish people refuse to share the source of their software, shows a noxious contempt for the hierarchy of ethical values. What would a survivor of the horrendous Singapore POW camps think of Dr. Stallman's little miseries resulting (as described just a few lines down from the above extract) from computer manufacturers that
"took the X Window system [originally free software from MIT], compiled it for their system, and distributed copies as a proprietary product with exactly the same lack of freedom as with Unix."
This is the danger of single-issue proponents: they lose all sense of perspective and start thinking that their perceived "moral" problem is the only one that counts.
In one person's case this loss of perspective leads to extreme consequences. Eric Raymond, another of the leaders of the free software movement (who prefers the term "open source") uses his Web page to proselytize for gun rights. Here we move from the politically naive to the revolting. Only one quote will suffice, although readers interested in this propaganda can find heaps of it at http://www.netaxs.com/~esr/guns/gun-ethics.html and neighboring pages. The title is Ethics from the Barrel of a Gun: What Bearing Weapons Teaches About the Good Life; note the reference to ethics. It starts:
"There is nothing like having your finger on the trigger of a gun to reveal who you really are. Life or death in one twitch --- ultimate decision, with the ultimate price for carelessness or bad choices.
It is a kind of acid test, an initiation, to know that there is lethal force in your hand and all the complexities and ambiguities of moral choice have fined down to a single action: fire or not?"
Such balderdash would be easy to dismiss if it were not highly visible from the author's Open Source pages (I came across it when looking for Mr. Raymond's touted essay "The Cathedral and the Bazaar") and didn't have any ethical implications.
This text will be hard to understand for people who don't live in the US. Perhaps the greatest tragedy of that country is that a minority of gun nuts (a term that Mr. Raymond actually applies to himself), supported by an all-powerful lobby, the National Rifle Association, has managed to terrorize Congress into maintaining loose gun laws with no equivalent in the rest of the civilized world. The official pretext--the Constitution's Second Amendment, devised in the late 18th century to establish a popular, Swiss-style militia guarding against the return of oppressive power--is preposterous for many obvious reasons: there is no Swiss-style militia in the US (guns are used for pleasure and, of course, for killing ordinary people); the US political system has a remarkable combination of checks and balances making the imposition of a dictatorship rather unlikely; the historical exceptions to this observation--such as McCarthyism and institutionalized racial discrimination--were not, if memory serves us well, met by armed resistance from an outraged citizenry; and a real aspiring dictator would have means of oppression, such as missiles, tanks and perhaps nuclear weapons, against which even the sophisticated guns on which Mr. Raymond roves ecstatic in his Web pages would be rather powerless.
But the result of such lunatic ravings, supported by the indefatigable NRA, are clear to everyone: a murder rate higher than in any other first-world country, an endless race between police and criminals for ever more lethal weapons, free availability of murderous devices in the infamous and barely regulated "gun shows" of the Western US, 12-year-olds trained in weapons since kindergarten who go on shooting rampages with guns borrowed from the family cupboard. Month after month, the reports of death and devastation, most avoidable with the common-sense rules in place in other countries, hit the headlines. To which the gun nuts respond with the old saw: "Guns don't kill people, people do". (Sure. Sure. Try murdering fifteen of your co-students and five of your teachers in a few minutes with a kitchen knife.)
This advocacy of practices that directly lead to assassination and other tragedies is an example of immoral behavior. People who are callous about human life cannot and should not be hailed as moral examples, whatever the alleged generosity of their views on the far less momentous issue of software distribution. Is it right, one might ask, to make a connection between Mr. Raymond, who is only one person, and the rest of the free software community? The answer is yes, for at least three reasons:
- His propaganda is prominent in his Web pages, one of the most frequently
accessed sources of information about the free software movement, to which
the media's references draw countless unsuspecting visitors.
- Eric Raymond has been one of the most visible proponents of the Open Source movement, widely interviewed and cited. He is a public person; his views, unless disavowed strongly and publicly, inevitably commit the rest of the movement.
- They have not indeed, as far as I know, been strongly and publicly disavowed by the rest of the movement. Richard Stallman, whose differences and competition with Eric Raymond are widely known, has not--again to my knowledge--dissociated himself from the gun propaganda.
It is high time for Richard Stallman and Linus Torvalds to state publicly that they do not endorse the views of the gun lunatics, and that their cherished notion of freedom has nothing to do with the freedom to kill children and other innocents. That this has not happened is a sign of the distortion of the moral values of the free software movement. Given the choice between
- a society where all software would be proprietary, and civilized measures would be in place preventing (for example) a disturbed white supremacist from buying a police gun without any background check at a gunshow, then going to a Jewish day camp in Los Angeles to shoot at everyone in sight (a tragedy that happened just a few weeks ago);
- a society where all software would be free and Mr. Raymond's views on gun "freedom" were fully realized, any ethically-conscious person would choose the former. The free software advocates must recognize that some issues are more important than who owns software, and that human life is one of them.
6. THE QUALITY CONCERN
One issue that is less important than human life (except that it may ultimately affect human lives) but has obvious ethical resonances is the quality of the software a programmer produces.
Isn't it relevant, for an ethics-preoccupied software engineer, to worry about this aspect? Is it more or less important than software ownership?
In a way, it is unfair to take the free software advocates to task on this issue because part of the success of offerings such as Linux and GCC has been their reputation for quality, and the often repeated comment that, if you find a bug in one of these products, you will have a much easier time reporting it and getting it fixed than if you try calling Sun or Microsoft customer support about a problem with their proprietary, binary-only products. With open source you benefit--so the explanation goes--from the collective ability of many people to dive into the code and find out what's wrong.
This reasoning is largely correct, at least for some of the major free software products. Linux and GCC are widely praised by their users. Yet not all is rosy. Like commercial software, free software is --- surprise --- of very variable quality. You find the best and the worst. ISE's own experience with free software has included both kinds. Recently, we have had more than our share of the second; we have had to cancel one major project, and reengineer a product completely, after wasting many person-months and disappointing customers, because of the deficiencies of two separate GNU products (the GCC compiler for Windows and the editor under GTK). In both cases the scenario was the same: fixes to well-known bugs being promised and promised again; everyone waiting for months and months, until it becomes clear that nothing will happen; in the end, having to write off all the affected developments. Since no one is in charge, and you didn't pay for the products, there is no one to blame.
Even in products that are good or excellent overall, the distribution of work among many people may mean a high degree of variation between components of a product. One person who doesn't share the general enthusiasm for Linux is Ken Thompson from AT&T, co-creator of the original Unix and recipient of the Turing award (the "Nobel prize" of computing). In a recent interview he couldn't contain his scorn for the quality of the Linux code:
"I've looked at the source, and there are pieces that are good and pieces that are not ... My experience and some of my friends' experience is that Linux is quite unreliable. Microsoft is really unreliable but Linux is worse." (IEEE Computer, 32, 5, May 1999, page 61.)
In a different case, the newsgroups comp.risks recently published a report of rather horrendous and elementary C errors found in a quick and simple check of the source of the FreeBSD operating system (see http://catless.ncl.ac.uk/Risks/20.18.html#subj9.1).
Even though the GNU products are often good, the licenses which accompany them are no better, in the warranties (or rather absence thereof) they offer to the user, than commercial software. A typical quote, from http://www.gnu.org/software/year2000.html:
"The Free Software Foundation does not provide warranties for its software. We can't afford to. So we can't promise that GNU software has no Year 2000 bugs, any more than we could promise you the same thing about another sort of bug."
It is indeed amusing to note, in the GNU public license, the place where the inflammatory proclamations about freedom stop and the tone becomes much more measured. That's the place where the license switches to the topic of software "warranties". At this point the discourse begins to sound much more familiar (upper case in the original, see http://www.gnu.org/copyleft/gpl.html):
"EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION."
Where have we seen this before? Oh yes--in the hated "proprietary" licenses, those which "take away your freedom and mine": no warranty of any kind; AS IS; caveat emptor.
In using such terms the GNU license is neither better nor worse than most of the rest of the industry. Very few providers of software are able, today, to warrant their software the way producers of non-software artifacts warrant their offerings. (It should be pointed out, however, in reference to the first of the quotations above, that Y2K-compliance guarantees are becoming increasingly available.)
We cannot be too harsh on GNU and consorts in this respect. But given the violence of their attacks on the rest of the software industry, and their self-positioning as freedom- defending angels, it is fair to ask: do you have your priorities right?
Here is a hypothetical question to help understand what's at stake. Assume two pieces of software with a similar goal. We could posit that this goal is to manage a surgical device or airplane controls, but let's not make things unnecessarily dramatic and simply assume a normal software application, important and useful but not necessarily life- threatening --- a text editor, a compiler, a graphics library, a Web server. Now assume that the two products differ as follows:
- Product F is free software. It comes with the standard no-warranty warranty.
- Product P is proprietary software. It costs $50 for the binary-only version. It uses the most advanced techniques of software engineering. It never crashes, or departs in any way from its (mathematically expressed) specification. The seller is, in fact, so sure of those qualities that he will commit in writing that any violation of the specification during execution will immediately lead to reimbursement of the purchase price and compensation for any damages incurred.
According to the free software literature, product F, being the only one that preserves users' "freedom", is the ethical one. The seller of product P may be a good engineer, but he is still a repugnant profiteer.
The question, which is left as an exercise for the reader, is: which one of these solutions do you consider the more ethical? Auxiliary question: does your answer change if the price of the product becomes $5000? $50,000? $5 million?
Hypothetical though they may be (an unfortunate result of the current state of the art in software engineering), these are bona fide questions. I think I know my own answers: I would consider the second solution more ethical (certainly at $50, and possibly regardless of the price, unless perhaps someone can show that it takes advantage of an undue monopoly), but I don't claim these are the only possible answers. The free software advocates, for their part, do sound like they have found the sole truth. What I mostly see is that by concentrating on one aspect of the picture they obtain a highly skewed view of ethics, which can, by itself, become unethical.
Second auxiliary question for special credit: you think the revolutionary software development technique you have just invented makes it possible to produce provably bug- free products such as P. You need $20 million dollars to productize it. Your university will be glad to pay for a postdoc for six months if you teach an extra course. The government funding agencies, after taking a year to review your application, tell you to get lost as your proposal has no commercial value. (Public funding is very much "goal-oriented" these days.) But you have found a group of investors that values your idea. Of course they expect to make a huge windfall from their investment, so they'll laugh if you suggest free software.
The question: should you go with them, or is it more ethical to turn down the proposal and devote the next five years of your life to a completely free LATEX extension for Babylonian cuneiform?
If we accept that the matter of software quality may have ethical implications, one of the tenets of the free software movement becomes rather disturbing. The free software axioms hold, as we have seen, that although charging for software is wrong it is all right to charge for services associated with the software, such as maintenance and training. The risk here is that such an attitude may lead to products with known deficiencies, giving the provider a ready-made source of juicy service contracts.
To date, there is no proof that any provider of free software has engaged in such practices, so it would be unfair to turn this worry into a criticism of the current state of the art in free software. But as a worry it is legitimate, especially at a time when ever bigger fish from the mainstream software industry clamor their newly discovered fondness and enthusiasm for the gospel of free software (proclamations which, in some cases, cannot but leave a strange after-taste). The practice of releasing products that are just good enough to convince buyers, and just bad enough to turn into service cash cows, is not unheard of, in the software industry and others. Anything to make a buck. This is not the fault of the free-software people. But their all-out focus on one single issue, "freedom" as they define it, and their refusal to attach any ethical value to another matter, quality, does nothing to help advance this critical component of the software profession's social and moral responsibility to the world around it.
7. HOLIER THAN THOU
Why do people write free software? The free software literature mostly cites one motive: an altruistic desire to help fellow human beings. Richard Stallman had this to say at the start of the GNU project:
"I'm looking for people for whom knowing they are helping humanity is as important as money." (http://www.gnu.org/gnu/initial-announcement.html.)and recently (Linux World, 1999):
"Although we do business to make a living and live, there are things that are above and beyond that. Such as making the world a better place."Wow! GNU describes its goals (http://www.gnu.org/philosophy/pragmatic.html) as "pragmatic idealism":
"Every decision a person makes stems from the person's values and goals. People can have many different goals and values: fame, profit, love, survival, fun, and freedom, are just some of the goals that a good person might have. When the goal is to help others as well as oneself, we call that idealism.
My work on free software is motivated by an idealistic goal: spreading freedom and cooperation."
The already cited Paris lecture opened up (no trace whatsoever of any pandering to the audience) with:
"I can describe the idea of free software in three words: liberty, equality, fraternity."
The reader does not have to be a cynic to start wondering, after a few too many affirmations of one's unmitigated devotion to the sole purpose of "helping humanity", what the real story is. Saints do not typically go around clamoring "I am a saint". Tartuffe, however, did. (Molire's Le Tartuffe, ou l'Imposteur is required high-school reading in France. Maybe that's why French people often have such a hard time taking proclamations of absolute abnegation seriously.)
Questioning the motives of self-proclaimed benefactors of humanity is only normal, if only because they themselves not only question the motives of those whom they views as enemies of humanity (the commercial developers) but openly present them as liars:
"The economic argument [for charging for software] goes like this: 'I want to get rich' (usually described inaccurately as 'making a living')" (http://www.gnu.org/philosophy/shouldbefree.html).
This slandering of commercial software developers is outrageous. Distorting people's claims that they want to "make a living" as a lie covering their unabated greed is an under-the-belt rhetorical device. It is all the more revolting, from an ethical standpoint, in view of the reality that many developers of "free" software of the taxpayer-funded category have the comfort of a monthly salary from an institution that can not legally go bankrupt, such as a State university. This provides a convenient vantage point for bashing commercial software developers, who have often put everything at risk to pursue their ideal. Many of them fail miserably, gaining only ruin and a divorce; some manage to "make a living"; a few will become rich, as they are indeed entitled to if their talent, effort, business sense and luck get them there. The functionaries have no right to deny them their right to "make a living" from honest work.
Here it should be pointed out that besides money a common motivating force for software entrepreneurs is their rejection by traditional institutions, including those who support free software. Many a successful industry figure has told the story of how he or she went to management with a great idea, only to be rebuked, and was so outraged by the reaction as to go away, implement the idea as a software package, and prove the idiots wrong. The motives of such people deserve respect, not abuse.
Even if all commercial software developers became wealthy, there would be no ethical basis for picturing them as greedy liars. Wanting to get rich is not morally reprehensible. If it were, shouldn't we hate people who buy lottery tickets? We don't. (Typically the moralists reserve their scorn for the lottery organizers.) At least the entrepreneur who starts a software company, perhaps with the hope of becoming rich, takes a personal risk, far higher than the price of a lottery ticket. That doesn't automatically make him a hero (and it is indeed one of the differences between commercial and "free" software developers that the former do not, in addition to other expected benefits, demand that the world hail them as saintly benefactors of humanity). But it also doesn't make him a despicable thug. There is nothing wrong about believing enough in one's ideas--and ideals--to put one's livelihood at stake.
The character assassination performed on commercial software developers by the extremists of free software, and their failure to accept people with different views of the world can be honest and even idealistic in their own ways, has no moral basis.
It would be a natural reaction to counter at the same level, and dismiss the free software crowd as a bunch of hypocrites. That would be a mistake. One should not respond to intolerance by intolerance. (And you never know: someone might, after all, advertise his sainthood and be a saint, if an immodest one2.)
We should, as noted, question their motives; but this does not necessarily mean dismissing these motives as obvious lies. We must investigate them with an open mind, accepting that we will probably find cases of the advertised generosity --- along with other impulses, some noble, some self-serving. We must, in other words, dispassionately try to understand, beyond the self-aggrandizement of some of the free software literature, why people do write free software.
2. In the name of full disclosure, however, the reader must be warned that all comments about sainthood in this article are based on hearsay rather than on the author's personal experience or encounters.
8. REASONS FOR PRODUCING FREE SOFTWARE
People who stumble across free software for the first time are often surprised that anyone would willingly decide to give up any fees for the products they develop. But in fact it is not hard to find several reasons why, for many developers, this makes sense. All the reasons cited below occur quite commonly in practice.
According to some of the literature cited above, the sole reason is desire to do good. It is of course not the sole reason, but may be a reason. Someone sincerely wants to help the rest of the industry with software tools. There is no reason to doubt that this is often part of the free software developers' motives.
Another common motive is the realization that there is no money to be made from the development. You make your software free because you feel that you couldn't sell it anyway --- there is no market, or you can't find investors to get a company started, or you realize you wouldn't make a great businessman and are better at programming. These days, for example, few people will pay for an editor; it is not surprising that many editors are free. Netscape, to take another example, only made its browser free (in two different ways: permitting use of the binary versions at no cost, and releasing the Mozilla product as open source) when Microsoft made its own Internet Explorer available on Windows at no cost, killing the market overnight. Until then, the Netscape browser was sold for a fee.
A motive that combines some of the previous two is the attempt to correct limitations or deficiencies of existing tools. You are not completely happy with an existing product (commercial or free) and fear that its producer won't correct the problem fast enough for your needs; so you decide to go ahead and do it yourself --- either as an add-on to the existing product or as a redevelopment. You may feel, especially in the case of an add-on, that your contribution is not significant enough to convince people to buy the result.
Making a product free is also a great way to enlist the help of others. You realize that you can't do everything by yourself and realize that free, open-source development is a great way to find collaborators. One of the marvelous effects of the Internet has indeed been to enable software developers to put out announcements and obtain help from many people, often complete strangers until then, all over the world.
Another common reason is the desire to learn. You want to enter a new, promising area but don't know much about it. Because this is you first foray into that area you realize that no one would pay you for developing the product, but that's OK because much of what you expect is self-training. You realize that the best way to learn is often to do. Often this case implies the previous one as well: by developing the software in a free and open fashion you hope to get help from people who are also learning or, ideally, know more than you do.
Related to the desire to learn is increasing one's marketability. There is a great dearth of talented software engineers, but everyone who has to hire software developers knows the incredible range in programming skills --- most managers will readily admit that they see a ratio of 1 to 20 in the productivity of people with seemingly comparable backgrounds --- and how difficult it is to evaluate candidates based on anything else than their tangible record of actually producing successful software. If you want to price yourself above your peers, what's better than spending a couple of years building a great free utility, then come to a technically savvy recruiter and say "Oh, by the way, I wrote the WIMP (Wimp Isn't Microsoft Project) Microsoft-Project look-alike for Linux, which 15,000 people download every day and Caldera includes in its standard distribution". A great way to help the world, nibble away at the Great Satan of Redmond, and advance your career.
Also frequent is the desire to make money. This seems contradictory with the notion of free software, but is in fact quite compatible. At the time of writing, the stock market has just seen a successful IPO for Red Hat, a provider of Linux deliveries all based on free software. Anything Linux-based makes investors vibrate (almost as much as anything Internet-related). A number of companies, such as Cygnus (which according to the GNU pages has more than 50 employees) have built their business around distributing and servicing free software. Eric Raymond writes:
"I expect to be quite wealthy once the dust from the Linux IPOs has settled." (http://www.netaxs.com/~esr/travelrules.htm)
There is nothing wrong with this --- except when commercial developers trying to "make a living" are accused of moral perversion because what they are really supposed to want is ... to become wealthy. One can only compliment the founders of Cygnus and Red Hat: they saw in free software a great business opportunity, and banked on it. It is indeed true in some cases that you can make more money by giving away the software and charging for services. But it's an economic strategy, not an ethical matter. A business model is not a moral principle.
This list of motives is not in order of importance, but if it were we would probably have to put pretty close to the top the search for glory. People want to get famous by writing a program that everyone will use. It is indeed interesting to see that many of the advocates of free software suffer from no visible atrophy of the ego organ. An extreme case is Richard Stallman's well-known uneasiness at the widespread media attention devoted to Linux, a system that he feels (no doubt with some justification) could not have succeeded without all the groundwork of the GNU project. About a year ago, an editorial of the Linux Journal made much fun of a letter by Dr. Stallman requesting that Linux--and, as a result, the journal--be renamed to a more appropriate acronym, Lignux, acknowledging Linus Torvalds's debt to GNU. People in charge of both the operating system and the journal didn't seem to think that was such a great idea. Nowadays the authors of the GNU pages do not mention "Lignux", but repeatedly argue that the operating system should be called "GNU/Linux". We wish them luck. Like everyone else, they are entitled to recognition of their contribution. If they appear a little vainglorious at times, who would cast the first stone? Just cease slandering people whose aims are different. Some humans want to be rich more than they want to become famous; others want fame more than they want wealth. Most people, given the opportunity, would gladly be rich, and famous, and admired too. We're all humans. Just spare us the sermon on how much nobler you are.
This list of motivations is probably not complete. Its most striking feature is how close it is to what motivates the developers of proprietary software. The relative rankings may be different, but most of the categories will be present, to some extent, in both cases. This is not so surprising. Apart from a minority of saints, most people share the same basic desires, in a variable mix determined in part by personality and in part by circumstances. One of the true differences between people is tolerance, or lack thereof. Most of us can live with imperfect companions as long as we and they are tolerant of each other. Intolerant saints, real or self-proclaimed, are a dangerous proposition.
9. THE GREAT SATAN
Among the reasons for free software, one more deserves some consideration: hatred of the "evil empire"--Microsoft.
It is not hard to understand some of the reasons for the resentment of Microsoft. The company grew unbelievably quickly. Software engineers have a nagging feeling that it was partly a result of sheer luck: when IBM obtained DOS from Microsoft and hence created the modern Personal Computer industry, it didn't demand exclusivity, enabling the more forward-looking Microsoft to sell the same solution to every IBM competitor. (It is interesting to see that IBM's mistake was based on a reasoning--we don't make money out of software products, we make money from selling "iron", i.e. computers--that is not unlike the GNU/FSF argument that one should not sell software, but it's OK to sell computers, as well as services etc.) The reputation of Microsoft among developers is not helped by thge widely circulating rumor that Bill Gates--although hailed by the popular press as the genius software engineer of all times--was in fact, when he did program, rather lousy at it. The perceived arrogance of Microsoft in dealing with partners, competitors, computer vendors and customers does not help.
Anti-Microsoft feeling is also reinforced by the nature of the Microsoft tools. Not only do they deserve their reputation of crashing frequently; even when they do work, they often give computer-savvy users the impression of forcing them into an intellectual stranglehold. Instead of the Unix programmer's freedom to drive the interaction with highly versatile commands and scripts, you have to follow the exact scheme that the Redmond boys, in their wisdom, have devised for you.
For all that, it is easy to miss the incredible contributions of Microsoft--and its de facto partner, Intel--to the just as incredible progress of the computer industry. By establishing a mass market that enabled staggering price reductions, "Wintel" has made the computer revolution possible. The most fanatical advocates of Linux do not seem to realize that, without Microsoft, Intel and the resulting 200 million compatible PCs, without the $500 400-MHz systems with a complete operating system, there would be no Linux to speak of. The entire computer world, Microsoft groupies and Microsoft haters, is riding on the coattails of Microsoft.
It is easy enough to lambaste Bill Gates. It is less self-flattering for the anti-Microsoft community to understand why Microsoft has reached its unique status. There was the initial stroke of luck, of course. But there was also an in-depth understanding of the market. There was in particular a relentless effort at integration: you write a Microsoft Project plan, integrate a Microsoft Excel spreadsheet and a Microsoft Word document into it at the click of a mouse, post it on your Intranet with Microsoft Front Page for your colleagues to access with Microsoft Internet Explorer, have it automatically generate an e-mail with Microsoft Outlook whenever a deadline slips, and so on. The underlying engineering effort is gigantic, and does more to explain Microsoft's continued success than any conspiracy theory.
The other major explanation is the dismal failure of Microsoft's competitors. The torchbearer of commercial Unix, Sun Microsystems, had a once-in-a-lifetime opening circa 1989. Microsoft's nascent Windows operating system was late and buggy; the Sparc architecture with SunOS and OpenWindows was an exciting mass-market proposition. Instead Sun apparently decided that the mass market was not good enough because of low margin and ferocious competition, and that it was more profitable to sell high-priced servers--replacements for IBM mainframe--to Wall Street fat cats. During all that time Bill Gates (as was later reported) was scared of what Unix could do to his business; his competitors never seized the opportunity.
When they woke up, it was too late: Microsoft owned the desktop, meaning almost everything, including people's minds. It even had become skillful enough to recover from its initial misreading of the Internet revolution. Its competitors had lost. Their feeble attempts to reinvent themselves with other technologies (such as the Java programming language for Sun, a vain attempt to challenge the Microsoft power) will not reverse that historic defeat.
In achieving this result, Microsoft, however unpopular some of its tactics may be, relied for the most part on its business acumen and its technical dedication. The losers have no one to blame but the skills of their competitor, and their own myopia.
This applies in part to the free software community. The initial 1984 announcement of the GNU project (http://www.gnu.org/gnu/initial-announcement.html) stated that:
"Starting this Thanksgiving I am going to write a complete Unix-compatible software system called GNU (for Gnu's Not Unix), and give it away free(1) to everyone who can use it. Contributions of time, money, programs and equipment are greatly needed.
To begin with, GNU will be a kernel plus all the utilities needed to write and run C programs: editor, shell, C compiler, linker, assembler, and a few other things. After this we will add a text formatter, a YACC, an Empire game, a spreadsheet, and hundreds of other things. We hope to supply, eventually, everything useful that normally comes with a Unix system, and anything else useful, including on- line and hardcopy documentation."
The GNU project has produced many good tools, for which the software community must be grateful; but it has not produced, fifteen years later, the announced system. The closest thing to the kernel is Linux, which came from outside the project.
Microsoft envy is very palpable in the current excitement around Linux. On the floor of a conference such as Linux World (now held twice a year in the US, with equivalents in many other countries) one can hear the constant Microsoft bashing. The jokes can be funny up to a point, but soon one starts to realize that the problem most people have is not Microsoft. It's that they are not Microsoft. The greed and envy are transpiring from everywhere.
A famous French comic strip and animated cartoon, which has been running countless episodes, shows the Grand Vizir (who goes by the name Iznogoud) at the Caliph's court, constantly plotting to get rid of his debonair master, and constantly failing in his schemes, every one more clever than the others. His motto, repeated in every tone from envy to complaint to exasperation, is "I want to be the Caliph instead of the Caliph!".
Iznogoud is, pathetically, human. Most of us, given a choice, would really like to be the Caliph instead of the Caliph. What motivates the wheelers and dealers at Linux world may be, for a part, a desire to help their fellow computer users. But, mostly, they want to be the Caliph instead of the Caliph. They might just as well admit it in as many words.
10. THE ETHICS OF ACKNOWLEDGMENT
A point of ethics that arises in the design of free software has not yet been raised in this discussion (or in any other text that I have read).
Many free-software products are "copycat" versions of commercial software. The GNU project indeed made its mark by providing quality replacements for dozen of Unix utilities, from awk and yacc to troff and cc. (It is ironic that, even though the goal of the project, quoted above, was to replace Unix with a free operating system, most of its results were for a long time used mostly on commercial Unix systems.)
Such tools usually do not raise a legal issue: it is considered acceptable to start from a tool's specification and reimplement an equivalent version, as long as you don't use any of the original code.
But the ethical picture is not as clear, especially given the uncompromising nature of the attacks on commercial software developers, as abundantly cited earlier. By reimplementing someone's design, you are not stealing his code, but you are taking his ideas. Using other people's ideas is not unethical by itself; it is in fact an integral part of the scientific process. But you owe some respect to the originators of the ideas you are borrowing, and you owe them acknowledgment.
Such acknowledgements are seldom to be found. Take the book Gimp: the GNU Image Manipulation Program by Michael J. Hammel, published in 1999 by SSC (publishers of Linux Journal). It includes a 4-page acknowledgment section, stating at the beginning that
"Of course, there are the original authors of the GIMP, Spencer Kimball and Peter Mattis. At the time of the GIMP's original release, they were undergraduate students at the University of California at Berkeley. [...] The story goes something like this: Spencer and Peter [decided] that a Photoshop- like tool for UNIX systems would be a fun thing to do."
GIMP is indeed a free-software "copycat" of Adobe's Photoshop commercial product. The striking observation here is that nowhere do the four pages of acknowledgments include any suggestion that the people who designed Photoshop at Adobe might, possibly, deserve a modicum of recognition too.
This absence, unfortunately typical, represents a grave ethical lapse. That the Adobe developers must have been paid for the efforts does not relieve the need to acknowledge their contribution. They invented a brilliant design and worked hard to implement it. The authors of GIMP were undoubtedly generous to the rest of the world by imitating that invention and making the result available to others; but they could not have done it without the anterior contribution of the Photoshop team.
In software, much of the hard work and creativity goes into specifying a system. You also have to implement it, but that's not necessarily the place where you will show your brilliance. Seeing your specification, and having access to your system, a good developer can often reimplement it at reasonable effort. Doing something that has already been done by someone else--like Linux after Unix--is an order of magnitude easier, if only because there is an existence proof: the reimplementer knows it can be done.
It is both a boon and a bane that the interface of a product to the rest of the world, often the most difficult part of the work, is also the hardest to protect (since you cannot let customers use the product without telling them how to use it!). It's a boon for users, competitors, and free-software advocates; it's a bane if you work hard only to see a more powerful competitor prosper on the strength of your ideas. (The first spreadsheet program, VisiCalc, was an immediate hit, leading to great commercial success not for its inventor but for the next implementer, Lotus.)
It is legal, and it may be ethical, to start from someone else's design and reimplement it. It is profoundly unethical not to acknowledge it, whether the originator dealt in free or in commercial software.
This is not just a matter of being fair and courteous to the people who made possible your own job and hence your own little claims to fame and a great career. It is also a matter of acknowledging the tremendous contributions of commercial software. Commercial products not only save lives; more prosaically, they established the historical basis without which there wouldn't have been any free software. GNU, as we have seen, was unable by itself to build an operating system; the paragon of evil, Microsoft, provided the economic basis that made Linux possible. There would also not have been a GNU (and a GCC, a Linux, a Bison and so on) if there hadn't been a Unix in the first place, arising from the stroke of genius of two AT&T Bell laboratories researchers--Thompson and Ritchie--working in a strictly proprietary context.
Thompson and Ritchie, by the way, derived many of their ideas from Multics, a sixties' research project from MIT. The cycle is complete: commercial software builds on public software, and free software builds on commercial software. Sometimes you want one kind, sometimes the other. Both can be bad; both can be admirable. Both result from the hard work of skilled, hard-working, dedicated, often-idealistic software enthusiasts. It's the same people on both sides of the fence: the passionate "hackers" who think software, dream algorithms, eat data structures, drink objects, and long through the night will continue discussing the pros and cons of generating code for a machine with a clever instruction prefetch scheme.
Mongering hatred of the members of one of these two complementary communities is unproductive and unethical.
11. A COURSE OF ACTION
What should be done? I will conclude with a suggested agenda for everyone, whether a commercial software developer or merely a computer user.
- Recognize the major contributions of the free software community, from Linux and GCC to TEX, LATEX and Ghostscript.
- Accept that both commercial and free software have a role to play, and that neither will ever go away.
- Be respectful of the authors of good free software.
- Try to convince them to apply the reciprocal goodwill (in some of the cases cited this may be hard, but one should try).
- Refuse and refute the moral defamation of commercial software developers. If you are a software developer, be proud of your profession.
- Call the extremists' bluff by questioning their moral premises. Re-establish ethical priorities.
- Refuse the distortion of moral values and the use of free software as a
pulpit from which to spread ideologies of violence.
- Demand (in the spirit of faithful advertising) that the economic origin of "free" software be clearly stated, and that the products be classified as one of "donated", "taxpayer-funded" and the other categories described in this article.
- For Microsoft, whose unique position in the community creates unique responsibilities: promote a more open attitude towards the rest of the world; open up; be less mean. You can afford to be.
- For everyone: focus on quality. Work with every competent person--free or commercial software developers--to address the increasingly critical, and increasingly ethical, issue of software quality.
- Strive to combine the best of what the two communities have to offer.
Copyright Bertrand Meyer, 1999