And to coordinate this panel, we have the presence of the PROCERGS president, Marcos Mazzoni who, after this moment, will be speaking. So when do I start? I will introduce you, then you will speak. Well, we prepared here an introduction and as I do the introduction he'll sleep a bit. Evidently we don't need to do all this presentation for you, but 15 years ago, in 1984, Stallman started the Free Software movement and the creation of GNU, who at some point worked for the artificial intelligence labs at the Massachusetts Institute of Technology. Stallman developed his own free tool applications, and to protect the open source projects, created the Free Software Foundation ("Free Software Foundation"). One of the goals of the project was to develop a whole operating system, combined, complete and autonomous, under a free and open license, so that nobody would ever have to pay for software again. In 1991, Stallman received the Association for Computing Machinery's Grace Hopper award, for his development of the EMACS editor. In 1990, he received the MacArthur foundation fellowship and also received an honorary doctorate from the Royal Technology Institute in Sweden by 1996. In 1998 he receives, along with Linus, the "Electronic Frontier Foundation's pioneer award" (Electronic Frontier Foundation's pioneer award). Completely dedicated to his free software cause, Stallman has generated discussions in the community in which he participates; his insistence that the open-source term or open source software was made specifically to repress the issues related with the freedom of Free Software is just one of the many stances that he has taken that sometimes entitled him as an extremist. Regardless of his political stances, Stallman is recognized for a number of software projects. The most prominent, the GNU compiler and the EMACS editor. So, as you are evidently more interested in listening to Stallman than to me, I'll now pass the word to him. Greetings. I'm going to speak about the GNU project and the Free Software movement, about questions of how society should be organized for users of software. Most of the people who have considered such questions in the past worked for software companies, and they approached the questions in a self-serving way. They asked, "What rules can we impose on the users of software to make them give us a lot of money?" I had the good fortune in the 1970's to join a community of programmers who shared software, and that led me to look at the same questions from a different approach, to ask, "What rules of society make for a good community for the users of computers?" And thus I reached completely different answers from the usual ones. But let me say a little bit about what that community was like: the community included a number of universities and sometimes even people with computer companies and within this community if you wrote a program, it was normal to share the program with everyone else. The center of this community perhaps - well, it had no official center - but in fact, in practice, the center probably was the MIT artificial intelligence lab, because there all of the software we used was to be shared. We had an entire operating system, the Incompatible Time-sharing System, or ITS for short, which was written by the hackers of the lab and other people in the community, and we would share it with anybody who wanted it. So in this community, if you walked past another hacker's terminal and saw something interesting on the screen, you'd say, "Hey, what is that?", and the other hacker would say, "That's the new foo-bar program that we just got from Stanford, it's in the foo-bar directory". So then, in that directory you'd find the executable that you could run, and you'd also find the source code, so you could study it, and see how they solved those problems. In addition, when running a program, if you found bugs or if you had ideas for more features, you could go to the source and make the changes you wanted. You could even cut out a piece of the program and put it into some other program you were writing. We called that "cannibalizing" the old program. Nowadays some professors make a big fuzz of it and call it "code re-usability", and they make obscure studies of how you can encourage code reuse, but we discovered the best way to encourage code reuse was just to make the code available to everybody so they could use it if they wanted. So, you could use the program, not just by running it, but in all the various ways it was useful. I was very happy to be participating in this kind of collaboration with the community. Obviously, it wasn't always friendly; people sometimes got angry at each other, but in general, we were all working together to advance humanity's knowledge, so we were on humanity's team; we were not against anybody. But then, we got a taste of how it was like for most computer users, who used proprietary software, and this happened when Xerox gave MIT a laser printer. Now this was a very nice gift, because it was the first time anybody outside Xerox ever had a laser printer. It was, it was actually a very high-speed, heavy-duty office copier, modified with a computer attachment - it was a first-generation laser printer. And this printer was very fast, had high resolution, and straight lines came out nice and straight, but it was unreliable: it frequently got paper jams. Now we knew what to do about that, because our old printer, which was slow, and low-resolution, and tended to make vertical lines to come out a bit wavy, was also unreliable. Well, it would frequently run out of paper or ink, or get a paper jam. Since we couldn't improve the printer itself, we added features to the software that controlled the printer to compensate for the shortcomings of the printer. We were able do this, because the old printer was controlled by a free program. And so, we added a feature that, every time it finished a print job, the system would display for that user a message saying, "Your file foo is printed". So, you had to wait because the printer was slow, but you didn't have to wait extra just for not knowing when the printing was finished. And then, I added a feature later on, where every time the printer got in trouble, the system would display a message for each user currently waiting for printing saying, "The printer is in trouble: go fix it". Now, if you got that message, you would know that probably just a few people were getting that message, so you couldn't assume somebody else would fix it, you would go to the printer. So the minute the printer got into trouble, two or three people would arrive there, at least one of them would know how to fix the problem, and would teach the others. So, the printer was still unreliable, but it was running all the time. In effect, we took the printer and we added the user to the system, treated the user as part of the system and we added end-to-end feedback, so we got reliable operation for the system as a whole, even though the printer component was still unreliable. Well, when we encountered the problems with the new printer, of course we wanted to do the same thing. But then we ran into a brick wall, because the new printer was controlled by proprietary Xerox spooling software on a proprietary Xerox computer: we did not have the source code for this program, and that meant we were helpless to make any changes at all, even though we were among the best programmers anywhere, there was nothing we could do to improve that software, and so we just had to suffer with it the way it was given to us. So, here is how it was like: you would type a command to print a file, and then you'd go back to work. A while later you would notice the time, "Oh, it's been half an hour... not long enough... probably isn't printed now", so you'd go back to work. A while later, you would notice the time again, "Oh, it's been a whole hour, maybe it's printed now". So you'd go upstairs to the printer and you'd see it had been jammed the whole time. So at that point, you would fix the jam and go back to work. A while later, you would notice the time, "Oh, it's been a half hour! Maybe it's printed now", so you'd go to the printer and you'd see it printed 200 pages of other people's stuff, which for that printer was just 3 minutes of printing, and then jammed again. And at that point you'd say, "I'm going to stand here and fix this damned printer every time it jams until my printout comes out". It was constantly frustrating, but the most frustrating thing about it was to realize that other people were deliberately inflicting this on us by refusing to let us fix the problem. Now I don't know why the people at Xerox didn't want to fix this problem. Maybe this was obsolete for them, maybe they had so many laser printers, and they only printed short files, that you'd just always go to the printer and fix the jam immediately after you printed something - I don't know. But in any case, since they had already given us this expensive printer, I couldn't say they owed it to us to fix these problem themselves. But they certainly should at least have let us do the work: that's what was so walling. Then, I found out that somebody at Carnegie Mellon University had a copy of that source code. Eventually, I went on a trip to Pittsburgh, so I went to his office and I said, "Hello, I'm from MIT. Could I have a copy of the printer source code?" He said, "I promised not to give you a copy". I was so angry I didn't know how to express it. All I could do was turn on my heel and walk out of the room without saying a word. Well, this was very bad for the MIT AI lab, because we never got that source code, we never fixed the problems, and the printer was frustrating for all the years we kept using it. But paradoxically it was very good for me, because it taught me an important lesson. Important because most programmers avoid learning it. You see, he had promised to refuse to cooperate with us at MIT if we needed his cooperation, but not just us. He also promised not to cooperate with you, and I think he also promised not to cooperate with you, and chances are he promised not to cooperate with you either. In fact, he probably promised to refuse his cooperation to just about everybody in this room, except maybe a few of you who weren't born yet in 1980, because he had promised to refuse his cooperation to just about everybody in the world at the time. You see, he had signed a non-disclosure agreement. A promise that no matter who might have a need for this source code, he would refuse to help that person. Now this was my first direct encounter with a non-disclosure agreement, although of course I'd heard about them, I was the victim. I and my whole lab were the victims, and the lesson it taught me was that non-disclosure agreements have victims, a lesson most programmers don't learn. You see, most programmers first encounter a non-disclosure agreement when they are invited to sign one, and there's always some goodie that you're going to get if you sign, some temptation. So, they make up excuses to shut up their consciences: they say, "They're never going to get this anyway, so why shouldn't I help deprive them?" They say, "This is the way it's done, who am I to try to change things?" They say, "If I don't do this, somebody else will". The usual excuses for doing something that you know is wrong, plus a few special ones. --- But when somebody asked me after that to sign a non-disclosure agreement, I remembered how angry I had been when I was the victim of one, when I and my whole lab were the victims of one, and I couldn't turn around and do the same thing to somebody else. I recognized that a non-disclosure agreement is a promise "I refuse to cooperate with 'blank'", and the blank is filled in later by circumstances, maybe with a stranger, maybe with your best friend. You don't know who you're betraying when you sign a non-disclosure agreement: It's like a blank check for betrayal. So... so I said, thank you very much for offering me this nice software package, but I can't in good conscience accept it on the terms you are asking for, so I'm going to do with out it, thank you very much. And so, I have never knowingly signed a non-disclosure agreement for generally useful technical information, the information that is the stuff of science and engineering. Now there are other kinds of information, for which the ethical issues are different. For example, if you want to talk with me about what was happening between you and your girlfriend, then - and you asked me not to tell anybody else well, I could agree to that, because that's not generally useful technical information. Well, actually, it's possible that if you told me about some marvelous new sexual technique that I might feel a moral duty to disclose it to the public, so that - 'cause maybe some people might be able to make use of it. But if you wanted to talk with me about, you know, what you were arguing about and so on, and how, what your brother in law did and so on and this - things like that, there's no benefit to the world from knowing all those things, so it's OK if I keep them a secret for you. But when we're talking about technical information, information about how to do things - the purpose of science and engineering is to develop this information for humanity. If we behold it from humanity, we're betraying the mission of the field. And this is what I decided I would not do. But shortly after that decision, changes made it much more difficult to carry out, because a series of calamities fell on my community and ended up destroying it. Perhaps the final calamity was when Digital discontinued the PDP-10 computer. That was our main computer for which all of our software was written. The Incompatible Timesharing System was developed starting in the 1960's, so of course it was written in assembler language for the PDP-10. And so when the PDP-10 was discontinued, almost all of our software was completely useless. It might as well never have been written. All of our work just sort of turned to dust and blew away, and the only way you could get a modern computer, then in 1983 or so, was to obtain a proprietary operating system for which you would have to sign a non-disclosure agreement. So the only way to continue working in my field was to do exactly what I felt was wrong. It was a moral dilemma. So what could I do? I couldn't continue doing my work as before. The obvious choice was to accept the change, to start using proprietary software, signing non-disclosure agreements and, probably MIT would have had me develop proprietary software as well, because MIT had already done that. But I thought about that and I realized that by doing that I could have fun coding, and I could make money, specially if I did it elsewhere than in MIT, but at the end of my career I'd have to look back and say, "I have spent my life building walls to divide people". I'd have to feel ashamed of all my work, and I didn't want to have to feel that way. So I looked for another alternative, and there was an obvious alternative: I could leave the computer field. Now, many programmers don't seem to notice this alternative: they tell me, "The people who hire programmers demand this, this and this, if I don't do these things, I'll starve" - literally they say "starve". Well, even in the United States, even today, there are millions of people who make a living not in the software industry. Now, I have no other special, know-worthy skills, but I'm sure I could have become a waiter - not at a fine restaurant, perhaps, but I could have been a waiter somewhere. Now, being a waiter, you're not doing anything unethical, and there's no danger of starving. But, I realized that being a waiter would be no fun for me and also, it would be wasting my skills. It would avoid abusing my skills, but it would waste them. So I decided to look for another alternative - was there someway I could use my skills, as an operating system developer, to make the situation better for people? What could an operating system developer do that would improve the situation? Well, the dilemma was caused by the fact that all the available operating systems were proprietary. If operating system developers got together and wrote a new operating system, and made it free, encouraged everyone to share it, we would give everybody a way out of the dilemma. And I was exactly the right man for the job, I was an operating system developer. So I decided that I would start developing a free operating system. I didn't know if it would be possible to finish such a big job, but at least it was something worth trying to do. The next question was, what should the design of the system be? Well, I had just seen one operating system become worthless because it was written for a specific computer, which was discontinued. I didn't want that to happen again, so this system had to be portable. --- Now, at the time, I knew of just one operating system which was portable and was actually a success on different kinds of computers, and that was UNIX. In addition, UNIX had some advanced ideas, by the standards of its time: pipes, I/O redirection, shell programming, the simple fork and exec system calls - all those things, all those things were unusual in systems then. So I decided that we should follow the design of UNIX. UNIX consists of many small components, or medium-sized components, which communicate using interfaces that were more or less documented, so following the design of UNIX means you replace each of these components one by one. In addition, I decided to make the system compatible with UNIX, upwards compatible - it's OK to add new features. The reason is, I recognized, that switching to an incompatible system is a lot of work, and many users would refuse to do it. So, if I took the best ideas from all the systems I had helped to write, or used, or read about, and put them together with my own ideas, I could have designed my dream operating system, but it would have been incompatible with all the others, and then when I offered it to the users, they would have said, "Well this is nice, but we've already written our programs to run on UNIX, and it would be too much work to change them, so we're not going to use it". Well, my goal was to create a community where there would actually be users, enjoying the benefits of liberty. I didn't just want an excuse, you know, it's not enough just to say, "Well, I offered them an opportunity and they didn't take it, so now it's their fault", that's not really solving the problem. So I recognized compatibility with UNIX would be tremendously important in practice, for the success of the system. Well, once you've decided to make the system compatible with UNIX, that means you have to have the same set of components with the same interfaces, and that means all the basic design decisions are already made. The remaining design decisions are internal to one component, and you can let whoever writes that component make those decisions: they don't have to be made at the beginning. So, that meant we were almost ready to start work, but first, I needed a name. Now, we hackers, when we write programs, we like to use funny names, or even naughty names: that's half the fun of writing the program. And, there's a hacker tradition that when you're writing a program, a new program, which is similar to some existing program, you can give the new one a name which is a recursive acronym, which says, "This one is not that one". For example, in the 60's and 70's, there were many TECO text editors, and most of them were called "this" TECO or "that" TECO or "whatever-it-is" TECO, but one clever hacker called his version TINT, for TINT Is Not TECO: the first recursive acronym. Then, in 1975, I developed the first EMACS text editor and there were many imitations of EMACS, often called "this" EMACS or "that" EMACS or "whosywhat's" EMACS, but one of them was called FINE, for FINE Is Not EMACS, and there was SINE, for SINE Is Not EMACS, and then there was EINE, for EINE Is Not EMACS, and then EINE was almost completely rewritten, and the new version was called SWEI, for SWEI Was EINE Initially. So I looked for a recursive acronym way to say that something is not UNIX, but all the obvious four-letter possibilities were no good because none of them is a word, and without a second meaning, it's not funny. Well, I tried other ways to make a recursive acronym, I tried a contraction, that way I could use three letter words, and I discovered that the word gnu, which is one of the funniest words in the English language, would serve, if I contracted it into GNU's Not UNIX. Now, I should explain why this word GNU is used for so much humor: it's because the dictionary says that the 'G' is silent. It says the word is pronounced "new", and so there are constant jokes about using G-N-U instead of N-E-W. I should also explain why the dictionary says that: this word is the name of an animal that lives in Africa. When the British colonized the area - oh, and the original name has a click sound in it - when the British colonized the area, they didn't bother learning to make this click sound. They just pronounced it "new" and they wrote it with a 'G', meaning "we're not really pronouncing this right", and then somebody else British was writing a dictionary and said, "British people pronounce it this way and spell it this way, so these are the correct ways, and anything else is wrong". Well, when it is the name of the GNU operating system, please pronounce a hard 'G'. Please pronounce it GNU. In English, at least, if you speak of the "new" operating system, you will get people very confused, because it's not - we've been working on it 16 years now, it's not so new anymore. But it still is and it always will be GNU, even if some people call it Linux by mistake. So, in January 1984, I quit my job to begin working on GNU. I had to quit my job, because MIT had already been known to take the software that staff people had developed and turn it into proprietary software products, licensed to companies. Since my goal was to give people freedom, I didn't want to let that happen, and the only way I could make sure to stop it was to quit. So, I walked into professor Winston's office and he said, "Do you still wanna quit?" - "Yes" - "Do you want to keep your key?" - "OK?!" So I began using a UNIX machine at MIT to develop GNU. This was the first time I ever used UNIX. I was not a UNIX wizard the way many other people were. Fortunately when I started seeing UNIX up-close, thwarts and all, I found the problems were not too bad, and it was still a reasonable choice to imitate UNIX. Now, at the time, I assumed that a bunch of hackers would get together, and we would write these components one by one until we had the whole system running, and then we would say to everybody, "come and get it". But that's not what happened. In September 1984, I started working on GNU EMACS, my second implementation of the EMACS text editor, and by early 1985, it was working well enough that I could use it for all my editing, which was nice because it meant I could do all my editing on UNIX - you see, I had no intention of learning to edit with VI. So, until that time, I did my editing on other machines, and saved the files through the network. Well, when it was good enough for my editing, it was good enough for other people's editing too, so people started asking me for copies, and that meant I had to work out the details of how to distribute it. Of course, I put a copy in the anonymous FTP directory. That was good for people who were on the net. Back then, even in the US, most programmers were not on the net, and they asked me for copies, so the question was, "What I should say to them?" Why is everybody passing notes?! Read those notes out loud! So the question was, what I should say to people who asked for copies but were not on the net? Well, I could have said to them, "I want to spend my time writing software for GNU, not writing tapes, so please find a friend who is on the net who is willing to download it and write it on a tape for you". --- And I'm sure that the people who really wanted copies would have got them, but I had no job - in fact I'd never had a job since I quit MIT at the beginning of the GNU project, so I was looking for someway I could make money from working on Free Software. I should explain, by the way, that it's not really true that my goal was that people shouldn't pay for software. Actually, I think there's nothing at all wrong with a programmer getting paid for software: money is a secondary issue here. This issue is about freedom and community. You see, while I'm glad to be paid for writing software, I feel it is immoral to put everybody under my control to make them pay me, so that I will not do. But I was looking for someway I could make some money in an ethical fashion, and so I announced, "Send me 150 dollars, and I will mail you a tape of EMACS". And orders began dribbling in, and by the middle of the year, they were trickling in - I was getting some eight to ten orders a month - which was actually enough money - barely enough money for me to live on. This is because I've always lived cheaply, at least by American standards. Most Americans, when they start making some money, they immediately look for some way where they can spend it all, plus more. So they start buying houses, and cars, and boats, and adventure travel, and rare stamps - they find some expensive habit they can get addicted to, or stuck with, so that they need to make even more money. Oh, children! That's another common one. But, I figured, "if I don't pick up these expensive habits, I will never have to struggle to make money, because I'll have enough", and that way, money does not control my life - you see, I can choose what I want to do, and I can spend just a tinny little part of the time making money: that's the way I like it. Most of the time I'm doing what I think is important, or what I think is fun. So... but people used to say to me, and remember I was mainly speaking to Americans, and I was saying "free software" in English, they used to say to me, "What do you mean it's free, if it costs 150 dollars?" Well, the word free in English is ambiguous: one meaning has to do with price, and another meaning has to do with freedom, and it took me a while to get the confusion straightened out myself, but Free Software is really a matter of freedom, not price, so think of free speech, not free beer. Of course, in languages like Portuguese, you can be unambiguous. Most languages have a way to distinguish these two meanings: English is missing one. So, some people got their copies of EMACS from me over the network and did not pay me anything, other people paid me and I mailed them tapes, and other people got their copies through re-distributors, had no contact with me, and they did not pay me - maybe they payed somebody else, but all of these people, no matter how they got their copy, they all had freedom, which was the reason for making it Free Software. --- So let me now explain the specific freedoms that define Free Software, and why they are important, because it's really not useful to just say, "I'm in favor of freedom!", in a very vague way, because really the hard questions of politics are, "Which freedoms are important? And which freedoms are secondary and must give way to the important ones?" So, I will now give the definition of Free Software. A program is Free Software for you, a specific user, if you have the following freedoms: freedom zero, is the freedom to run the program for any purpose; freedom one, is the freedom to help yourself, by modifying the program to suit your needs; freedom two, is the freedom to help your neighbor by distributing copies; freedom three, is the freedom to help build your community, by publishing an improved version so other people can benefit from your work. If you have all of these freedoms, the program is Free Software for you. Now, freedom zero is actually normal - most programs give you freedom zero, so the freedoms that distinguish Free Software from typical software are freedoms one, two and three, so those are the ones I'll explain in more detail. Freedom one is the freedom to help yourself, by changing the program to suit your needs. This could mean fixing bugs, this could mean adding features, this could mean making it run on a different computer, this could mean translating the messages into Portuguese - there are all sorts of reasons you might want to change the program: freedom one applies to all of them. Freedom one is obviously useful directly to you if you were a programmer. It's also of tremendous value to you if you were a business. Any business that uses software, from time to time finds that software isn't quite right, and they want it changed. Well, if it's Free Software, then you can go to a programming company and say, "Please change this for me, what would you charge?" With proprietary software, you can't do that. It's like if you want to change the walls in your building or put in a new bathroom, or maybe your company doesn't do those things, but you can go to a carpenter or a plumber, similarly with Free Software, you can go to a programmer. --- Now, another reason why free software - this particular freedom - is important to users, is for the sake of security and privacy. You see, if a program is proprietary, nobody can see what's inside it, except the owner. So, when the owner says, "This program respects your security and your privacy", you just have to take it on blind faith. With Free Software, you can check, and in fact, you can expect that the whole community is checking, so you don't really have to check it yourself, because the owner knows that other people are going to be checking it, and so they wouldn't dare to deliberately putting any kind of back door or Trojan horse. And what about accidental mistakes, that everybody makes? Well, at least the community is going to be checking for them and they might find them, and when they find the bugs, they can write a simple fix, they can say, "Change these lines of the program and it will fix the bug", and then, if you care, you can install that fix the same day that is announced, so Free Software is essential to have good security, and to have privacy, specially on a computer that is on the network some of the time. And finally, Free Software is useful for any thinking person, who might perhaps someday want to learn something about what is going on inside that box. See, there are some people who say to the public, "You better leave these things to us specialists. Don't try to understand any of this: just trust us to do the right thing". This is known as the priesthood of technology. The Free Software movement rejects the priesthood of technology. We say that you may not choose to learn something about the inside of your software, but if you want to, you can. And you know, you don't have to study to be an expert programmer to get some benefit from this. Sometimes, you can learn a little bit and make some changes you want to make. With Free Software, it's your choice to learn nothing, or a little, or a lot. If you don't have freedom number one, this causes practical material harm: you become a prisoner of your software - I already explained what this is like, regarding the Xerox laser printer. I should explain that, practically speaking, to have freedom number one you must have access to the source code of the program. This is the form of the program that programmers can understand. If you don't have the source code, if all you have is a binary executable - a sequence of numbers, it is very hard to make any changes. Even the most trivial changes, like using four digits instead of two digits for the year can be excruciatingly hard. So, one of the requirements for Free Software is, you must be able to get the source code. So, not having this freedom causes practical material harm but, it also causes psycho-social harm, which affects people's enthusiasm for their work. If people are really excited about getting their work done, the way we were at MIT, and then they come to work and discover that somebody is deliberately making it difficult, that causes frustration, and to protect yourself from frustration, you have to stop caring about the job, so you end up with people saying, "Well, I showed up for work today. I brought a book - that's all I have to do. If I can't get the work done, because my tools are locked up or whatever, you know, I'll just read my book and get paid for that", and this is not good, even for society or for the individuals that happens to. That's freedom number one. Freedom two, is the freedom to help your neighbor, by distributing copies of the program to other people. For people who can think and know, sharing knowledge is a fundamental act of friendship. When these beings use computers, that act of friendship takes the form of sharing software. If a program has an owner who succeeds, by any method - the details don't matter - in setting up a situation where each user must pay to use the program, this creates a financial disincentive, discouraging people from using the program, and that causes the program to be partly wasted, because some users will say, "All right, I'll pay", and others will say, "It's too much, never mind", and every time somebody says, "It's too much, never mind", the program is going to waste, but the work it takes to develop the program to any given level of power and reliability is the same, regardless of the number of users, so the same work is done, but only part of the use is made. That is deliberately inflicted waste, which is practical material harm. But along with this practical harm, because it is deliberately inflicted, there is psycho-social harm, which affects the spirit of good will, which is society's most important resource: the willingness to help your neighbor - the habit of helping your neighbor. This makes the difference between a society - a livable society - and a doggy-dog jungle. I call this, a psycho-social resource of society, because it's what society needs, in order to function well. So, you can compare the Free Software movement with the environmental movement, except that the resource we don't want to see poisoned is not a physical resource like air o water, but a social resource. Because, what does it mean - what does it do - when you tell people, that they're forbidden to share with thir neighbor? That sharing with your neighbor is wrong? That sharing with your neighbor means you are a pirate? What does that do to society? And how much fear is it going to take to actually make people stop sharing with their neighbors? How many people will have to be put in prison for sharing? Do you want your society to be pervaded by this level of fear? I don't. When you look at the methods that are used to stop people from sharing software with their neighbors, you find that they resemble something else. You see, there was another country that tried to stop people from - to try to stamp out unauthorized copying. That was the Soviet Union, and the unauthorized copying was called samizdat, and to stamp this out, they used five different methods. First: guards on all copying equipment, to watch what was being copied. Second: harsh punishments for anyone caught making unauthorized copies. Third: to catch people, they asked for informers. Everyone was supposed to rap on their coworkers and their neighbors, and also to help catch people, collective responsibility, "You, you are going to watch that group! If I catch any of them with unauthorized copies, you are going to prison, so watch them hard". And finally, propaganda starting in childhood, telling people that only monsters would ever do this unauthorized copying. All five of these methods are now being used in the United States. First, guards on copiers. Well, in the US they don't use human guards, that's too expensive, they use robot guards. There's software that goes into your computer to stop you from copying things, and it's a crime to bypass that. Second, harsh punishments. Five years ago, if you made a few copies of something for your friends, just as a favor, that was not a crime in the US. Now, you can go to prison a couple of years for this, so it is being treated as really serious. You know, it's a very bad thing to do, to share with your neighbor. And informing. Well, in the past years, there were advertisements on television and in the subways in Boston, asking people to rap on their coworkers to the information police, also known as the Software Publishers' Association. And collective responsibility. There, the Internet service providers are being used. They have been made legally responsible of what their customers put up unless they have a policy of always taking everything down at the first complaint. --- Copyright has now become in the United States a method of censorship: anything that is somehow questionable, any evidence of sleazy conduct that was leaked from a company can now be suppressed, by telling the Internet service provider to take it down. And in fact, I read somebody obtained leaked documents from Ford Motor Company showing that they knew of dangerous defects in certain cars and did not tell the public, and this was put up on the net and then it was suppressed because Ford said, "This is a copyright violation", and the ISP had to take it down. So finally, propaganda starting in childhood: the way the US government puts this, teachers are supposed to teach children to quote, "say yes to licensing", unquote. Now, when I was a kid and I went to school, the teachers were trying to teach us to share, because this good will, the habit, of sharing with your neighbor is so important. So they said if you brought candy to school you couldn't just eat it all yourself; you had to share it with the other kids. Now they say, or they're supposed to say, "You brought software! Oh, don't share it. No, no! Sharing is wrong, sharing means you are a pirate". Sharing with your neighbor is the moral equivalent of attacking a ship on the seas and kidnapping the passengers. They are not joking when they say that. They really expect people to believe that, which shows how perverted their system is. Now this, I believe, is the most important reason for Free Software, that the system of proprietary software divides and then shackles the users. It's a fundamentally immoral system and each user who voluntarily participates is upholding the immorality of the system so, it is imperative that we rescue people from this state of being divided and subjugated with - by giving people Free Software we are enabling people to live an upright life, enabling people to once again follow their inclination to help their neighbor without having to be afraid of the information police. That's freedom two, the freedom to help your neighbor. Freedom three is the freedom to help build your community, by publishing an improved version of the program so other people can benefit from your work. Now, people used to tell me, "If the program is free, that means..." - oh, remember by the way the ambiguity of 'free' in English - they said, "that means nobody would be paid to work on it, so nobody will work on it". Well, that was the theory. Today, we can compare it with empirical fact: I'm told that there are over twenty thousand registered developers on the Source-forge site, which doesn't sound like nobody. In fact, we found that there are actually a number of ways to get paid to write Free Software, and there are probably by now a few hundred people at least getting paid to write Free Software, and I said, thousands who do it without pay, for various reasons, which may include, in my case and some other people, political idealism, for some people it's a matter of ego - pride - you know, you release a good free program and you see thousands of people using it and they appreciate you, it feels great. Another reason might be to help your friends: you feel you're part of a community and the right thing to do is to share with the community as it shared with you. Another reason is, maybe you needed the program yourself so you wrote it and then once it was done, you shared it. And, it can be a combination of reasons, but in any case, we found that a lot of people do contribute to improving Free Software. In fact, when I first released GNU EMACS, and other people started using it, they also started posting changes, and so I got in the mail a bug report, sometimes maybe with a fix too, and a new file which added a new feature, and another bug fix! And another new feature! And another, and another and another! until they were pouring in on me so fast I could hardly even make use of all the help I was getting - I could hardly keep up... Microsoft doesn't have this problem. So, this phenomenon has now been noted that often when a free program becomes popular, you get a bunch of people, or a lot of people joining in to improve it, to make it powerful and reliable and so, because of community development, people are starting to - Free Software is starting to get a reputation for being powerful and reliable software. There's even a group of people who advocate the freedoms I've just been describing to you specifically because, they say, "this is the best way to develop good technology, powerful and reliable software". That group calls itself the Open Source Movement and they advocate conduct more or less similar to what we in the Free Software movement advocate but, for very different reasons, because they never speak about freedom, about ethics, about principles, about the importance of helping your neighbor. They don't talk about it as an ethical issue at all. They cite only the practical benefits and by omission, effectively they imply that nothing but practical benefits matter. Well, imagine if you were discussing the question of censorship of the press and somebody said, "Well, it really depends which way is more profitable, whether a free press or a censored press, is more profitable. That's how we should decide". It would be obvious that this person fails to understand the idea of freedom of the press as a political social issue, and likewise, by failing to mention what would be an overriding concern, they effectively, in the Open Source movement, deny it. So that is where the Free Software movement and the Open Source movement disagree with each other. What the Open Source movement says, we agree with, as far as it goes, but the omission they make is so important, that there we disagree with them. And that is why I am not a member of the Open Source movement. I hope that when you describe the work of the GNU project, for example, the GNU operating system, that you'll talk about it as Free Software, because that expresses the connection with the Free Software movement that we are a part of - Open Source is the slogan of the other movement. Of course, each of you can decide which, if any, of these movements you support and you could even support them both if you choose to be friends with every one - that's possible. I hope that you will decide to stand with us for freedom and community and join the Free Software movement, and say Free Software as a way of expressing that you stand with us. So, if you don't have freedom number three, that causes practical material harm, which is, this phenomenon of community improvement can't happen. --- 4108 But it also causes psycho-social harm, which affects the spirit of scientific cooperation, the idea that we're working together to advance human knowledge. This spirit was once so strong that scientists would sometimes cooperate, even when their countries were at war. I read that US troops landing on an island in the Pacific during World War II found a building with a note on it. The note was addressed to them. It said, "To the American troops, this is a marine biology lab. We have arranged our notes and our specimens so that American scientists can pick up our work where we left off". It was written by Japanese biologists who had fled. They wanted to make sure that their work would contribute to humanity's knowledge, never mind which country would continue it. But today it seems that each little group of scientists and engineers is at war with each other little group, it's like gang warfare between these little gangs, each gang being typically a company. And why we allow this kind of conflict to go on within our countries, I cannot understand. So those are the three freedoms that distinguish Free Software, and the reasons why they are important. If a program gives you a particular user all these freedoms, then it's Free Software for you. Now, why do I define it this way, with respect to a particular arbitrary user? The reason is that sometimes the same software is free for some people and non-free for other people. Now, that might sound like a paradox, so let me give an example to explain how it works. The biggest example of this problem was the X-Windows system, developed at MIT, and released under a license that gave you all these freedoms, if you got the program from MIT. So if you got the program from MIT, it was Free Software but, among those who got the program from MIT were various computer manufacturers who distributed UNIX systems, so they took X-Windows, they made the comparatively small changes to make it run on their machines and they added it to their UNIX system, and they released only the binaries under the same non-disclosure agreement as UNIX, and then hundreds of thousands, maybe millions of people, got copies in this way, and for all of them, they did not have these freedoms. For them, X was not Free Software. So this created a paradoxical situation: if you asked the question, "Is X-Windows Free Software or not?", the answer depended on where you measured. If you measured coming out of the development group at MIT, you'd say, "Yes, I observe all these freedoms, it's Free Software". If you made the measurement by averaging over the users, you'd say, "Most of them do not have these freedoms, it's not Free Software". Well, the people who developed X were looking for a big professional success, and they got one, so they were happy, but we in the GNU project had a different goal. Our goal was to give people freedom and at the beginning we realized that if this kind of thing could happen, we could offer people freedom but it wouldn't reach most of the users: we would fail. So I developed a technique to prevent this; the technique is called Copyleft. You can think of Copyleft as taking copyright and flipping it over. Here's how it works: ...I wonder how you translate that... First we say, "This program is copyrighted", which means by default that it's forbidden to copy or change it, but then we say, "You have permission to change this and add to it; you have permission to distribute copies; you have permission to distribute the modified and extended copies - but, there is a condition: the condition is that whenever you distribute anything which contains even a piece of this, that whole program must be distributed under the same conditions as these, so whoever gets it from you also gets the same freedoms that you got from me", and in this way, every time the program is passed on, the freedom is passed on as well. Everywhere the software goes, the freedom goes with it, and every user of the software gets the freedom to share and change it. So, with Copyleft we go beyond simply letting other users have these freedoms, we actively defend these freedoms. We use copyright law, which was designed to take away these freedoms, for the exact opposite of that purpose. So, with copyleft we go beyond simply letting other users have these freedoms, we actively defend these freedoms. We use copyright law which was designed to take away these freedoms for the exact opposite of that purpose. So, copyright was designed for a right-wing purpose. It's used by right-wing people for the right-wing purpose of stopping people from helping each other and taking their money. Copyleft is used by left-wing people for a left-wing purpose, which is to encourage freedom, cooperation, equality and the community of all the people. The specific implementation of Copyleft that we use most often... The specific implementation of Copyleft that we use for most GNU software is the GNU General Public License or GNU GPL, sometimes further shortened to just GPL. We also have a couple of other kinds of Copyleft that we use for a few special programs and we have another license for free documentation, free manuals, called the GNU Free Documentation License. This is a form of Copyleft that I published two months ago specifically for manuals about Free Software, but it can be used for any kind of written work which you would like people always to be free to share and change. And I heard that people are using it also for stories that are going to be used in games, I recommend it also for text books. I think it would be great to publish a complete set of school text books, all of which are free, so that people can improve them and share them and you don't have to be at the mercy of text book companies. And one of the ideas in the GNU Free Documentation License is, we are trying to enlist the help of commercial publishers. The idea is that it has certain previsions that help the original publisher sell more copies of a book without prohibiting other people from selling copies of say, improved versions, or identical versions. --- 4665 It's trying to sort of come to a way of serving both goals: on one hand, everybody has the freedom to republish it with changes or without, but at the same time, people know that the original publisher really pays the author and that will help encourage people to buy from the original publisher, and there are important publishers either preparing to use or planning to use this license. I hope this will help solve a major problem we have today, which is an insufficiency of free manuals. Now, I notice some manuals on sale. I suggest, if you think of buying them, that you take a look at them, and make sure that the manuals themselves give you permission to copy and distribute. If they don't, they are not really a contribution to our community. So, there is copylefted Free Software, and there is non-copylefted Free Software - both of them are free, both of them respect your freedom and both of them are legitimate parts of the Free Software community. The disagreement is about strategy, and I think that the non-copylefters are using a worse strategy, but it's still morally legitimate. So, I've worked out the idea of Copyleft and written a Copyleft license for GNU EMACS and people started getting copies, and liked it, and at that point I felt, "Now it's time to make an effort to raise funds", so we started the Free Software Foundation in October 1985. The purpose of the Free Software Foundation is to develop Free Software and promote Free Software, promote users' freedom to copy and change software. The Free Software Foundation is a tax-exempt charity, which means that people who donate to us can deduct that on their tax returns, at least in the US. And so the foundation asked for donations but it took over from me the business of selling copies of GNU EMACS, and surprisingly, the foundation started getting more money from sales, than from donations, and ever since then, we've got more money from sales than from donations - really strange, especially since some people have said to me that this is impossible, because of the laws of economics. People tell me, that if the software is free, you can only sell one copy. They tell me, whoever buys the first copy will turn around and sell other copies cheaper, and everybody will buy from them, nobody will ever buy from you again, so you sell one copy. Well, let's compare this theory with empirical fact: other people have obtained copies from us, and most of them don't sell copies, but some of them do, and they normally charge less than we do, because we aim to be the highest-priced distributor, and most people buy from them, but some people keep buying from us, and we sell copy after copy and we have a steady stream of CD-ROMS and manuals and t-shirts being sold, and we pay our staff that way, and we have done this for fifteen years. Well, I just love refuting the laws of economics. Well, what's really going on here is... What's really going on here is that that theory is just approximately true. You know, maybe 99.99 percent of the users don't buy from us, but it only takes a small fraction to keep us going. The tremendous efficiency of providing of software packages to the world is so great, that it overcomes even that factor of ten thousandth or a hundred thousandth or whatever it is. Anyway, during the 1980's, we in the GNU project were developing one piece after another of the overall GNU system, which was our target. Some of these programs were developed by staff of the Free Software Foundation, many were developed by volunteers. I for example, am a full-time volunteer because I don't get paid by the Free Software Foundation. Actually, I get paid for speeches - I'm not getting paid for this speech, although they're being very nice to me here and I get a trip to Brazil, which is nice. But, in most places I get paid for my speeches so I can be a volunteer full time for the GNU project, and there are many other full-time volunteers too, people who are getting paid by some company or some university to develop Free Software. There are also hundreds of, or maybe even thousands, of part-time GNU volunteers. --- 5042 The twenty thousand or so volunteers, people contributing on Sourceforge, they are not all working on GNU software, they may be working on other Free Software - I can't count them all for this. So, we have a lot of people helping to develop GNU. Also sometimes we found a piece of software that had been developed by another group for their own reasons but which we discovered would be useful in GNU, so we adopted it. For example, the text formatter TeX, the X-Window system, you know, it's not copylefted, but it is Free Software, it was popular, it did the job, so I said, "Let's use X, we won't develop a GNU windows system", after all, when your task is so big that people tell you you can't possibly finish it, you have to look up for shortcuts. So, every time other people developed a program, and it could be used in GNU, and would do a good job, I said, "OK, let's use it". But you see, that happenned only by luck - it happenned sometimes, and other times it didn't. And when that didn't happen, we had to write the program. So that was our mission - get each of these components replaced with Free Software somehow. And at certain point, it seemed useful to make a list of what was missing, so I sat down with a UNIX wizard, and we made a list of the pieces that we didn't have, and that became the GNU Task List, initially a list of pieces of UNIX, to which I added various other nice pieces of software, even including games, that I thought a real complete operating system should have. UNIX came with some games, and I wanted to have free replacements for them but also other free games - Gnuchess was one of the early pieces of GNU software. So, in this way, by 1991, we had almost all of the pieces of the system. There was one major essential component that was still missing, and that was the kernel. Now, when you need to have all these components, you can do them in any order, really. I put off the kernel, hoping that somebody would do it for us, and eventually somebody did do the hard part of it: Carnegie Mellon developed a program called Mach, which is a micro-kernel, that is it's the bottom part of the kernel. On top of that, you implement user programs to do the rest of the kernel job, and in 1990, that's what we started doing. But in 1991 it wasn't working yet, and at that point, Linus Torvalds developed, on his own, a kernel, and released it as Free Software under the name Linux. Now, we didn't know about Linux at first because he never contacted us to tell us about it, but he announced it elsewhere on the net, and people who knew about it were interested in, you know, they looked around to see what other programs could they put together with Linux to make a complete system. So they looked around, and low and behold, everything they needed, was already available, "What good fortune!", they thought. But there was no coincidence about this, what they had found was all the various pieces of software waiting to be put into the GNU system put together to be the GNU system, as soon as we had a kernel to put them together with. So in fact, they were fitting Linux into the gap in the GNU system, making a sort of Linux-based GNU system, which we can call GNU-slash-Linux or GNU-plus-Linux for short. But they didn't know that, so they thought they were starting with Linux and putting all the other pieces on to it, so they called the result a Linux system, and this is how some twenty million people are using a version of the GNU system today, and most of them don't know it. The development of Linux was a tremendous step forward for Free Software, because it meant that a complete free operating system was possible. That combination of GNU and Linux was the first modern free operating system, but when people started calling the whole thing Linux, that was a disaster for the GNU project, because it separated our software from our philosophy. I've been telling you the philosophy of GNU, until 1991 or 92, there was the GNU software and the GNU philosophy, and they each helped to spread the other. When people used the GNU software, they would get information about the GNU philosophy, and so, they would be encouraged to take a look at it and think about it, and since they usually were very enthusiastic about the GNU software, they would at least pay attention to the philosophy, so some of them would decide they agreed, and then that would tell them to write more GNU software, and so each one contributed to the other. But when people started calling the GNU system Linux, this link was broken, and instead of leading people to the GNU idealistic philosophy I've been telling you today, people who used the software and liked it were led to the apolitical philosophy of Linus Torvalds. --- Now, I wish Linus Torvalds agreed with the philosophy I've been telling you today, but he doesn't. Linus Torvalds says that the author of a program can make absolutely any license whatever and nobody else has a right to complain. Now, I think that a decision which affects many people should not be one persons whim, and it should not be exempt from criticism on ethical grounds. But Linus Torvalds in this area does, and instead of aiming to give users freedom, his goal is success for the system, which he describes in jugular terms as "world domination soon". Well, I agree that popularity for the GNU and Linux system is a good thing, but it's not the ultimate goal, and unfortunately when people adopted as an end in itself, that leads, that tends to divert the community away from moving forward towards freedom. For example, the CEO of Caldera, a couple of weeks ago, gave a speech, of course he was talking about Open Source, not Free Software, and he was calling the system Linux, not GNU and Linux, he said that people shouldn't insist on freedom because that might marginalize the system. So he is asking the people to sacrifice freedom for the sake of the popularity of the system, and a lot of the users agree with him, because they've never heard any other idea expressed. Nowadays, calling the system Linux and speaking of Open Source are so wide spread, that we now have 20 million users and most of them have never been exposed to another way of thinking. If you look for example at the companies that distribute versions of the GNU-slash-Linux system, you'll find that all of them add some non-free components to the system as a bonus, they say. So, you know, it's possible today to get and use a complete free operating system, but it's not easy to find one. You can go to the store, and find versions of the GNU-slash-Linux system, typically called Linux, but it's not easy to find one that's entirely Free Software. You have to really make an effort and know what you are doing to do that. And most of the users don't care because they've never even thought about it. After all, these companies are giving them this thing with this non-free software and telling them that's a good thing. I once asked SuSE, you know, I said to them, "I don't like your distribution because it doesn't even divide the free from the non-free", and they said, "You know, we don't want to call people's attention to this difference because we want them to be glad they're getting all this non-free software". In other words, SuSE is spreading a message which is the exact opposite of the message that Free Software makes you free. And then look at the magazines about the GNU-slash-Linux system. Most of these magazines of course call the system Linux, and in addition, they're usually filled with advertisements for non-free software. If they're some available out there, go thumb through them and see. Now, those advertisements are for different programs, various programs but there's one message that they all have in common, they say, "Non-free software is good for you", so good for you, you might even pay to get it! And they call these packages "value-added packages", which makes a statement about their value: they value convenience, getting jobs done, not freedom and community. And every one of those advertisements encourages you to adopt those values. I have different values, so I call those things "freedom-subtracted packages". Because if you have just... if you have just... if you have just installed a free operating system and you now have the freedom that we have worked for sixteen years to give you, those packages give you the opportunity to buckle on a chain somewhere, to give up part of that freedom. --- And then, what about the users groups for the GNU-slash-Linux operating system? Of course, they usually call themselves Linux user groups, and most of them are so far away from championing freedom that they actually have meetings where salesmen come in to talk about non-free programs that could enhance the system for you. So all the institutions in the community, well, almost all of them, are encouraging people not to care about freedom, to just treat this like any other program, and use it only if it's technically superior. Well, if we don't care about freedom, we're likely to give it up, sooner or later: history shows us that - the foolish, practical man and his freedom, are soon parted. Because there are so many people who want to offer you the chance to get some practical benefit if only you would give up some freedom, and people who don't value the freedom will accept this deal - why not? So, I fear for the future of our community if we don't start caring more about freedom than what we have done so far. And that's why I ask people, and it sometimes looks foolish when I do, please call the system GNU-slash-Linux, please don't call the whole system Linux, because when you call the system Linux, you lead people towards that apolitical philosophy that values only the practical benefits. If you call the system GNU, or GNU-slash-Linux to share the credit with Linus Torvalds, then you are encouraging people to take a look at what we have to say, and think about these issues and then they'll make up their minds and take whatever position they take, but at least they'll have the chance to think about the issue. Now sometimes people say to me, "Why create all this unnecessary conflict about the name? Why worry about getting credit? Isn't the important thing that the job has been done?" --- 5944 Well, I agree: getting credit is not the important thing in its own right, and if the job really were done, then it wouldn't make sense, it wouldn't be worthwhile or good to make this fuzz. But the job is not done, we've just begun the job of winning and keeping our freedom. The important thing is not that we have a free operating system today. It's whether we will have a free operating system five years from now, ten years from now, and on, and for that, what we value is the most important factor because we will tend to get what we value, and not get other things, so the most important thing for our community to do is to think about freedom, focus on the goal of keeping our freedom and that way we can do the various necessary jobs to reach that goal. So let me talk about the challenges our community faces. First of all, you can get a free operating system to run on a modern computer today. Will that still be true in five years? Hardware doesn't stand still. Old products are being discontinued, new ones developed, and very often, those new products do not come with specifications. They'll sell you the hardware, but they won't tell you how to use it. Instead, they will give you a binary-only, non-free program and say, "This driver runs our hardware, install it into your [quote] Linux [unquote] system, and then it will work". Fine if you don't mind non-free software. Well, what can we do about this problem? There are two things we can do. One is, we can... a hard job that a few people need to do, and that is to reverse-engineer the software to figure out how to run the hardware and then write Free Software to do the job. Well, this is a hard work. To figure out the meaning of a binary program, imagine if somebody took a novel, and each distinct word in that novel was replaced by a nonsense string, so every time the word "house" appears, it's replaced by "XAB", and every time "man" appears, or its Portuguese equivalent, whatever, it's replaced by "QVLM", and likewise for each different noun, verb, adjective, adverb and the whole thing, and all you see are the articles and prepositions and conjunctions, and you've got to figure out what the whole thing means. It's gonna be hard. So, will people bother to do this job? Well, it depends how much they care. If programmers think this binary driver is good enough, why would they bother? If their value is convenience, why accepting such a big inconvenience to get it? That would be irrational. So our future depends on what we value. Meanwhile, while a few people are doing this very hard job, there's something easy that all the rest of us can do: apply market pressure, don't buy the hardware whose specifications are secret, buy alternate hardware instead, even if it costs a little more or doesn't run quite as fast or whatever disadvantage it might have, be willing to undergo a slight hardship, for the sake of your freedom. --- 6211 With twenty million of us, we can employ a lot of market pressure if we care to, but most of the twenty million of us have never thought about this issue. Most of the people think that the system is good because it's cool, and it's powerful and reliable and you can get it cheap. They're not thinking about freedom, so why would they use the power that they have? You see, we can win this battle on market pressure if we spread the word about the issue, so the future of our community depends on what we value. Now, another issue is documentation. We have a serious problem, that most Free Software doesn't have free documentation. Many Free Software developers have written non-free manuals and thought that was good enough. They never thought about the issue of why the documentation should be there in the software package so that people who redistribute the program can redistribute the manual along with it. And what if you changed the program? Maybe that means the original version of the manual was wrong now. If you are conscientious, you are going to fix the manual to make it accurate for your version or maybe you just see a way to improve the manual, but if the manual says you are not allowed, then you can't do that, so the manual for Free Software has to be free in the same way as the software. So what are we going to do? Well, we need to spread the word through the community about why free manuals are important. I've been focusing on this for about three years now, and that's why developed the GNU Free Documentation License. I hope that as publishers start being willing to commercially publish and pay authors to write free documentation, that this will help with the problem, but it will certainly also help if the people in the community are aware of the issue. And then, what about the problem of non-free software added to the system? What are we going to do about that? Well, as long as the users mostly think that this is an improvement, it's going to be hard for us to do anything about it, and the tendency is to add various non-free software packages, and the end result is a system that is very powerful, but not free any more. The biggest problem happens when the non-free package is a library used for developing Free Software because then other people develop their Free Software using this library, and in effect the library is a trap for their software. Because the software may be free itself, but it won't run on a free operating system. We who insist on using a free operating system can't run those programs 'cause we don't have the library. This is the problem that happenned with Motif. Eleven years ago or so, Motif was distributed, and it was made available gratis to a lot of people, but not free. Well, the people who didn't think about this issue started using it, and the result was a lot of Free Software we couldn't run, and we're still having problems with this. For many years people have been developing a free replacement for Motif: that was the only way we could solve the problem. This program is called Lesstif, and now it basically works, but there are still a few bugs, and lately I've been trying to persuade some Free Software developers, "please don't tell the users to use Motif, 'cause you see, we can't recommend their software that way". If we were recommending indirectly the use of Motif, we'd be going against our own principles - we'd be hypocrites. So, I've been begging them, "Please change your websites, please don't be distributing these binaries linked with Motif; we can't refer to your site if you do that". And they say, "But Lesstif still has a few bugs, it's better for the users if they give up their freedom and they run it with Motif". You see, what happens on our community depends on what we value. Well, in the case of Motif, we've almost finished solving the problem, but a few years ago, another similar problem arose with QT, another graphics toolkit - GUI toolkit library, graphical interface toolkit - because again, it was not Free Software, but it was available gratis, and lots of people started using it. In fact, there was a project to develop a very important body of software, all using QT, and when I saw this I thought, "This is a disaster because this is a bunch of people all caught on a trap all saying 'Hey everybody, come down here and join us in this pit!'", and every week, more people were jumping into the pit and being trapped there - it was like a cancer, growing. So, I organized two projects to try to fight back against this. One of this projects was an alternate desktop, because the project that was in a trap was a desktop project - a collection of user-friendly graphical interfaces, which is a very, very important thing, so to have it be sequestered by QT was a disaster. So, we started two different projects to solve the problem. One is GNOME, the GNU desktop project, an alternative desktop project that didn't use QT, and the other solution was a free replacement for QT. So, the reason we started two projects was, this problem was so bad we needed redundant solutions going on, because every software project might fail, you can never be sure if it will really get the job done. Well, as it turns out, this free desktop GNOME has become a success, but the free replacement for QT is not working yet - some parts of it are working, but it isn't usable. --- 6633 Meanwhile, a little later, Sun developed Java, and released non-free software, but again available gratis, that would run on free systems to support Java, and again a lot of programmers thought, "Oh, Java is so sexy, so wonderful! I've got to use this". They didn't bother thinking, "But is the implementation is Free Software?", they just said, "Well, if I can get it gratis", and so since then people have been working very hard to develop free replacements for Sun's Java implementation. After a few years of work, we finally have them. There is Kaffe, the interpreter, and there is Kiev, the compiler. With those, you can run Java's programs on a free operating system, but they don't have all the features of Sun's software, so if you are using Sun's system as your development platform, you might easily, without even noticing it, use features that the free implementation doesn't have and then your program won't run on a free operating system. So if you are developing Java software, do your development on a free platform, and make sure therefore it will run on the free platform. So, obviously, this problem is going to happen over and over, as long as our community remains mostly oblivious, the problem is going to keep hapenning, and it's much easier to stay out of the trap, than to escape, or rescue people, from the trap. So by spreading the word about this issue, the need for the whole system to be free, we can save ourselves us a lot of work. You know, if the community had refused to accept Java saying, "We want you to release us Free Software before we are going to accept it", I think Sun would have been forced to release it as Free Software. After GNOME got to be successful, the people who developed Qt released it again under a new license which does make it Free Software. So, the problem has been partly solved. I say partly because this new license is very inconvenient: it just barely qualifies as Free Software. I am convinced that they did this in response to our counter-attacks, and that if we had not counter-attacked vigourusly against this threat to our community, they would have been perfectly content to keep Qt non-free for ever. So, in this way too, the future of our community depends on what we value, and the biggest threat, though, the most dangerous threat comes from government restrictions that prohibit Free Software. For example, in the US, many features and algorythms are patented, which means it's ilegal for anybody else to implement them. So what do we do, when the features users want can't be implemented in Free Software because of patents? We're going to have to provide Free Software which is somewhat less convenient. Will people use it or will they give up their freedom for that added convenience? If we want our community to survive, we must spread the idea of the importance of freedom. And what about other countries? The US government is going to be trying to pressure other countries into enacting a similar, stupid system of software patents, basicly subjugating their own information activities to a few companies mainly in the US and Europe. Obviously it would be a stupid policy to do this, but the governments need to understand why it is a stupid policy, they need to recognize that they must keep the hability to develop software and use it, and in order to explain this to them, we need to spread the word in the various countries that use software, including Brazil. It will take political activity, and once again this depends on citizens being aware of the issue, so the future of our community odepends on what we value. By talking about Free Software and about the GNU-slash-Linux operating system, you'll help spread the word, specially since people will sometimes say, "Oh, you mean Linux?", and then you'll have an opportunity to explain to them why that's not really the right name and how this operating system exists because of people who were willing to campain for freedom, and that can help you explain to people what the freedom is all about, and this is what has to be done. So, at this point, I'm sure you're all impatient, so let me introduce my alter-ego, Saint Ignucious. I am Saint Ignucious of the church of EMACS. I bless your computer, my child. I should explain that EMACS was initially a text editor which became a way of life for many people and then, even a religion. We even have a greatsism, and we also have saints. Fortunately, no gods. The church of EMACS is better than some other churches because to be a saint in the church of EMACS does not require celibacy. So, I should ask, by the way, if you're taking pictures for a news paper, it's probably a good idea not to publish the picture of Saint Ignucious in the news paper, and here's why: after some two hours or so of hearing the serious issues of Free Software, you understand that this is just a joke - this is not the whole thing. People who see this in a news paper, they won't realize that: they haven't had the chance to learn the serious issues - but let me continue with my comedy routine. So, because we don't require celibacy, if you're searching for a church to be holien, you might want to consider ours. But, sainthood in the church of EMACS does require that you make a moral commitment to live a life of purity: you must exorsize the evil, proprietary operating system from all your computers. You know, nobody ever said that sainthood was supposed to be easy or comfortable, or involve no sacrifices. You must exorsize the evil, proprietary operating system, and install a holy free operating system, and both meanings of 'holy' apply here, and then only install Free Software on top of that. If you make this commitment, and live by it, then you too are a saint in the church of EMACS and you too, may eventually have a halo.