Friday, October 20, 2006

RMS

Richard Stallman founded the GNU Project in 1984, and the Free Software Foundation in 1985. He also originally authored a number of well known and highly used development tools, including the GNU Compiler Collection (GCC), the GNU symbolic debugger (GDB) and GNU Emacs.

To better understand Richard Stallman and the GNU project, I recommend you begin by reviewing their philosophy page. On it you will find a wealth of information.

Background:
Jeremy Andrews: When did you first start working with computers?

Richard Stallman: I first read manuals and wrote programs on paper in 1962 or so. 1969 was when I first saw and used a real computer.

JA: What types of programs were you writing prior to actually seeing and using a real computer?

Richard Stallman: They were pretty trivial, like things to add up a vector of numbers. About the time I first started with a real computer I designed a computer language based on string substitution. In some ways like SNOBOL, although I'd never used SNOBOL.

And then, the first thing I started writing when I had a real computer to use--I'd seen the language PL/I and I was thrilled by how many features it had. But there was a feature it didn't have: it didn't have the summation convention used in tensor analysis. So I started to write a pre-processor for PL/I that would implement the summation convention. I didn't ever finish it, but I actually got some parts of it to work. I wrote it first in PL/I, and then we discovered that even one pass of it wouldn't fit in the machine that was available. (I had actually written a lot of parts of this in PL/I on paper by that point.) Then I started rewriting it in assembler language, but I only rewrote a few passes of it in assembler language. And then I learned about things like lists and about Lisp, and lost interest in languages like PL/I.

JA: When you graduated from Harvard in 1974 with a BA in physics, how did you intend to use your degree?

Richard Stallman: I thought I would become a theoretical physicist; however, the pleasure of programming, where I could make real progress and see results, gradually grew and overtook the pleasure of learning physics.

Life In The AI Lab:
JA: What tasks occupied your time at the AI Lab through the 1970s?

Richard Stallman: Mostly operating system development, but I did one AI research project with Professor Sussman; we developed dependency-directed backtracking.

JA: What is dependency-directed backtracking?

Richard Stallman: You make some assumptions, and with those together with some given facts you draw a conclusion. You may reach a contradiction; if so, at least one of your assumptions that led to that contradiction must be wrong. You also record which combination of assumptions actually related to the contradiction, so you can deduce that that combination of assumptions cannot all be true. Then you backtrack by changing assumptions, but you never try a set of assumptions that includes the combination that you know are contradictory. Now, this is a technique that people had used for a long time in thinking. It's also known as proof analysis. But it hadn't been used in computerized reasoning.

JA: What was the result of this research project?

Richard Stallman: We published a paper. The technique got used by other people later, so apparently it became part of AI.

Also, I learned how to understand electrical circuits better. The program that we wrote, which used this technique, was a program for understanding electrical circuits. By imitating the program, I could understand circuits better than I could before.

The GNU Project And The Free Software Foundation:
JA: The story of your encounter with non-free printer software in the early 80's is very well known. This incident ultimately resulted in your founding the GNU Project in 1984, and the Free Software Foundation in 1985. You have remained quite active in this movement ever since, as a public speaker and a prolific author of free software. Of which of your many achievements in the past two decades are you the most proud?

Richard Stallman: What I am proud of is that we have built a community where people can use computers and work together in freedom.

JA: What are the largest challenges you're facing today?

Richard Stallman: Software patents. The Digital Millennium Copyright Act. The broadcast flag. Cards with secret specifications. Non-free Java platforms.

In other words, organized efforts by people with power to put an end to our freedom.

JA: Is there a plan for addressing these issues?

Richard Stallman: Regarding the laws, not much of one, in the US. In other countries that do not yet have these laws, we can try to prevent them.

JA: That's a bit scary.

Richard Stallman: It is.

"Free Software" vs. "Open Source":
JA: You regularly have to explain the differences between "free software" and "open source software", and yet the media continues to confuse these terms. For our readers that may therefor be confused themselves, can you explain the differences, and why it is important to get it right?

Richard Stallman: Free software and open source are the slogans of two different movements with different philosophies. In the free software movement, our goal is to be free to share and cooperate. We say that non-free software is antisocial because it tramples the users' freedom, and we develop free software to escape from that.

The open source movement promotes what they consider a technically superior development model that usually gives technically superior results. The values they cite are the same ones Microsoft appeals to: narrowly practical values.

Free software and open source are also both criteria for software licenses. These criteria are written in very different ways but the licenses accepted are almost the same. The main difference is the difference in philosophy.

