Oh, uh...
OK, I can see it winking at me.
[laughter]
So there is copylefted free software,
most GNU software,
and others.
There's also *non*-copylefted free software such as X, and BSD.
They're *both* free software.
It, it's a difference of strategy.
*Those* people are saying that they,
they're not going to say no to anybody.
So *they're* not going to take away your freedom,
However, they're not going to actively fight to stop somebody else from taking away your freedom.
So they're not doing anything *wrong*,
but they're not doing as much as they *could*,
to defend freedom.
I would rather
do the most possible
to defend freedom.
So that, I, I, the idea of copyleft is it sets up a system whereby we can defend *each other's* freedom,
so that,
it makes the community as a whole stronger.
It's a disagreement over strategy,
I wouldn't say
that those people are,
in X and BSD, that they're doing something *wrong*,
but I would say that they are doing *less*
than they *could*
to defend freedom.
In any case, the software they write *is* free software,
and we *can* use it
in free operating systems.
So,
Now that I've
explained all these different,
these philosophical issues and these
different
kinds of,
different ways of doing free software,
I should go back to explaining the history of things, I left off
in 1985, when we
formed the Free Software Foundation.
The purpose of the foundation is to raise funds
to pay people
to work on promoting free software.
Typically, um, we've paid them to write software and write manuals.
And this is one way
that we develop parts of GNU.
But
most of the work is actually done by volunteers.
And there are some *full-time* volunteers.
I'm a full-time volunteer for GNU,
'cause I'm not getting paid by the FSF.
And why is that?
Well as the president of the FSF, it's my job to decide how to spend the money.
And I have to spend it in the most effective way.
[laughter]
Now,
I reali, when we had enough money to pay one person,
I realized
that, if we paid it to Stallman it would be like throwing the money away,
because we could get Stallman to work for nothing.
[laughter]
So,
I decided we would *not* pay Stallman.
So we don't pay Stallman a salary, and we also don't pay for his travel.
And the reason for that is, well, I realized that
if the FSF were paying me
to travel around the world all the time,
then
that's a lot of fun in some ways, so it would be a, it would be pretty much a mockery to say that the FSF wasn't paying me.
So we have a rule, the FSF never pays for my travel
except *maybe* a taxi across town to an appointment,
if that's necessary.
Um,
so,
in those respects I always have to get *myself* funded.
And,
there are *other* full-time volunteers too.
Mostly, those people are being paid by somebody else
so the people who work for the various free software companies, like
Cygnus,
uh, Cyclic,
uh,
I think there's one here called "Cendio",
uh,
so the
uh,
and others are working at universities, and working on free software.
So there are various ways
There, there are also people who have individual consulting businesses where they
develop improvements to free software
and contribute those to the community.
They too
are
full-time volunteers, you might say.
If they're, if they're working on GNU software then they're full-time volunteers for GNU.
But there are lots and lots of *part-time* volunteers, who are doing work, and not getting paid for it at all.
Uh,
a lot of programmers, it turns out, want to work on free software.
Even people who have full-time jobs
working on
other software
want to work on free software in their spare time.
And there are various reasons for this.
Uh, one reason why people work on free software is,
well, you have to do a certai, you have to get a job done, so you write a program to do it, and then you might as well share it with people.
Another reason is,
Uh,
for pride or reputation, you know, the, if
hundreds of thousands of people are using a program you wrote,
they will really admire you,
assuming they *like* the program.
But,
[laughter]
if they're using it by their own choice they probably like it,
or they wouldn't use it.
So, you can
really feel good with so many people using your software.
Uh, another reason
is, uh,
political
idealism.
That's my reason
for,
that's why I wrote the various pieces of GNU that I wrote.
'cause I want
to change
to, to build this
alternative community
so we could escape from the proprietary software way of life.
And another reason is,
uh,
to share with your friends, you know, once you start feeling that you're part of a community,
it starts to feel very natural to contribute to that community.
Sometimes, so you'll think "Oh, I can write a free program to do this, and
and people will like it, and I'll be sharing with the other people who have shared with me."
And another reason is that it's fun.
For some people,
and especially some very good programmers,
writing software is tremendous fun.
And, even if they are working on software all day,
the, it, at work maybe somebody's *telling* them what to do,
then they can go home and
write something and decide for themselves exactly what to do and how to do it,
which means
that they can,
that it can be a lot more fun.
So there are many reasons why people write free software and many reasons why some of them
are volunteering for GNU.
I hope that, uh,
if you have used
the GNU system or some GNU software
that *you* will contribute
to our community too,
by writing free software or writing free manuals.
Those are things we need very much.
We also need help in other ways.
At the moment,
we have a project to
to make a directory of free software,
which is basically a database,
with,
with an entry for every free software package that's worth using.
Now this is a big job.
We've hired one person to do this,
but that person is going to need help from a lot of volunteers.
This is something which you can help with even if you're not a programmer.
So if you're interested in helping with this, send mail,
wi, helping in any of these ways,
send mail to gnu@gnu.org.
So during the 1980's,
we were developing replacements for one piece after another of Unix.
'Course, we didn't develop them in any particular order,
you know, which I wou, whenever there, it seemed like
good to replace a certain piece we worked on that piece
or when somebody was inspired to do it.
Because after all,
we had to have them *all*, so it didn't matter which one we did first and which one we did last,
The important thing was to be, to do one after another after another after another after another.
In some cases, other people developed packages that
did a part of the job.
They had their own reasons,
they weren't doing this to produce a free operating system,
but,
it didn't matter what their reasons were, after all,
if some other person or project
released a free program that did a job in the system,
we could use it.
The project
being so large that many people said it was impossible, we had to be looking for shortcuts.
So anytime there was a suitable package available,
I would decide "OK, let's use that.".
And that's why we didn't try to develop a window system for GNU.
Now Unix in 1984 didn't have a window system,
but I had done work on window systems already,
on other computers,
and I decided that we should offer people a window system.
But fortunately X became available,
and, although it wasn't done by people,
it wasn't done for *our* sort of reasons,
it *was* available as free software,
it *was* fit for the purpose.
So I decided we would use X,
and we wouldn't develop our own window system.
Good, that's one big job we saved.
But there were still a lot of work to be done,
and so,
we were replacing
there were, there were many
pieces of the system that we had to replace
that, that we didn't get from anybody else.
And so,
as we replaced them,
one after another,
eventually it was useful
to make a list of what was still missing.
So,
I sat down with a Unix wizard,
and we made a list, and that became
the GNU task list.
'Course I added to it a bunch of other things
that I thought would be nice to have in a system which Unix didn't have.
Nowadays,
all those jobs of replacing pieces of Unix
are done.
But there are lots of things still in the task list if you're looking for something that might be useful to do.
Then,
by 1991,
the job was almost finished.
There was only one essential component that we didn't have,
and that was the kernel.
And we were working on a kernel.
But we chose a design that I *thought* would help us get it done faster,
but actually it had the opposite effect.
Uh, I chose to use an existing microkernel called "Mach"
as the basis, the lowest layer,
and on top of that write user programs
that, uh,
would implement the a, the features of the Unix kernel.
I, I should say, I chose to do this but I wasn't the one working on it myself,
uh, it was staff of the Free Software Foundation that were, were working on it.
But in any case,
it turned out that debugging these multi-threaded asynchronous programs sending messages to each other
was very difficult.
And,
the bootstrap environment was bad too, and,
there were lots of problems.
So,
the, it, it took many years,
to get the kernel to work at all.
*But*, fortunately,
people didn't have to wait for that,
because in 1991, Linus Torvalds wrote
a
a free kernel, well, he wrote a kernel,
using the tried and true monolithic
design.
And then he decided to release it as free software.
And this,
this meant,
that a kernel was available.
Now, we didn't know about this at first,
because he didn't contact us.
When he, and he called, oh, he called his kernel "Linux".
So, so, we didn't know about it, but he did announce it to other groups of people,
and they
of course were interested in seeing if they could make
a complete
system.
So they looked around
to see what else was available to put into that system.
And lo and behold, everything they needed was already there.
"What good fortune!" they thought.
So,
they then proceeded
to put Linux, the kernel,
into
the kernel-shaped *gap* in the GNU system.
But they didn't realize that that's what they were doing.
*They* thought they were taking all these different pieces of the system and putting them together *around Linux*.
They didn't realize, you see, that it was the GNU system that they were getting,
so they
called the result a "Linux system".
And so,
ironically,
the GNU system's goal was achieved,
and yet, at the same time,
a disaster happened.
The availability of Linux was a tremendous step forward because it made possible a complete free system,
which was
our goal, so our goal had been reached.
It was at that point possible,
to get a modern computer
and put on a free operating system and use the computer
without letting anyone put chains on you,
so the goal of the GNU project was achieved.
But, at the same time,
the fact that they *called* this system "Linux",
when really it was basically the GNU system,
was devastating for the GNU project,
because
*that* is when
the users
began to lose sight
of the connection between us and our work.
Until that time,
we had software, and we had our philosophy.
And the software called people's attention to the philosophy,
and the philosophy
encouraged people to contribute to the software.
So the two
tog, were promoting each other.
When people started calling the GNU system "Linux",
that broke this link.
So it,
the philosophy still encouraged people to develop free software,
but the, when people were using the free software, they didn't think
"I'm using GNU", they thought "I'm using Linux".
Essentially the focused all their attention on the kernel,
and lost sight of
the whole part we had done.
So, at this point the system began
encouraging a *different* philosophy,
which is the philosophy of Linus Torvalds,
who is basically an apolitical engineer;
he likes to work on what's cool.
He,
he enjoys having free software,
but he doesn't think it's a moral issue.
He doesn't encourage people
to
stand up and fight for their freedom.
And,
while it's true that that encourages some people to work on free software in some ways,
it doesn't s,
it doesn't spread,
*determination* to preserve your freedom.
Linus even writes some non-free software,
and says so in public.
So,
his philosophy is that that's OK.
Now,
sometimes people give me the advice,
they say,
"Why worry about who gets the credit,
whether it's Linus or the GNU project?
After all,
the important thing is that the job gets done.
So isn't,
it,
since the system,
isn't the important thing that the system exists?"
Well,
that advice is,
it's basically a wise principle, but it's based on
one mistaken assumption.
The important thing is *not* that the system exists
today,
it's what's going to happen
five or ten years from now,
whether we will continue
to have
a free operating system we can use on modern computers;
*that* is *not* assured.
It depends
on our doing hard work.
There are many challenges in our future.
We *can't* relax and say
"The job has been done, we can't lose anymore, we don't have to worry,
let's just relax and let things take their course."
In fact, freedom is *never* guaranteed, it *always* faces threats.
And people can *never* hold on to their freedom
unless they're *thinking* about it.
So what are some of these challenges that we face?
One of them is how to drink tea.
Uh,
but anyway,
Been carrying a backpack too much in the past few days,
all knotted up.
Hardware doesn't stand still.
New hardware products are developed, and old ones are discontinued.
And sometimes the new products
don't come
with specifications.
They'll sell you the hardware, and they won't tell you how to use it.
And, to me, that seems like a shocking, outrageous idea,
but it's not unusual,
and most people seem to be willing to accept it.
Unfortunately,
if the specs are not available,
it's hard to write free software to use that hardware.
So,
the question is, you know, "How are we going to ever get free software to support the new hardware devices?"
Well, there are two ways we can try to bring this about.
One of them is through reverse engineering.
A couple of the, uh, you know, it, a few programmers
can do a, a *lot* of work to figure out
how some *non*-free program is running that hardware,
and then they, having figured it out, they can write a free program to do the job.
But this is so much work,
that we can't count on people to do it unless they value the freedom that they will get.
You see,
these
hardware devices with secret specifications often,
although there's no *free* software to run them, often there is a *proprietary* driver to run them.
And if people think that a proprietary program is good enough,
why would they go to the trouble of making a free program?
You see,
our future ability to support these pieces of hardware
depends on what we value.
Well, it only takes a few people to do the work of reverse engineering,
but the rest of us can do something else that is a lot easier,
namely, we can refuse to buy that hardware until it's supported by free software; we can apply market pressure.
If there are 20 million of us,
we should have a lot of market pressure to apply,
*if*
we were organized to use it,
and *aware of the need* to use it.
But, most of us are not;
*most* of the, of these users have not been *exposed* to the idea
that we should insist on having a one hundred per cent free system;
most of them are perfectly happy, they,
they get the non-free driver and they say "It works, it's OK.".
So we fail to use
the power that we have.
So once again,
the future of our community depends on what we value.
This is not the only place where we face problems.
Uh,
nowadays,
a lot of people are adding non-free software to the system.
In fact,
nowadays you can find the combined GNU/Linux system -
the GNU system with Linux as the kernel, that is, -
you can find CD-ROMs in software stores
which have this system,
but those CD-ROMs almost always have some non-free software also.
The companies that package them,
have added this non-free software "to make it better",
they say.
And when they say that,
they're telling you that non-free software is OK.
There are lots of magazines about the comb, the GNU/Linux operating system,
'course, most of them call it "Linux",
and most of them are full of advertisements
for non-free software.
Now those advertisements are for many different products,
but there's one message that they *all* have,
and that is:
"Non-free software is good for you.
It's so good for you, you might even *pay* to get a copy."
And they call these things "value-added packages".
Which
makes a statement about values, it says:
"Practical convenience
is more important than your freedom."
I have different values,
so *I* call them
"freedom-subtracted packages"
[laughter]
because
once you've installed a free operating system and you are enjoying the freedom that we have worked for many years to give you,
you now have the opportunity to buckle on some chains
by installing these freedom-subtracted packages.
And,
and all of these companies and magazines,
they all support the "Open Source" movement, which doesn't *talk* about these issues.
Doesn't s,
doesn't say
"Non-free software is bad because it's putting chains on you.",
it just talks about whether it's convenient or not.
And they may convin, they *do* in fact convince a lot of people
t, to switch to using *some* free software,
because it's practical and convenient,
But when a p, when people have chosen free software for those
purely practical reasons,
they can easily switch back to non-free software any time *that* is more convenient.
And, you know, the people who work on non-free software,
they're not all stupid,
they're not all incompetent,
sometimes they can do a good job,
if you judge in a limited,
purely technical sense,
they can offer you programs that are
practical and convenient
and subjugate you.
But if you don't *care*
about the last part,
you might use them, you might even think it's good.
So,
the support we have gained,
we can lose it just as fast,
anytime the non-free software developers get ahead of us.
And there's a r,
a very spec, there's a specific reason that might help them get ahead of us.
And that
has to do with software patents.
Now software patents
are especially a problem in the US,
but the problem is beginning to some extent in Europe as well.
The danger is that
techniques
of programming,
algorithms,
features,
techniques of communicating over the network, all these things can be patented,
and when they're patented, it means
that some person or company has a monopoly on using them.
And we are not allowed to implement them.
Now,
the US patent office is totally incompetent, and they issue patents on trivial ideas every day.
But, even if you imagine a patent office that was smarter and where they did a "good job", so to speak,
suppose they *only* patented techniques that *really* are new.
Imagine if free software was not allowed
to use any technique or feature
that was *actually new* within the past 20 years.
So we were limited to writing the kinds of software that were in use 20 years ago.
How much
could we satisfy the users' needs that way?
Twenty years is a long time in software.
The *only* way free software has a chance, is if we
*block*
software patents.
Now there *is* an effort
to block
software patents
in Europe.
Uh, you should read about ww..., you should read the site
www.freepatents.org
And,
get involved,
form an organization,
organize small companies in Europe,
and *not* just free software companies, 'cause
a *lot* of small software companies see that software patents are dangerous for them,
'cause when you're writing a program that's a hundred thousand lines,
that means a lot of different things,
that somebody else might have patented already.
A lot of different points where you are vulnerable to being attacked.
It's also
a good c,
to compare it with
trying to cross a mine field.
Because,
at each step, chances are you will *not* step on a mine.
But your chances of getting across the whole mine field
without once stepping on a mine
get to be smaller and smaller
the bigger the thing is.
So,
this is very important,
*please* follow up on it.
So what happens, then,
if
there are certain nice features that free software can't have,
but the non-free software can?
Well, what does the,
the Free Software movement say about this? We say
"The software patents are an outrage because they're
interfering with our freedom."
What does the Open Source movement say?
They say
"Well, we told you that Open Source software was going to be more powerful and convenient, I guess we were wrong."
See, when people
start doing these things purely for the practical reasons offered by the Open Source movement,
they interpret the consequences of patents
as saying,
well, "they should go back to the non-free software.".
When people
support the Free Software movement, that is, when people want freedom for,
because they value freedom independently of practical convenience,
*then* the people will fight,
to
put an end to the software patents, they won't,
they won't take the patents as a reason why the whole idea of free software was a mistake.
So it's a real problem that, right now, most of the companies and magazines are supporting the fr,
the Open Source movement.
It's
going to up to us individuals
to spread the word about the Free Software movement,
if we want
to teach the people who are using a system
to value the freedom
which was the reason why the system exists.
Now, a further kind of problem happens
when people accept
a non-free program
as if it were an essential part of the system.
And this problem shows its worst form
when the non-free program is used as the basis for developing other software.
For example, if it's a library,
or if it implements a new programming language.
In,
in fact it's happened several times
that
some non-free program
was conveniently available,
and many people started using it as the basis to develop
free software,
and, in effect, they were falling into a trap,
because although their own software was free,
it was impossible to use that software
without the non-free program it was based on.
And that meant that this program, while free,
was useless for any free operating system.
We couldn't use it,
because we couldn't use the non-free
library
underneath it.
This first happened with "Motif"
back at, around 1989 or so.
Uh,
Motif
was a,
a GUI toolkit
and it was, it's,
it wasn't and still isn't free software,
but it was conveniently available to a lot of people.
And so they started basing their free software on it.
And I tried asking them "No, please don't use Motif.",
and occasionally I succeeded, but,
more often I failed.
So people started working on a free replacement for Motif,
which is called "Lesstif".
And,
a, it was about a couple of years ago that Lesstif got to the point
where it actually made most Motif applications run.
So,
that problem is solved after eight or nine years.
And then, a few years later, another such problem developed, which is the QT library,
which was not free software, but it was available "gratis" for certain purposes.
And people started
using it as the basis for a large free software project, called KDE,
so,
in effect,
K, oh, KDE was doing something very important,
developing a desktop,
and,
having made the decision to use QT,
they didn't want to, to decide that that was a mistake, so they had to convince themselves it was OK.
And so they started telling everybody else it was OK, and inviting more people to join them,
and make more software based on QT,
all of which could not be included in a completely free system.
But the danger was that that software would become a good desktop, and everybody would treat it as
an absolute essential for the system,
which would mean
pressure for everybody to use the non-free program QT.
So this
was
a very big problem and getting worse every week.
To address the problem,
the GNU project started two
activities,
two forms of counter-attack.
One
is we started developing a free replacement for QT,
called Harmony,
and the other is,
we started developing
a,
an alternative desktop.
And the reason we started using *both* approaches at once
is that this problem was so dangerous
that we had to maximize the chance that we would solve it.
Every free software project
is uncertain, you know, it may succeed, it may not,
it may just
get only half done and never be finished.
By having two parallel projects,
we increased the chance that one or the other would succeed in solving the problem.
As it happened,
the desktop Gnome
has become a success,
Harmony has not become a success yet.
Uh, people are still working on it.
About a, about half a year ago
QT was re-released under a new license that makes it free software.
I am convinced, although they don't say so,
that this was in response to the success
of our defensive actions.
Because QT is available as free software,
KDE now *can* be used in a free system.
So,
we managed to get them out of the trap that they were in,
even though *they* weren't trying to get out of the trap.
But, you know, it's much easier
to recognize these traps and stay out of them,
than to get out of them once you're in them.
And so it's really important to spread the word
that this is an issue
so that people will have their eyes open,
and not walk into these traps.
The most recent trap of this kind was Java.
When Java became available, it was so sexy,
that a lot of programmers started
working on Java,
and writing their free software in Java,
ignoring the fact
that this meant that their software couldn't run
on a free operating system,
because Sun's implementation of Java
was not free.
You know, it was *available*,
You could *run* Sun's Java implementation *on* GNU/Linux,
but that means you no longer have a free operating system
because Sun's Java is not free.
And likewise, Blackdown,
which is *currently* the popular port of Sun's Java software
*to* GNU/Linux,
that is *not* free software, you shouldn't be using it.
Now,
of course,
in, the only thing we could do,
was
try to dig a ramp to get people out of this trap.
And so, we're developing
free software support Java.
This includes
the virtual machine "Kaffe",
the compiler "Kopi"
and GNU Classpath, providing libraries.
But,
we still don't have *all* of the, the library facilities that Sun provides.
So if you want to develop a Java program,
and you want to make it useful
for the free world
you should
use
free software as the platform to develop it.
That way, you will make sure you use only the facilities available in free software.
Otherwise,
you are liable to
accidentally, without even thinking about it
use some library we don't have.
And then your program won't run on a free system.
And your program will serve as pressure for users to install the non-free Java implementation.
So think about that,
every Java program
that uses the non-free facilities
is a
pressure on users
to install the non-free pr, software to support Java.
So what you do has effects on other people.
And once again,
the future of our community depends on our values.
Finally, we're going to have to work politically,
to convince governments
*not* to pass laws *prohibiting* free software.
We've shown
what people did not believe,
we're capable of developing free software for a wide spectrum of uses,
but we can't do it if governments prohibit it.
So if
governments
adopt software patents, and
various different features become off-limits to us,
we can't do them.
Or, there, there are other threats, there are other reasons why governments are
proposing to prohibit us from doing certain jobs.
For example,
playing DVDs.
DVDs come with data encoded in a secret format.
The reason it was kept a secret was
so that
all the, everyone who wanted to make a DVD pla, player,
could be forced to promise
to build certain restrictions into those DVDs, to restrict the users.
And in particular, one thing that they're *not* allowed to do is release the source code for the player.
So,
the result is,
that, uh, there was no way to play a DVD
with free software.
Then a few people in Europe got together and *figured out* the format and *wrote* a free program.
One of them is Jon Johansen
in Norway
a sixteen-year-old
wizard
uh, who did a part of the job.
Then,
so, OK, so they,
the free software was released,
and immediately,
the movie companies started threatening everybody who published it,
and suing people who published it.
And not only that,
but they even managed to pressure the Norwegian government
into
threatening Jon Johansen with imprisonment.
He's been accused of a crime
of telling us
how to play our DVDs.
Now this shows the kind of threat we face, in the future,
and we have to meet it,
very vigorously.
Because of this, I have some
handouts here
about this problem
and I hope that,
well, I, it's probably better if, if somebody takes these to the back,
so that when people leave,
uh,
they can pick them up, is that feasible?
Yeah.
What should we do?
We have a table, outside.
You have a table. So, so these should be taken to the table,
Yeah.
where they can be given out.
So would you do that?
Yeah.
Now, one of these describes the situation,
one of them is a sample letter,
which has been written in Swedish.
And, it's best if you write your own letter,
in your own words,
saying what you think about the issue.
But,
if you don't do that, it's still good for something if you sign
the letter we've written.
So please do one or the other.
It's a letter to the prime minister of Norway,
saying that the charges against Jon Johansen should be dropped,
and he should be given an award
for public service.
[laughter]
[applause]
And if you have friends in Norway,
ask them to write, too.
So,
Increasingly we are going to have to fight
in the traditional political arena
to preserve our freedom.
And it's going to be hard work.
People who are only thinking about practical convenience
are not going to bother.
So,
once again,
our community's future depends on what we value.
I hope
that you will
stand up for the Free Software movement,
and spread the word about freedom.
And, also, you know,
if you refer to
the operating system we developed as
"GNU/Linux"
and correct other people if they call it just "Linux".
By calling attention to the GNU project,
you will lead more people to see what we say about freedom.
And that way you'll contribute to,
to the activities of defending freedom.
So at this point
I should introduce my alter ego.
[laughter]
[applause]
I'm Saint IGNUcius
of the Church of Emacs.
[laughter]
I bless your computer, my child.
[laughter]
I should explain
that
Emacs was initially a text editor
which became a way of life, and a religion.
And so, as any religion should, it now has a schism,
and, it also has saints.
No gods, yet, fortunately.
[laughter]
In the Church of Emacs,
well, one advantage of the Church of Emacs, why you might consider joining, is
that being a saint in the Church of Emacs does *not* require celibacy.
[laughter]
So for some of you that make a difference.
[laughter]
Some of us are involuntarily celibate.
[laughter]
Uh,
but it *does* require a moral commitment to live a life of purity.
You have to make a commitment
to exorcize
the evil proprietary system from your computer
and then, install
a wholly free operating system,
[laughter]
where "wholly" could be spelled H O L Y or
W H O L L Y,
and then only install
free software on top of that.
If you make that commitment and live by it,
Then you too
are a saint
and you may eventually have a halo.
[laughter]
And by the way, please don't ask me any questions about what kind of disk this came from or what data was on it,
'cause I don't know.
However, I can assure you that,
no non-free software is accessible on it today.
[laughter]
So at this point...
It's hard work, actually, wearing the halo.
At this point,
I should ask for questions.
If you had a refrigerator, or a car,
I'm sorry, I can't hear you. What did you say?
If you had a VCR, or if, eh, car, or a
Or a what?
Have, having software in it,
how can you make sure if it's not free?
Ah.
OK.
I, I had to think about
where to draw the line
between what counts as a computer
and which things
inside pieces of hardware I can ignore.
And I came to the conclusion
that
if you can install software on it, if you can load software into it,
or, if you *should* be able to load software into it
except that somebody else deliberately tried to stop you,
*then*
it counts as a real computer,
and I should insist on only using it with free software.
But if it's a sort of
one chip which contains a ROM,
a kind of thing that might be inside a watch or a microwave oven,
then, I figured,
for *me* it's not acting like a computer and so I don't have to consider it as one.
So that's where I decided to draw the line.
Now,
one of the things about making moral judgments about the world is that you're constantly coming across gray areas.
Gray areas are not something to be afraid of, they're normal,
but you have to co, you have to deal with them somehow.
And this is how I've dealt with that particular gray area.
Have you had any problems with people not, or companies not, not upholding the copyleft?
Yes, we have, in fact,
several times a year
we find people disobeying the license,
and, so far,
they have all come into compliance
after either I had a discussion with them, or we had our lawyers send them a couple of letters.
[laughter]
So, so far, it has never been necessary to sue them.
[unintelligible]
As the author of GCC, how do you view the future of C,
in view of modern,
or more modern, languages like C++ or Java?
Well, C++ is a lousy language.
[laughter]
It's
a lousy job of language design; sloppy job of language design.
[applause]
Its grammar is ambiguous!
And, you know, has, these just various different constructs
that end up looking syntactically identical. So you just have to arbitrarily heuristically say, you know,
"We're going to interpret it *this* way instead of *that* way.".
And it's
it has gratuitous, trivial, incompatibilities with C.
Now, if you're going to make an improved version of C,
the most obvious thing is, you should, you should aim for upward compatibility,
unless
there is some
major reason why you can't do that.
And yet in C++ you find these
trivial changes that are of no *great* benefit,
Y'know, maybe they were slightly better, but the point is,
compatibility is more important than that.
So...
And it has *so* many features.
And it's focused *primarily*
on
making things convenient and optimized in the case
where you *know* the type of... ...every way to work with various types to be defined by the user.
Well, of course, C++ *can* do that,
But its
*mainly aimed* at the ca, at the *other* case,
at the case where you *do* know all the types at compile time.
So, it was based on,
I think, a mistake in emphasis.
Uh, so because of this I don't really *recommend* that people should *use* C++.
Now,
I would *expect* that Java is probably better, I've never learned it.
Uh, what language is Hurd written in?
The Hurd is written in C.
If I want to write something
and I think that Lisp is not suitable
'cause it
[laughter]
needs more speed
Then I'm going to write in C.
If I want a powerful language, well,
all those others are not as powerful as Lisp.
In the m,
the mo,
you start up
Lisp, and it starts doing a read-eval-print loop.
Well, here we have three *basic* facilities, 'read', 'eval', and 'print',
and those other languages don't have *any* of them.
They don't have anything *like* them, they don't even have the *concept*.
You know,
in Java, is there a, is there 'read'?
Is there 'eval'?
Is there 'print'?
I don't think so.
There's no
representation for a Java program as data,
it's just *text*.
So there's no meaning for a 'read' function.
You know,
and people have known these things since 1960!
And, and yet people keep designing new language which don't have them.
We have heard the story about how you came up with the GNU project,
but is there a story behind the copyleft?
Either that or...
Well,
the *idea* of copyleft I was thinking about for a couple of years
before I started GNU, I was looking for some way that the community
could defend itself against being abused and taken advantage of,
a way that the community could avoid being a doormat.
'Cause it, it's discouraging to feel that you're a doormat, and I felt that
if we were
doormats, if we had no way to defend ourselves,
then
it would feel too discouraging and we wouldn't get enough people
to succeed.
But the *word* "copyleft"
I got from a, a letter that was sent to me,
I think it was by Don Hopkins,
uh,
and,
he, he wrote a letter to me, and *on* the letter,
*on the envelope*, he wrote all sorts of funny things.
And one of them was
"Copyleft - all rights reversed".
[laughter]
And I saw that word "copyleft", and I thought "This is exactly the right name for
what I've been thinking of.".
And so,
because
You know, I, I would rather have it "Copyleft - all *wrongs* reversed".
[laughter]
Uh, the diff, the different distributions of Linux,
uh, has lots of [unintelligible]
products, but, uh, the creation of, well, [unintelligible]
and, and, does your speak of that
As I know there's only *one* distribution of Linux.
Yes, but...
That's released by, the one that
Linus and Alan Cox release
is *the* distribution of Linux, right?
Yes, I was talking [unintelligible]
I'm sorry, you're talking about,
oh, you're talking about the different versions of the GNU/Linux operating system...
[laughter]
[applause]
Please don't call
that system "Linux".
[unintelligible]
Is there any
thoughts of
uh, creating a distribution
for the,
Free Software Foundation
that ha, has a name
more, uh...
No.
And let me explain why.
First of all,
we don't want to develop another GNU/Linux distribution,
because it would be a substantial amount of work, and it's not clear that there's any technical reason to do it.
Uh,
there's already a distribution which
*almost*
fits
our
ethical
goals,
and that is Debian.
So,
which, by the way, also
recognizes that it's a distribution of GNU/Linux.
Uh, so instead, d, instead of making yet another one, I'd rather approach it by cooperating with the Debian developers,
and asking them to make small changes
so that it becomes suitable for us to use.
The other thing is,
sometimes people ask me "Why not make *one* distribution, and *call* it 'GNU/Linux'?"
Well,
if I did *that*,
then people would have the other, the impression,
that all the *others* are *not* GNU/Linux. I want people to know that *all* of these distributions
are versions of the combined
GNU/Linux system.
"GNU/Linux" means it's the combination of GNU and Linux; that's what the slash is for.
You, you could use a plus sign if you prefer, that would also be appropriate.
Are you dropping development of the Unix, uh,
GNU kernel ?
"Of the Unix-GNU"? I don't understand.
...the kernel that you work...
No,
people are still working on the GNU Hurd,
but not tremendously actively.
However, it does
run, more or less, and
there are apparently an increasing number of people starting to play with it,
and building more packages to run on it, so you c, at this point you can get a fairly complete
GNU/Hurd system.
And
but the thing is, what you'll see is that it's
basically the same as GNU/Linux,
unless you want to actually play with the
extra features of the kernel.
Like, you know, one of the advantages of the Hurd is that
in effect, you have, you can,
write your own file systems.
Because each file system is just another separate user program
that communicates with messages.
You know, the system comes with some of them,
But you can write your own and the system will happily use yours as well.
So, there are some interesting technical advances in the kernel,
If you don't use them, it's basically the same as running GNU/Linux,
as long as it doesn't crash.
[laughter]
Yeah, I kind of have two questions for you.
The first one, when I started
using
GNU Emacs, about ten years ago, I was told that it's for
"Eight Megabytes And Constantly Swapping".
Is that correct?
Yeah.
But you know, computer memory is getting bigger and bigger and cheaper and cheaper so who cares?
[laughter]
It's amaze...
It also stands for "Emacs Makes All Computing Simple".
And it stands for maybe ten or 20 other things as well.
And I think that Emacs comes with a list of some of them.
But,
this, I haven't [unintelligible]
more, uh,
uh,
[unintelligible], i guess,
you, you're talking about your General Public License,
but you also have a lesser, you know, public license.
Can you explain the occurrence of that...
The Lesser General Public License
gives permission
to link the program
with non-free software.
The ordinary, the GNU General Public License,
does *not* give permission for that.
Now, why do we sometimes use the Lesser GPL?
It's basically a strategic compromise.
That is, in a few cases,
it looks like
we will
have
better *overall* success for the Free Software movement,
if we
make a concession of a very *localized* nature,
permitting
linking a *particular* package
into non-free software.
So we do that by releasing *that package* under the Lesser GPL.
Uh, what's your opinion about software that is closed source for a certain limited time,
Well,
...released to...
I don't want to use the term "closed source", because again,
...no big deal...
that basi, gives your all, allegiance to the Open Source movement, and
I don't want to wear their badge, because
these day, you know, the Free Software movement has to *struggle* to be heard at all.
And so, by using the term so, you know, if you,
if you use terms like "open source" or "closed source" you are essentially supporting the Open Source movement.
If you use the terms "free" and "non-free" you're supporting the Free Software movement.
Now, you, of course, have a choice, which you want to do,
but *I* have to make it clear which one *I'm* doing.
So, I'm gonna support the Free Software movement, so I can,
i can't answer *that* question, but
if you ask the question of
"What do I think of a program that's released as non-free temporarily,
and *then* gets made free?",
well,
first of all, the most important,
*assuming* that the period of time is *short enough*,
like, not much more than a year,
then
I think that this *does* effectively and usefully contribute to the free software world,
because we can *afford* to wait a year or so.
'Course, those of us who only want to use free software, we will *not* use the newer version.
We will wait, we will use the year-old free version.
But a year is not that long a period of time, so
the fact that we get these contributions
delayed by a period of one year,
it's *still* a useful contribution.
So I encourage people, if they're n,
if people are *unwilling* to release the new versions as free software
I sometimes encourage them
to use that
delayed-release approach, because it's better for us than no contribution at all.
On the other hand, if they were going to wait *three* years,
that's such a long time, it's,
basically destroys the whole point.
So it, it has to be a short enough period of time that,
that the old version is, is,
is reasonable to use.
You know, it feels like it's, it's one, one of the ways to keep, uh,
the software,
software patents away,
to keep your source for yourself for a certain amount of time.
Well, it doesn't, unfortunately.
No, it doesn't help.
*Nothing* is going to help against software patents.
Except to make sure they don't happen.
Uh, the problem is that,
you know,
yeah, you might put it off for a year that way,
but eve, you know, they might be able to tell just from *running* your program that it infringes the patent.
Oh, for a lot of patents, it's totally obvious, you know, there are patents covering user-visible features.
You don't need the source code to see
that *those* patents are being infringed.
But instead of patenting the software, you delay the release...
There's no "instead".
It's a mistake to think that it's a choice of one or the other.
No,
the, this temporary delayed release
is
an alternative to keeping the software *proprietary* forever.
And,
for that,
in that
way, it serves a purpose.
Sometimes I convince companies
that *were*
making their software proprietary
to release it as free software *after a delay*,
and that's a big step forward.
However, it has nothing to do with the issue of software patents, those are separate issues.
This will *not* protect us
from software patents, it will not help
in any way
with the problem of software patents.