To shape a technology: freedom to develop ----------------------------------------- Biographical information: Robert J. Chassell was a founding Director and Treasurer of the Free Software Foundation, Inc., which restarted the movement towards free software and open sources in 1985. The GNU/Linux operating system and associated applications are the outcome of these efforts by the Foundation. Chassell writes and edits. He is the author of "Programming in Emacs Lisp: An Introduction". He graduated from Cambridge University, in England. He flies his own airplane, and has an abiding interest in social and economic history. ================================ To shape a technology: freedom to develop by Robert J. Chassell <> My presentation today is about the way we shape a technology to create circumstances in which countries and people can develop a better society. <<Goals: To shape a technology>> I shall take the technology of software, and talk about the way we have shaped that technology to create a world in which software does what you want, where software is reliable, and secure; a world in which you have a choice of vendors in a competitive, free market; a world in which you have both the legal and the practical right to start a business; a world that rewards the law abiding, not law breakers; a world in which you are permitted to collaborate and encouraged to share. <<Plan for talk>> What I shall do first is explain open source, free software. I will briefly describe the history of free software <<Plan for talk ...>> Then I will describe the key freedoms, to copy, study, modify, and redistribute, which not only shape the technology, but also serve as criteria for evaluating licenses and regulations. Next, I will explore several metaphors, which we use to gain understanding. We call the Internet a `highway', a `market', or `library'. These metaphors link older and more familiar technologies with the newer and less familiar technology. I will apply lessons learned from the older technologies to the new technology. We will find that freedom brings, and that freedom provides a practical way forward. <<What is Open Source, Freely Redistributable Software?>> What is open source, freely redistributable software? Free software is software to which you have the legal right to copy, study, modify, and redistribute. You have the freedom to use the software as you wish. <<Definition: what is software?>> When I speak of software, I am speaking both about the programs that run the computer, that is to say, the operating system, and about applications, such as electronic mail and other communications, Web site creation, spreadsheets, electronic commerce, writing tools, sending and receiving FAXes, engineering, image manipulation, and networking. <<How to shape a technology? Shape its legal and institutional framework>> How to shape a technology? Shape its legal and institutional framework The technology is software. The shaping has to do with copyright licensing terms. <<How is software make free?>> Freedom requires a legal and institutional framework. Software freedom is based on a special copyright license, <<The GNU General Public License>> the GNU General Public License (GPL). This license gives you more rights than most licenses. In essense, it forbids you to forbid; you may do everything else. Your and others rights are reciprocal; this encourages collaboration. The license protects programmers from having their work stolen from them and it protects users from being over charged for shoddy work. <<The key freedoms>> The key freedoms are to copy, study, modify, and redistribute. But first, while talking about freedom, let me clear up a verbal issue that sometimes confuses English speakers. <<`Free' has two meanings in English>> The English word `free' has several meanings. The low price of free software leads some English speakers to think that the word `free' in the phrase `free software' means they can obtain it without cost. This is not the definition, which is about freedom, but it is an easy misunderstanding. As a Mexican friend of mine -- and leader, by the way, of a major free software project -- once said to me, English is broken; it does not distinguish between `free beer' and `free speech'. Spanish, on the other hand, distinguishes between `gratis' and `libre'. When you speak of `free beer', you mean beer that is gratis; but when you speak of `free speech' you mean freedom. Free software is `libre' software. <<Open Source>> Incidentally, Eric Raymond and Bruce Perens invented the phrase `open source' a few years ago as a synonym `free software'. They wanted to work around the dislike many companies have of the word `free'. The phrase is popular; Eric and Bruce succeeded in their purpose. However, I (and now, Bruce also) prefer the term `free software' since it better conveys the goal of freedom; the proposition that every man and woman, even a person who lives in a third world country, has the right to do first rate work, and must not be forbidden from doing so. <<Sales in a free market>> The freedoms that define free software mean that it is sold in a competitive, free market. Because competition in a competitive market forces down the price of free software, no one enters the software industry to sell software as such. Instead, and this is often not understood, a business enters the industry to make money by selling solutions that customers wish to buy, as companies like Red Hat or IBM are now doing. <<Originally, all software was free>> Now let me talk briefly about history. Originally, all software was free. That is to say, programmers had the legal right to copy, study, modify, and redistribute it. Indeed, in the beginning, you could not copyright a computer program and you could not patent any of its mathematics. Trade secrecy was not onerous. Beginning in the 1970s and early 1980s, it became legal in the United States for companies to copyright computer programs, and legal for them to patent mathematical procedures. Software vendors stopped supplying source code. <<Creating free software -- start GNU Project>> In the early and mid 1980s, these hindrances inspired Richard Stallman and others (including me) to start GNU, a project to create an open source, freely redistributable operating system and associated applications. In the early 1990s, the main parts of the GNU Project were complete. We had written most of the necessary software. However, work on a a key piece was delayed. FSF was developing a highly advanced operating system kernel. This is the software that schedules operations for the central process unit and does other important jobs. Had this been a restricted-distribution project, the whole project would have failed, as so many have done, even though more than 7/8ths was completed, tested, and in use in other systems. But this was a free software project, and Linus Torvalds, a young Finn, was able, legally and practically, to write his own, less advanced kernel. Linus called this kernel Linux, and adopted the GNU programs that were already written, the GNU environment. He also adopted the GNU General Public License, which made his contribution freely redistributable. The combination of the GNU environment and the Linux kernel led to a usable operating system and set of applications called GNU/Linux, a name that is often shortened simply to Linux. In the past couple of years, GNU/Linux has become widely known. We are here today because of the success of GNU/Linux. <<The key freedoms: to copy, study, modify, and redistribute>> As I mentioned earlier, the key freedoms are your and others' right to copy, study, modify, and redistribute software. Let me go through this list of rights: copy, study, modify, and redistribute. These are the criteria you can apply to evaluate laws and institutions related to software. Moreover, you do not have to be a programmer or a lawyer to understand how these rights shape the technology of computers! <<Copy>> First, the right to copy. Not many people own a factory that would enable them to copy a car. Indeed, to copy a car is so difficult that we use a different word, we speak of `manufacturing' a car. And there are not many car manufacturers in the world. Not many people own or have ready access to a car factory. But everyone with a computer owns a software factory, a device for manufacturing software, that is to say, for making new copies. Because copying software is so easy, we do not use the word `manufacturing'; we usually do not even think of it as a kind of manufacturing, but it is. The right to copy software is the right to use your own property, your own means of production. Millions of people, a few percent of the world's population, own this means of production. <<Study>> Second, the right to study. This right is of little direct interest to people who are not programmers. It is like the right of a lawyer to read legal text books. Unless you are a lawyer, you probably wish to avoid such books. However, this right to study has several implications, both for those who program and for everyone else. The right to study means that people in places like Mexico, or India, or Zimbabwe can study the same code as people in Japan or the United States. It means that these people are not kept from learning how others succeeded. Bear in mind that many programmers work under restrictions that forbid them from seeing others' code. Rather than sit on the shoulders of those who went before, which is the best way to see ahead and to advance, they are thrown into the mud. The right to study is the right to look ahead, and to advance. Moreover, the right to study means that the software itself must be made available in a manner that humans can read. Software comes in two forms, one readable only by computers and the other readable by people. The form that a computer can read is what the computer runs. This form is called a binary or executable. The form that a human can read is called source code. It is what a human programmer creates, and is translated by another computer program into the binary or executable form. <<Modify>> The next right, the right too modify, is the right to fix a problem or enhance a program. For most people, this means your right or your organization's right to hire someone to do the job for you, in much the same way you hire an auto mechanic to fix your car or a carpenter to extend your home. Modification is helpful. Application developers cannot think of all the ways others will use their software. Developers cannot foresee the new burdens that will be put on their code. They cannot anticipate all the local conditions, whether someone in Malaysia will use a program first written in Finland. <<Redistribute>> Finally, of these legal rights, comes the right to redistribute. This means that you, who own a computer, a software factory, have the right to make copies of a program and redistribute it. You can charge for these copies, or give them away. Others may do the same. Of course, several existing, large software manufacturers want to forbid you from using your own property. They cannot win in a free market, so they attack in other ways. In the United States, for example, we see newly proposed laws to take away your freedom. The right to redistribute, so long as it is defended and upheld, means that software is sold in a competitive, free market. This means you can get what you want, at a fair market price. <<Why write software?>> Incidentally, people sometimes ask me why programmers write software that is free. They do so for four four main reasons: first, because they are hired to solve a problem, just as a lawyer is hired to draw up a contract. Second, as part of a project. Third, because it enhances their reputation. And fourth, because they want to. Only 10 per cent, some say only five per cent of all software is written for sale; the vast majority is written for embedded systems, as part of a project. As for the software that people use in offices: many applications are available as free software. However, some important applications are missing or not complete. Accounting is one area. But there are projects out there: I expect the empty spaces will be filled in within a few years, unless people are forbidden to work. However, there still are opportunities to enter into major new fields, as the Eazel people are doing with their contribution to the GNOME desktop. <<Metaphors link new to old>> In discussing technology, we can use metaphors to link older and more familiar technologies with a newer and less familiar technology. <<Metaphor: `Information Highway'>> In the US, the most common metaphor for explaining the Internet is the phrase `Information Highway'. The metaphor takes people's knowledge of highways and invites them to apply that knowledge to a new and for most people unknown artifact, the Internet. What does this metaphor tell people? First, it tells people that the Internet is outside your home or office. It is not inside. Partly, this is a useful analog, since you do need to gain access to the Internet, through a telephone, cable, or other communications device. Similarly, if you own a house, you need to build a driveway from your house to the road. On the other hand, the metaphor does not tell you that you can bring remote computers into your office. It did not warn me that that when I was in the Harz Mountains in Germany, I could get confused with whether I was using a machine across the Atlantic in the US, or one a few hundred kilometers away. Nor does the metaphor tell you that you can create a secure local network that stretches across nations and oceans. This ability is important for businesses trying to grow. Also, while the metaphor correctly tells you that Internet connections may be slow intrinsically, like a secondary road, or suffer traffic jams during rush hour, it misleadingly suggests that the system takes up a great deal of `space' that could be used for other things, such as parks within a city. It suggests that the space in which information resides is limited in the same way as space within the confines of a city. The `Internet as Highway' metaphor does not lead people to think of the space required by information in the same way as the Dutch think of The Netherlands, as a land that is built. The metaphor hides useful features. <<Metaphor: `Electronic Shopping Mall'>> A second metaphor is `Electronic Shopping Mall'. This tells you that the purpose of the Internet is to provide a place to buy things, and it also tells you how to fund the market place. The metaphor suggests that the market will need governmental regulation and freedom. It suggests also that there will be great opportunities for theft, corrupted regulators, sweat-heart deals, and cozy arrangements. <<Metaphor: `Great Library'>> A third metaphor is that the Internet is a `Great Library'. You can search and find information. Indeed, I find that people are often more likely to use the Internet as a reference library than they are a real library! The `Internet as Library' metaphor tells us that many people can re-see the same information, just as many patrons can borrow the same book. This is important for those of you who concern yourself with budgets. Moreover, the metaphor tells you to expect a vast range of queries; that while most inquiries will focus on the same small list of topics, others, a huge number of them, will focus on subjects you never considered. This has critical development, business, and political ramifications. Rather obviously, in certain places, the powers that be do not want people to learn about logging. Most importantly, aside from the pleasure a library gives, a great library enables people to learn from, and possibly avoid, the mistakes of others. Lessons learned: you do not have to repeat others failures; you can perhaps succeed! <<Metaphors tell us about the Internet>> These metaphors, limited and troublesome as they are, tell us about the Internet. The metaphor of the `Information Highway' tells us about roads with potholes and weak bridges. We want our electronic networks to be reliable. Highways attract highwaymen, thieves. We want our electronic communications to be secure. Highways cost money. We want our electronic communications to be efficient and use resources well. As a practical matter, freedom brings you each of these features: reliability, security, and efficiency. <<Metaphors tell us ...>> The metaphor of the `Electronic Shopping Mall' tells us about burglary. It also tells us about the importance of trust in commercial transactions, that our money must be good. It tells us about issues of privacy, and the opportunities for monopoly. Freedom brings security, it brings trusted ways of dealing with one another, it brings the possibility of privacy, and it brings the makings of a competitive free market. <<Library metaphors tell us ...>> The metaphor of the `Library' tells us to expect a small set of `most visited' sites, and a large set of seldom visited sites. It tells us that people will want to learn about the oddest lessons. They want the empowerment that comes from knowing. The metaphor also tells us that private funding may be too limited to generate the full range of social and economic benefits that libraries can bring. <<Metaphors teach lessons learned from other technologies>> In essence, these metaphors lead us to the lessons that are learned from other technologies. The metaphors tell us what we want. Freedom in software, the right to copy, study, modify, and redistribute, brings you the results. They flow from technology, as shaped by the appropriate free license. I will discuss each of these: reliability and efficiency. Security and trust. Privacy. Empowerment. <<Freedom brings ... reliability>> I do not have much experience with systems that crash, excepting when hardware fails, or I am testing experimental software, or when my sister's husband is working on the electricity upstairs and turns off all the electricity. Programs are complex entitities. They have thousands or millions of components. Because the components themselves are mathematical objects, that is to say, numbers and symbols, the components will not and cannot break, any more than the number 3 can break. But the components can be combined wrongly, or you can insert the wrong components, or leave them out. Such bugs cause havoc. An advantage of free software is that lots of people -- three, four, ten, sometimes more, sometimes hundreds -- look at a piece of code. And as the somewhat awkward saying goes Many eyes make all bugs shallow. That is to say, one of the many people looking at the code will notice the problem. And it will get fixed. Everyone wants and is rewarded for good, working code. The user does not want trouble; the programmer does not want a shameful reputation. He wants a good reputation. In contrast, a proprietary company that sells updates will have a financial incentive to leave at least some bugs in its code. This is so its customers will have an incentive to buy the upgrade. I find it odd that anyone would purchase overpriced, buggy code, but they do. They either do not know about alternatives or they see what they are doing as less difficult than switching. <<Freedom brings ... efficiency>> A notable feature of free software is that many applications run well on older, less capable machines. For example, a couple of months ago I ran a window manager, graphical Web browser, and an image manipulation program on my sister's old 486 machine. These worked fine. Text editors, electronic mail, and spreadsheets require even fewer resources. This frugality means that people can use older equipment that has been tossed out by first world companies. Such equipment is inexpensive and often donated. The computers need to be transported. Sometimes you need to start a local project to refurbish the hardware and load it with inexpensive, customized, free software. These machines cost the end user less than new machines. At the same time, manufacturers are building modern, low end computers that do as much as the older ones, and are not too expensive. There is no need to acquire expensive hardware to run your software. Moreover, free software brings with it frugal standards. You don't have to, as some people here in the Bank have done, waste your clients' budgets by sending them overly bloated email. A while back I received a message about development that took up more than four and a half times the resources needed to convey the information. Next time you budget for a project, consider paying four and a half times its cost. Then consider whether you would fund it. Next time you pay at a restaurant, take out four and a half times the money... For me the resource use was not an issue because I don't pay by the minute for telecommunications, as many do. But I know that my correspondents around the world prefer that I take care in my communications that I do not waste their money or that of their supporting institutions. <<Freedom brings ... security>> Your work should be secure. Your computer should avoid what you do not want. Just recently, for example, a large number of people who used proprietary software from Microsoft were hurt by a virus called the `I Love You' virus or `Love Bug'. (Have any of you heard of this virus?) The vendor had created a system that is foolishly vulnerable. You can, of course, make free software equally vulnerable, just as you can open the door to any house or business and invite thieves in. But none of the free software distributions that I know are so vulnerable. This is because people want to avoid harm and are able to insist that their vendors protect them. You should have confidence in your privacy. Of course, the free software producers don't always succeed, but on the whole, they have done well. <<Freedom brings ... choice of vendors>> Freedom means that you, as a customer, have a choice among those who would provide you with software and associated services. You are not in a `take it or leave it' situation. You can choose among your vendors. Perhaps paradoxically, this choice is good for vendors also. Yes, it is easier for a customer to leave. But this also means that customers are not frightened of working with a small business that they like, but figure may vanish in five or ten years; they can move without trouble. This contrasts with comments I have have heard, where a customer decides to avoid a business because moving from it would be expensive, and the customer fears that the business will vanish in ten years. Also, if customers can readily leave, employees know that they come to the business because the customers like the solutions the business sells. Employees like this, because it tells them they are doing a good job. Owners sometimes like this, too, since they too want to know they are living morally. <<Freedom brings ... low barriers to entry>> Freedom means that you, as a businessman, have the legal right to start a business. You are not hindered by overly expensive licenses. You are not forbidden. Likewise, as a customer, you may use the code. Freedom means that businesses are rewarded, with sales and profits, for satisfying customers legally, rather than rewarded by overcharging and hurting customers, which is illegal, at least in the US. <<Legal right to start a business>> A quick digression here: restricted software often means you are forbidden to start a business. Miguel de Icaza, who started a major international project in Mexico, could never has started with restricted software. He was forbidden to use it. Likewise, I know of a project in Malaysia that depends on free software. Since free software is sold in a competitive market, its price is low. This means no one sells software as such. Instead, they sell services, as a lawyer does -- a lawyer works with freely redistributable information, or they sell hardware, as, for example, IBM does. Success depends on satisfying your customers. This makes both your employees and your customers more happy. <<Policing>> The alternative is policing, which is to say, making sure thqt sotware is not used or copied illegally. Generally speaking, the word `policing' is not used. Instead you hear of a `License Compliance' or other such phrase. A while back, the company that supplies me with electricity hired `License Compliance Manager' to make sure that engineers did not take their work home, since their work was associated with software that was not supposed to go out of the building. Policing is expensive and unpleasant. <<Sharing>> Moreover, free software permits legal sharing. This is an ethical issue. Do you want to encourage sharing? Should schools teach kids to be selfish, as required by the laws for restricted software? <<Good governance>> As a practical matter, kids want to share. They want to help their friends. And as a practical and moral matter, everone wants others to be law abiding, even if they themselves are not. So a government should arrange that being law abiding is best, for legal, moral, and practical reasons. <<Freedom brings ... sharing>> Let me return to freedom: Freedom brings the freedom to share. You have the legal right to help others. You have the legal right to collaborate. You can teach your children to share the software they have, legally. <<Freedom brings ... Empowerment>> People who use binary-only software packages are forbidden to study them, learn from them, modify, or customize them. They gain no power from the software, except in so far as the package itself solves a problem. Free software provides more than a solution; it provides the means for people to learn and become as good as or better than the programmers who wrote the software. It empowers people who previously were kept out of the circle. <<Freedom brings ... does what you want>> First and formost, software freedom create a world in which software does what you want. If you don't find an application that does what you want, you may write your own code, or hire someone to do so. You have the legal right, and with the source code, the practical right, to adapt other code to what you want -- this is often more efficient than writing from scratch. Or, if you don't want to spend the money and resources, you can look around; often, you will find that someone else has faced nearly the same problem as you, and you can use that person's work. <<Freedom does not bring ... accounting>> But freedom does not bring everthing on its own. Sometimes you cannot find a program that does what you want. In particular, we need double entry booking software, for accounting. There is free software for managing personal finances, like Quiken, but none like QuikBooks, for a small business, at least, none that I know of. The reason is simple: most programmers find accounting dull. People are working on the software, but it is moving slowly. <<Freedom does not bring ... automatic action>> Free software can be used in the third world as in the first, but we often do not see it used where it could be.n There are successes: inexpensive email in East Timor, a hospital using a free medical information management in Guatamala, Miguel de Icaza starting a major international project from Mexico. But often, you see people using tools that they are forbidden to study, learn from, modify, or customize. These packages, as I said earlier, solve one problem, but the user gains no other power from the software. This is where education and action are needed. <<Projects?>> I think immediately of Indonesia, where 120,000 telephone shops may convert themselves to Internet shops. I think of India, where railways are thinking of using their spare telecommunications cabling for Internet communications. Why not use free software for everything, not merely for servers or backend email transfer? I wonder about Argentina, where the government is talking about another million personal computers. You here know more of these projects than I: but each of these are projects which provide opportunity. <<Opportunity depend on the legal rights to:>> Your opportunities depend on your legal right to copy, study, modify, and redistribute software under a free license. <<Freedom is Key>> Freedom is key Freedom leads to: collaboration lower prices reliability efficiency security fewer barriers to entry fewer barriers to use more opportunities ###