Why does the philosophy matter? Because people who don't value their freedom will lose it. If you give people freedom but don't teach them to value it, they won't hold on to it for long. So it is not enough to spread free software. We have to teach people to demand freedom, to fight for freedom. Then we may be able to overcome the problems that today I see no way to solve.

"GNU/Linux":
JA: Another frequent area of confusion is the name 'GNU/Linux'. Why is the GNU project's contribution significant enough that it should be in the name of the operating system, especially compared to other large pieces of any Linux-kernel based operating system, such as XFree86?

Richard Stallman: It's no coincidence that the code we wrote for the GNU system is the largest single contribution to the GNU/Linux system today. Many other people and projects have developed free software programs now used in the system; TeX, BSD code, X11, Linux, and Apache are noteworthy examples. But it was the GNU Project that set out to develop a complete free operating system. The combined system we use today is founded on GNU.

JA: In talking about GNU Linux...

Richard Stallman: I prefer to pronounce it GNU-slash-Linux, or GNU-plus-Linux. The reason is that when you say GNU-Linux it is very much prone to suggest a misleading interpretation. After all, we have GNU Emacs which is the version of Emacs which was developed for GNU. If you say "GNU Linux", people will think it means a version of Linux that was developed for GNU. Which is not the fact.

JA: You're trying to point out instead that it's a combination of the two.

Richard Stallman: Exactly. It's GNU plus Linux together.

JA: Which makes up the GNU+Linux operating system that everyone uses.

Richard Stallman: Exactly.

JA: What is gained by people using the term GNU/Linux?

Richard Stallman: People know that Linus Torvalds wrote his program Linux to have fun. And people know that Linus Torvalds did not say that it's wrong to stop users for sharing and changing the software they use. If they think that our system was started by him and primarily owes existence to him, they will tend to follow his philosophy, and that weakens our community.

It's an interesting anecdote to think that the whole operating system exists because an undergraduate thought that it was a fun project. But the real story is that this system exists because of people who were determined to fight for freedom and willing to work for years if that's what it took. That's a story that teaches people something worth learning.

When people forget that, they start drifting toward the practical but superficial values shared by the open source movement and Microsoft: the idea that the only thing that matters about your software is whether it gets your jobs done and what it costs.

JA: Which begins to answer my next question, what is lost when people refuse to use the term GNU/Linux?

Richard Stallman: What's lost is an opportunity to teach people. The software is equally free regardless of whatever name you call it--if, that is, the distro you're using really is free. But the only free GNU/Linux distro I know of is UTUTO. Most versions of the GNU/Linux system are not entirely free software. All the commercial distributors put in non-free software. And then there's Debian which keeps all the non-free software clearly separated, but does distribute it. And those who sell Debian GNU/Linux often add a few non-free programs as a "bonus"... They invite you to think it's a bonus you're getting that your freedom is no longer complete.

If you happen to be running a version of GNU/Linux which doesn't have the non-free software, then the situation is not materially changed by the name you use. But the situation we're likely to find ourselves in five years from now depends on what we teach each other today.

A rose by any other name would smell as sweet, but if you called it an onion you'd get cooks very confused.

GNU/Hurd:
JA: The GNU Hurd has been under development for over a decade. There was talk of a 1.0 release over a year ago, but this was delayed due to a couple of lacking features. What is the current status of this project?

Richard Stallman: The Hurd runs, and missing features are gradually being added. However, for practical use today, you would use a Linux-based version of GNU.

JA: Do you have any predictions as to when we're going to see a 1.0 release?

Richard Stallman: No, I'm afraid I don't, I'm sad to say. A lot of the Hurd developers seem to have decided that they should re-write it to work with a different micro-kernel (L4). I was disappointed to hear this, but now it looks like it will be some more years before the Hurd is usable.

At least we do have a free kernel that works with GNU.

JA: Will the GNU Project focus solely on a GNU system built around the GNU Hurd when it is released, or will it continue to support a widening range of free-software kernels?

Richard Stallman: We will keep supporting Linux-based versions of the GNU system for as long as they remain popular.

JA: How will we refer to a Hurd-based operating system? Is it GNU Hurd, or GNU slash Hurd?

Richard Stallman: It's the GNU operating system, and the Hurd is its kernel. But because it's so common for people to use version of GNU that are based on Linux as the kernel, it's useful to contrast the two, and talk about GNU/Linux and GNU/Hurd, which are two different versions of the GNU system with different kernels.

JA: What would the advantages of using a GNU/Hurd system be over say a GNU/Linux system?

Richard Stallman: There's probably no gigantic advantage that jumps out at the user's face if you're not writing interesting programs. The Hurd offers interesting, powerful capabilities. For instance, you can write your own filesystem, so you could implement any sort of behavior you want and package it as a file. It offers the possibility of implementing sandboxes, where you can run a program but have another program monitoring all its I/O to make sure it doesn't start writing in files it wasn't expected to.

These things may be doable with a kernel that doesn't have the Hurd's architecture, but with the Hurd it's trivial and the most natural thing in the world.

Writing Code vs. Management:
JA: How much source code do you write these days?

Richard Stallman: I myself? Only a little, on Emacs. I was involuntarily self-promoted into management.

JA: That's an interesting description. How did this happen?

Richard Stallman: The amount of management and activism that had to be done got more and more, and so I had to find other people to take over more and more of my programming responsibilities.

JA: Do you miss the programming?

Richard Stallman: Yes. It's fun.

JA: Is the management/activist role something you desire to remain in?

Richard Stallman: I wouldn't say I desire to, but it's necessary that I do so. At the moment we don't have anyone to replace me. We're actually thinking about how we we could try and develop people who could do this, so that I will not be indispensable.

JA: What is your role these days?

Richard Stallman: Partly it is being a very firm and determined leader. Partly it is being an orator. Partly it is advising other people on how to be activists or how to contribute to free software. I've learned something that a lot of people could usefully know: how to be extremely persistent and whenever one avenue was blocked find another.

I've also learned the spirit of what you do when you're fighting for freedom. When it's a fight that you can't ever give up as lost.

JA: Many of the programs you were the original author for are key components of much software development today (free and non-free alike), such as the GNU Compiler Collection (gcc), the GNU symbolic debugger (gdb), and GNU Emacs. All of these projects have remained under constant development over the years. How closely have you followed the many projects you've started, and how do you feel about the directions they've taken?

Richard Stallman: I don't follow GCC and GDB in technical detail nowadays--other people now have that responsibility. I still supervise Emacs development.

GNU Emacs:

JA: Then you are still working on Emacs at a code level?

Richard Stallman: Yes, although now with my broken arm I really have no time to program anything. I will when my arm is better and I can type for myself again.

JA: May I ask what happened to your arm?

Richard Stallman: I fell and broke my arm, and I needed surgery. It hurts, and I think it will never be normal again. But I think it will work for typing. (Later: it works fine for typing, but it tingles all the time.)

JA: I'm sorry to hear about your arm, and I wish you a speedy recovery.

I recently reread Cliff Stoll's "The Cuckoo's Egg". Are you familiar with the book?

Richard Stallman: I have a vague memory of it.

JA: A quick summary, he talks about a spy that breaks into a university computer system, initially using a security hole in GNU Emacs...

Richard Stallman: Well, whether it's really a security hole, or whether he had made a mistake by installing a certain program setuid is subject to argument.

JA: That's exactly what I was curious about, just what your reaction would have been to the book when it came out.

Richard Stallman: His book made it sound like Emacs, or actually movemail I think it was... His book made it sound like it was normal to install movemail setuid. I think some people sometimes did that, as there was a certain problem you could get around by doing that, but that wasn't the normal way to install it. So in fact, people installing Emacs the usual way would not have had that problem.

On the other hand, it certainly was useful to make Emacs more bulletproof, so that that problem couldn't happen even if you installed movemail as setuid.

That was ages ago.

Non-Free Software:
JA: What is your reaction to tools such as gcc, gdb and GNU Emacs being used for the development of non-free software?

Richard Stallman: Any development of non-free software is harmful and unfortunate, whether it uses GNU tools or other tools. Whether it is good or bad, in the long term, for the future of computer users' freedom that one can use these tools to develop non-free software is a question whose answer I could only guess at.

JA: How do you react to the opinion that non-free software is justified as a means for raising dollars that can then be put into the development of completely new software, money that otherwise may not have been available, and thus creating software that may have never been developed?

Richard Stallman: This is no justification at all. A non-free program systematically denies the users the freedom to cooperate; it is the basis of an antisocial scheme to dominate people. The program is available lawfully only to those who will surrender their freedom. That's not a contribution to society, it's a social problem. It is better to develop no software than to develop non-free software.

So if you find yourself in that situation, please don't follow that path. Please don't write the non-free program--please do something else instead. We can wait till someone else has the chance to develop a free program to do the same job.

JA: What about the programmers...

Richard Stallman: What about them? The programmers writing non-free software? They are doing something antisocial. They should get some other job.

JA: Such as?

Richard Stallman: There are thousands of different jobs people can have in society without developing non-free software. You can even be a programmer. Most paid programmers are developing custom software--only a small fraction are developing non-free software. The small fraction of proprietary software jobs are not hard to avoid.

JA: What is the distinction there?

Richard Stallman: Non-free software is meant to be distributed to the public. Custom software is meant to be used by one client. There's no ethical problem with custom software as long as you're respecting your client's freedom.

The next point is that programmers are a tiny fraction of employment in the computer field. Suppose somebody developed an AI and no programmers were needed anymore. Would this be a disaster? Would all the people who are now programmers be doomed to unemployment for the rest of their lives? Obviously not, but this doesn't stop people from exaggerating the issue.

And what if there aren't any programming jobs in the US anymore?

JA: You mean what if all the programming jobs were outsourced to foreign countries?

Richard Stallman: Yes, what if they all go? This may actually happen. When you start thinking about things like total levels of employment, you've got think about all the factors that affect it, not blame it all on one factor. The cause of unemployment is not someone or society deciding that software should be free. The cause of the problem is largely economic policies designed to benefit only the rich. Such as driving wages down.

You know, it's no coincidence that we're having all this outsourcing. That was carefully planned. International treaties were designed to make this happen so that people's wages would be reduced.

JA: Can you cite specific examples?

Richard Stallman: FTAA. The World Trade Organization. NAFTA. These treaties are designed to reduce wages by making it easy for a company to say to various countries, "which of you will let us pay people the least? That's were we're headed." And if any country starts having a somewhat increased standard of living, companies say "oh, this is a bad labor climate here. You're not making a good climate for business. All the business is going to go away. You better make sure that people get paid less. You're following a foolish policy arranging for workers of your country to be paid more. You've got to make sure that your workers are the lowest paid anywhere in the world, then we'll come back. Otherwise we're all going to run away and punish you."

Businesses very often do it, they move operations out of a country to punish that country. And I've recently come to the conclusion that frictionless international trade is inherently a harmful thing, because it makes it too easy for companies to move from one country to another. We have to make that difficult enough that each company can be stuck in some country that can regulate it.

The book No Logo explains that the Philippines have laws that protect labor standards, but these laws count for nothing any more. They decided to set up "enterprise zones" - that's the euphemism they used for "sweat shop zones" - where companies are exempt from these rules for the first two years. And as a result, no company lasts for more than two years. When their exemption runs out, the owners shut it down and they start another.

JA: How does free software address this?

Richard Stallman: Free software doesn't address this. Free software addresses the issue of how computer users can have freedom to cooperate and to control their own computers. This is the larger issue that becomes relevant when you start talking about "How are people going to have jobs that pay them decently?" The answer is: in the world of the low wage treaties, they're not going to.

It's inconsistent and future to subject millions of people to the loss of freedom that non-free software imposes, just so that a tiny segment of society will have better paying jobs, when we're ignoring all the rest of society with their lousy jobs.

If you want to start doing something about that problem, do it at the right level, which is the level of the power balance between corporations and countries. Corporations are too powerful now. We have to knock them down. I don't believe in abolishing business or even in abolishing corporations, but we've got to make sure that no corporation is powerful enough that it can say to all the countries in the world, "I'll punish any country that doesn't obey."

That is the way it works now. And it was deliberately set up by people such as Reagan, and Clinton, and Bush and Bush.

New Technologies:
JA: I have read that the free software model tends to imitate existing software, rather than blaze new trails and developing completely new technologies.

Richard Stallman: To speak of a free software "model" is somewhat misleading. The open source movement speaks of a "development model", but our concern is for the user's freedom, not how the program is developed.

Free software doesn't always imitate, but often it does. There's a good reason for this: freedom is the main goal, and innovation is secondary.

Our goal is to develop free software so that we can use computers exclusively with free software. In 1984, we started with nearly zero (we had TeX, nothing else). We had a lot of catching up to do, so we have done it. Even if GNU/Linux had no technical innovations compared with Unix, it would be completely superior because it respects your freedom as Unix does not.

JA: Do you believe that free software has caught up with non-free software?

Richard Stallman: To a large extent, but not totally.

JA: Would you say that we're going to start seeing a lot of technical innovations originating from free software as things are catching up?

Richard Stallman: We already have. We already have seen a technical innovations in free software. A lot of them help make up the world wide web.

The Internet:
JA: Does the importance of using only free software apply to the Internet?

Richard Stallman: I don't understand the question.

JA: Software not only runs on personal computers, but also the computers that comprise the Internet...

Richard Stallman: That may mean your computer. If your computer is on the Internet, then that's one of the computers you're talking about.

JA: You're correct. At this very moment my computer is part of the Internet. And my computer is comprised entirely of free software. However there are plenty of computers on the Internet that are not comprised of free software.

Richard Stallman: I think you meant to say, "not running entirely free software." There are many computers on the net that are not running free software, and that means the people who use and own those computers have lost this aspect of their freedom. That's a problem.

JA: Do you consider it proper for people who are trying to only use free software to utilize...

Richard Stallman: To connect to a server that's running non-free software?

I don't feel I need to refuse to connect to a server that is running non-free software. For that matter, I won't refuse to type on a computer that's running non-free software. If I were visiting your house for a little and you had a Windows machine, I would use it if it were important for me to use it. I wouldn't be willing to have Windows on my computer, and you shouldn't have it on yours, but I can't change that by refusing to touch the machine.

If you connect to a server that runs non-free software, you're not the one whose freedom is harmed. It's the server operator who has lost freedom to the restrictions on the software he runs. This is unfortunate, and I hope that he switches to free software; we're working to bring that about. But I don't feel you have to boycott his site until he switches. He isn't making you use the non-free software.

JA: Back to my earlier question, as a specific example do you use tools such as Google when attempting to locate online content?

Richard Stallman: I have nothing against communicating with Google's network server, but for Google's sake I hope they have the freedom to study, change and redistribute the software used on their server. Having the freedom to do so does not imply the obligation to do so; Google doesn't have to change or redistribute the software they run. But they ought to be free to do this, just as you and I should be free to do this with the software on our machines.

The Workplace:
JA: What if your job requires you to use non-free software?

Richard Stallman: I would quit that job. Would you participate in something anti-social just because somebody pays you to? What if the job involves hitting people on the head in the street and taking their wallets? What if it involves spreading the word that Democrats should vote on Wednesday instead of Tuesday? Some people seriously claim that you can't criticize what someone does if it is part of their job. From my point of view, the fact that somebody is being paid to do something wrong is not an excuse.

Embedded Applications:

JA: Embedded applications have become more and more prevalent in society. Is it possible to completely avoid non-free software and still remain in-touch with current technologies?

Richard Stallman: I don't know if it is possible, but if it is not, that is something we need to change. Once an embedded system can talk to a network, or users normally load software into it, its software needs to be free. For instance, if it uses non-free software to talk to the network, you can't trust it not to spy on you.

SCO:
JA: How do you react to SCO's recent accusations about the Linux kernel?

Richard Stallman: The vague and cagey nature of their statements, coupled with having seen that the only specific facts they produced proved to be false, suggests they have no real case.

JA: What impact do you expect this to have on free software?

Richard Stallman: I don't expect it to have a big impact because I don't think they have a case. They're trying to create FUD and they may scare some timid people off.

JA: Do you expect this to bring the GPL into the courtroom?

Richard Stallman: I don't know.

JA: Is that a concern for you?

Richard Stallman: We think the GPL will stand up in court, but no wise person is eager to get into a battle, even if he thinks he's well enough armed that he'd probably win.

The arguments that SCO have been making are so laughably absurd that they lend support to the idea that SCO has no real case, that they're only interested in creating FUD.

JA: To what end?

Richard Stallman: They hope some companies will pay them money, and Microsoft already did.

To people who know almost nothing about copyright law, anything sounds as plausible as anything else. When they hear what SCO says, they don't know how ridiculous it is. So they think, "SCO says this, IBM says that, how do I know who's right?"

JA: What's in store for the GNU General Public License (GPL)? Are there plans for a version 3?

Richard Stallman: Yes, but we are not really sure what will change. What we can say is that the changes will be details.

Getting Involved:
JA: Is there any other current event that you'd like to address?

Richard Stallman: The FCC last year decided to require digital restrictions management in all receivers of digital TV. And not only that, to require that they be made not modifiable by the user. I think they have not yet decided whether this device is software controlled. If they make it software controlled then for the first time there will be a government policy explicitly banning free software for a job that millions of people are going to want to
do.

JA: Are you optimistic about this?

Richard Stallman: I don't know. I am a pessimist by nature. Many people can only keep on fighting when they expect to win. I'm not like that, I always expect to lose. I fight anyway, and sometimes I win.

I'm not the main leader in this particular battle. The Electronic Frontier Foundation is fighting. Public Knowledge is fighting. People need to get involved politically. At this point people should go to the EFF website and the Public Knowledge website, and continue doing so over the coming weeks to see how they can get involved in this coming campaign. It's going to take a lot of people spending probably at least twenty minutes. If you care enough about your freedom to spend twenty minutes on it, if you can tear yourself away from whatever little job it is you're doing this week, and next week, and so on. Spend a little time fighting for your freedom, and we can win.

JA: Thank you.

Richard Stallman: Happy hacking!

No comments: