
The Danger of Software Patents
by
Richard M. Stallman
Speech by Richard Stallman at Cambridge University,
25 March 2002
You might have been familiar with my work on free software. This
speech is not about that. This speech is about a way of misusing
laws to make software development a dangerous activity. This is
about what happens when patent law gets applied to the field of
software.
It is not about patenting software. That is a very bad way, a
misleading way, to describe it, because it is not a matter of patenting
individual programs. If it were, it would make no difference, it
would be basically harmless. Instead, it is about patenting
ideas. Every patent covers some idea. Software patents are
patents which cover software ideas, ideas which you would use in
developing software. That is what makes them a dangerous obstacle
to all software development.
You may have heard people using a misleading term, "Intellectual
Property". This term, as you can see, is biased. It makes
an assumption that whatever it is you are talking about, the way to
treat it is as a kind of property, which is one among many
alternatives. This term "Intellectual Property" pre-judges the
most basic question in whatever area you are dealing with. This
is not conducive to clear and open minded thinking.
There is an additional problem [in that term] which has nothing to do
with the promotion of any one opinion: It gets in the way of
understanding even the facts. The term "intellectual property" is
a catch-all; it lumps together completely disparate areas of law such
as copyrights and patents, which are completely different. Every
detail is different. It also lumps together trademarks which are
even more different, and various other things more or less commonly
encountered. None of them has anything in common with any of the
others. Their origins historically are completely separate; the
laws were designed independently; they covered different areas of life
and activities; the public policy issues they raise are completely
unrelated. So, if you try to think about them by lumping them
together, you are guaranteed to come to foolish conclusions.
There is literally no sensible intelligent opinion you can have about
"Intellectual Property". [So] if you want to think clearly, don't
lump them together. Think about copyrights, and then think about
patents. Learn about copyright law, and separately learn about
patent law.
To give you some of the biggest differences between copyrights and
patents; Copyrights cover the details of expression of a work.
Copyrights don't cover any ideas. Patents only cover ideas
and the use of ideas. Copyrights happen
automatically. Patents are issued by a patent office in
response to an application.
Patents cost a lot of money. They cost even more paying the
lawyers to write the application than they cost to actually
apply. It takes typically some years for the application to get
considered, even though patent offices do an extremely sloppy job [of]
considering [them].
Copyrights last tremendously long. In some cases they can last as
long as 150 years. Patents last 20 years, which is long enough
that you can outlive them but still quite long by the timescale of a
field such as software. Think back about 20 years ago when the PC
was a new thing. Imagine being constrained to develop software
using only the ideas which were known in 1982.
Copyrights cover copying. If you write a novel which turns out to
be word-for-word the same as Gone With The Wind, and you can prove you
never saw Gone With The Wind, that would be a defence to any accusation
of copyright infringement.
A patent is an absolute monopoly on the use of an idea. Even if
you could prove you had the idea on your own, that would be entirely
irrelevant if the idea is patented by somebody else.
I hope you will forget about copyrights for the rest of this talk,
because this talk is about patents, and you should never lump together
copyrights and patents. It is about your understanding of these
legal issues. It is like what would happen in your understanding
of practical chemistry if you confused water and ethanol.
When you hear people describe the patent system, they usually describe
it from the point of view of somebody who is hoping to get a
patent--what it would be like for you to get a patent, what it would be
like for you to be walking down the street with a patent in your
pocket, so that every so often you can pull it out and point it at
somebody and say "Give me your money!"
There is a reason for this bias, which is that most of the people who
will tell you about the patent system have a stake in it, so they want
you like it. There is another reason: the patent system is a lot
like a lottery, because only a tiny fraction of patents actually bring
any benefit to those who actually hold the patents. In fact, 'The
Economist' once compared it to a "time-consuming lottery." If you
have seen ads for lotteries, they always invite you to think about
winning. They don't invite you to think about losing, even though
losing is far more likely. It is the same for ads for the patent
system. They always invite you to think about being the one who
wins.
To balance this bias, I am going to describe the patent system from the
point of view of its victims--that is, from the point of view of
somebody who wants to develop software but is forced to contend with a
system of software patents that might result in getting sued.
So, what is the first thing you are going to do after you have had an
idea of what kind of program you are going to write?
The first thing you might want to try to do with the patent system is
find out what patents may cover the program you want to write.
This is impossible.
The reason is that some of the patent applications that are pending are
secret. After a certain amount of time they may get published,
like 18 months. But that is plenty of time for you to write a
program, and even release it, not knowing that there is going to be a
patent and you are going to get sued.
This is not just academic. In 1984, the compress program was
written, a program for data compression. At the time, there was
no patent on the LZW compression algorithm which it used. Then in
1985, the U.S. issued a patent on this algorithm and over the next few
years, those who distributed the compress program started getting
threats.
There was no way that the author of compress could have realised that
he was likely to get sued. All he did was use an idea he found in
a journal, just as programmers had always done. He hadn't
realised that you could no longer safely use ideas that you found in a
journal.
Let's forget about that problem. The issued patents are published
by the patent office, so you can find the whole long list of them and
see exactly what they say. You couldn't actually read the whole
list as there are too many of them. In the U.S., there are
hundreds of thousands of software patents. There is no way you
can keep track of what they are all about. You would have to try
to search for relevant ones.
Some people say that should be easy in these modern days of
computers. You could search for key words and so-on. That
one works to a certain extent. You will find some patents in the
area. You won't necessarily find them all however.
For instance, there was a software patent (which may have expired by
now) on natural order recalculation in spreadsheets. This means
basically that when you make certain cells depend on other cells, it
always recalculates everything after things it depends on, so that
after one calculation, everything is up to date. The first
spreadsheets did their recalculation top-down, so if you made a cell
depend on a cell lower down, and you had a few such steps, you had to
recalculate several times to get the new values to propagate upwards.
(You were supposed to have things depend on cells above them.)
Then someone realised, why don't I do the recalculation so that
everything gets recalculated after the things it depends on? This
algorithm is called topological sorting. The first reference I
could find to it is in 1963. The patent covered several dozen
different different ways you could implement topological sorting.
But you wouldn't have found this patent by searching for
"spreadsheet." You couldn't have found it by searching for
"natural order" or "topological sort." It didn't have any of
those terms in it. In fact, it was described as a method of
"compiling formulas into object code." When I first saw it, I
thought it was the wrong patent. Let's suppose that you got a list of
patents, so you want to see what you are not allowed to do. When
you try studying these patents, you will discover they are very hard to
understand, as they are written in tortuous legal language whose
meaning is very hard to understand. The things patent offices say
often don't mean what they seem to mean.
There was an Australian government study of the patent system in the
1980's. It concluded that aside from international pressure,
there was no reason to have a patent system--It did no good for the
public--and recommended abolishing it if not for international
pressure. One of the things they cited was that engineers don't
try reading patents to learn anything, as it is too hard to understand
them. They quoted one engineer saying "I can't recognise my own
inventions in patentese".
This is not just theoretical. Around 1990, a programmer named
Paul Heckel sued Apple claiming that Hypercard infringed a couple of
his patents. When he first saw Hypercard, he didn't think it had
anything to do with his patents, with his "Inventions". It didn't
look similar. When his lawyer told him that you could read the
patents as covering part of Hypercard, he decided to attack
Apple. When I gave a speech about this at Stanford, he was in the
audience. He said, "That's not true, I just didn't understand the
extent of my protection!" I said "Yes, that's what I said."
So, in fact, you will have to spend a lot of time talking with lawyers
to figure out what these patents prohibit you from doing.
Ultimately they are going to say something like this: "If you do
something in here, you are sure to lose; if you do something here
[sweeps out a larger area], there is a substantial chance of losing,
and if you really want to be safe, stay out of this area [an even
larger area]. And, by the way, there is a substantial element of chance
in the outcome of any law suit".
Now, that you have a predictable terrain for doing business(!) what are
you going to do? Well, there are three approaches you might try.
Any of which is applicable in some cases.
They are 1)Avoiding the patent 2)Licensing the patent 3)Overturning the
patent in court.
Let me describe these three approaches and what makes them workable or
unworkable
1) Avoiding the patent. That means don't use the idea that the
patent covers. This can be easy or hard, depending on what that
idea is.
In some cases, a feature is patented. Then you avoid the patent
by not implementing that feature. Then it just matters how
important is that feature.
In some cases, you can live without it. A while ago, the users of
the word processor XyWrite got a downgrade in the mail. The
downgrade removed a feature which allowed you to pre-define
abbreviations. That [is,] when you typed an abbreviation followed
by a punctuation character, it would immediately replace itself with by
some expansion, so that you could define the abbreviation for some long
phrase, type the abbreviation then the phrase will be in your
document. They wrote to me about this because they knew the Emacs
editor has a similar feature. In fact, it had it since the
70's. This was interesting as it showed me that I had at least
one patentable idea in my life. I knew it was patentable because
somebody else patented it afterward!
Actually they tried these various approaches. First they tried
negotiating with the patent holder, who turned out not to negotiate in
good faith. Then they looked at whether they could have a chance
at overturning the patent. What they decided to do was to take
out the feature. You can live without this feature. If the
word processor lacks only this feature, maybe people will still use
it. But as various features start getting hit, eventually you end
up with a program people think is not very good and they are likely to
reject it.
That is a rather narrow patent on a very specific feature. What
do you do with the British Telecom patent on traversing hyperlinks
together with dial-up access? Traversing hyperlinks is absolutely
essential to a major use of computers these days. Dial up access
is also essential. How do you do without this feature, which, by
the way, isn't even one feature, it is really a combination of two just
arbitrarily juxtaposed? It is rather like having a patent on a
sofa and television in the same room.
Sometimes the idea that's patented will be so broad and basic that it
basically rules out an entire field. For instance, the idea of
Public Key Encryption which was patented in the U.S. The patent
expired in 1997. Until then, it largely blocked the use of Public
Key Encryption in the U.S. A number of programs which people
started to develop got crushed--they were never really available
because the patent holders threatened them. Then, one program got
away, the program PGP which initially was released as free
software. Apparently, the patent holders, by the time they got
around to attacking, realised they might get too much bad
publicity. So they imposed restrictions, making it for
non-commercial use only, which meant it couldn't catch on too
much. They greatly limited the use of Public Key Encryption for a
decade or more. There was no way around that patent. There
was nothing else you could do like that.
Sometimes a specific algorithm gets patented. For instance, there
is a patent on an optimised version of the Fast Fourier
Transform. It runs about twice as fast. You can avoid that
by using an ordinary FFT in your program. That part of the
program will take twice as long. Maybe that doesn't matter, maybe
that is a small part of the program's running time. Maybe if it
is twice as slow, you won't really notice. Or maybe your program
won't run at all as it will take twice real time to do it's job.
The effects vary.
In some cases, you can find a better algorithm. This may or may
not do you any good. Because we couldn't use compress, we started
looking for an alternative compression algorithm. Somebody wrote
to us saying he had one; he had written a program and decided to
contribute it to us. We were going to release it. Just by
chance, I happened to see a copy of the New York Times, it happened to
have the weekly patent column in it. I didn't see a copy of the
Times more than once every few months. So I looked at it and it
said someone had got a patent for "Inventing a new method of
compressing data". I figured I better take a look at this
patent. I got a copy and it turned out to cover the program that
we were just a week away from releasing. That program died before
it was born.
Later on we did find another algorithm which was unpatented. That
became the program gzip, which is now effectively the de-facto standard
for data compression. As an algorithm to use in a program for
data compression, it was fine. Anyone who wanted to do data
compression could use gzip instead of compress.
The same LZW compression algorithm was also used in image formats such
as the GIF format. But there, because the job people wanted to do
was not to just compress data but to make an image that people could
display with their software, it turned out extremely hard to switch
over to a different algorithm. We have not been able to do it in
10 years! Yes, people used the gzip algorithm to define another
image format, once people started to be threatened with law suits for
using GIF files. When we started saying to people stop using GIF
files, switch over to this, people said "We can't switch. The
browsers don't support the new format yet". The browser
developers said "We're not in a hurry about this. After all,
nobody is using this new file format".
In effect, society had so much inertia in the use of the GIF format, we
have not been able to get people to switch. Essentially, the
community's use of the GIF format is still pushing sites into using GIF
format with the result that they are vulnerable to these threats.
In fact, the situation is even more bizarre. There are in fact
two patents covering the LZW compression algorithm. The patent
office couldn't even tell they were issuing two patents on the same
thing, they couldn't keep track. There is a reason for this: it
takes a while of study of these two patents to see that they really
cover the same thing.
If they were patents on some chemical process, it would be much
easier. You could see what substances were being used, what the
inputs were, what the outputs were, which physical actions are being
taken. No matter how they are described, you'd see what they were
and then you would see they are similar. If something is purely
mathematical, there are many ways of describing it, which are a lot
more different. They are not superficially similar. You
have to really understand them to see they are really talking about the
same thing. The patent office doesn't have time. The U.S
patent office as of a few years ago was spending on average 17 hours
per patent. This is not long enough to think carefully about
them, so of course they make mistakes like that. In fact, I told
you about the program that died before it was born. That
algorithm also had two programs issued for it in the U.S.
Apparently, it is not that unusual.
Avoiding the patents may be easy, may be impossible. It may be
easy but it makes your program useless. It varies depending on
the situation.
Here is another point I should mention: Sometimes a company or
consortium can make a format or protocol the de-facto standard.
Then, if that format or protocol is patented, that is a real disaster
for you. There are even official standards that are restricted by
patents. There was a big political uproar last September when the World
Wide Web consortium was proposing to start adopting standards that were
covered by patents. The community objected so they reversed
themselves. They went back to insisting that any patents had to
be freely implementable by anyone and that the standards had to be free
for anyone to implement. That is an interesting victory. I
think that was the first time any standards body has made that
decision. It is normal for standards bodies to be willing to put
something in a standard which is restricted by patents and people are
not allowed to go ahead and implement it freely. We need to go to
other standards bodies and call on them to change their rules.
2) Licensing the patent. The second possibility instead of
avoiding the patent is to get a license for the patent. This is
not necessarily an option. The patent holder does not have to
offer you a license, it is not required. 10 years ago, the League
for Programming Freedom got a letter asking for help from somebody
whose family business was making gambling machinery for casinos, and
they used computers back then. He received a threat from another
company that said, "We have a patent. You are not allowed to make
these things. Shut down!"
I looked at this patent. It covered having a number of computers
on a network for playing games such that each computer supported more
than one game and allowed you to play more than one game at a time.
You will find patent office really thinks there is something brilliant
about doing more than one of anything. They don't realise that in
computer science, that's the most obvious way to generalise anything.
You did it once, so now you can do it any number of times, you can make
a subroutine. They think that if you do anything more than once,
that somehow means you are brilliant and that nobody can possibly argue
with you and that you have the right to boss them around.
Anyway, he was not offered a licence. He had to shut down.
He couldn't even afford really to go to court. I would say that
particular patent was an obvious idea. It is possible that a
judge might have agreed, but we will never know because he could not
afford to go to court.
However, a lot of patent holders do offer licenses. They often
charge a lot of money for that though. The company licensing the
natural order recalculation patent was demanding 5% of the gross sales
of every spreadsheet in the U.S. I am told that was the cheap
pre-lawsuit price--if you actually made them sue you and they won,
they'd demand more. You might be able to afford that 5% for
licensing this one patent, but what if you need to license 20 different
patents to make the program? Then all the money you take in goes on
patents. What if you need to license 21 patents?
People in business told me that practically speaking, 2 or 3 of them
would make any business unfeasible.
There is a situation where licensing patents is a very good
solution. That is if you are a multinational
mega-corporation. Because these companies own a lot of patents,
and they cross-license with each other. That way, they escape
most of the harm that the patent system does and they only get the good.
IBM published an article in Think magazine--I believe it was issue No.
5 of 1990--on IBM's patent portfolio, which said that IBM got two kinds
of benefit from it's 9000 U.S. patents. (I believe the number is
larger today.) These were, first, collecting royalties and
second, getting "access to the patents of others." They said that
the latter benefit is an order of magnitude greater. So the
benefit that IBM got from being allowed to use the ideas that were
patented by others was 10 times the direct benefit IBM could get from
licensing patents.
What does this really mean? What is the benefit that IBM gets from this
"access to the patents of others"? It is basically the benefit of
being excused from the trouble that the patent system can cause
you. The patent system is like a lottery. What happens with
any given patent could be nothing, could be a windfall for some patent
holder or a disaster for someone else. But IBM being so big
[that], for them, it averages out. They get to measure the
average harm and good of the patent system. For them, the trouble
of the patent system would have been 10 times the good.
I say "would have been" because IBM through cross-licensing avoids
experiencing that trouble. That trouble is only potential, it
doesn't really happen to them. But when they measure the benefits
of avoiding that trouble, they estimate it as 10 times the value of the
money they collect from their patents.
This phenomenon of cross-licensing refutes a common myth, the myth of
the "starving genius", the myth that patents "protect" the "small
inventor". (Those terms are propoganda terms. You shouldn't
use them.)
The scenario is like this: Suppose there is a "brilliant" designer of
whatever. Suppose he has spent "years" starving in the attic
designing a new wonderful kind of whatever, and now wants to
manufacture it, and isn't it a shame the big companies are going to go
into competition with him, take away all the business, and he'll
"starve".
I have to point out that people in high tech fields are not generally
working on their own and that ideas don't come in a vacuum, they are
based on ideas of others; and these people have pretty good chances of
getting a job if they need to these days. So this scenario, the
idea that a brilliant idea came from this brilliant [person] working
alone is unrealistic, and the idea that he is in danger of starving is
unrealistic. But it is conceivable that somebody could have an
idea and this idea along with 100 or 200 other ideas can be the basis
of making some kind of product, and that big companies might want to
compete with him.
So let's see what happens if he tries to use a patent to stop
them. He says "Oh No, IBM. You cannot compete with
me. I've got this patent." IBM says, "Let's see.
Let's look at your product. Hmmm. I've got this patent and
this one and this one and this one and this one and this one, which
parts of your product infringe. If you think you can fight
against all of them in court, I will just go back and find some
more. So, why don't you cross license with me?" And then
this brilliant small inventor says "Well, OK, I'll cross
license". So he can go back and make these wonderful whatever it
is, but so can IBM. IBM gets access to his patent and gets the
right to compete with him, which means this patent didn't "protect" him
at all. The patent system doesn't really do that.
The mega-corporations avoid the harm of the patent system; they see
mainly the good side. That is why they want software patents:
they are the ones who will benefit from it. But if you are a
small inventor or work for a small company, the small company will not
be able to do this. Small companies cannot get enough patents to
do this.
Any given patent is pointing in a certain direction. So if a
small company has patents pointing there, there and there and somebody
over there points a patent at them and says give me your money, they
are helpless. IBM can do it [retaliate] because with 9000
patents, they are pointing everywhere; no matter where you are, there
is probably an IBM patent pointing at you. So IBM can almost
always make you cross license. Small companies can only
occasionally make someone cross-license. They will say they want
patents for defensive purposes but they won't get enough to be able to
defend themselves.
There are cases where even IBM cannot make someone cross-license.
That is when there is a company whose sole business is taking a patent
and squeezing money out of people. The company that had the
natural order recalculation patent was exactly such a company.
Their sole business was to threaten to sue people and collect money
from people who were really developing something.
There are no patents on legal procedures. I guess the lawyers
understand what a pain it would be to have to deal with the patent
system themselves. The result is that there is no way to get a
patent to make that company cross license with you. So they
go around squeezing everyone. But I guess companies like IBM
figure that is part of the price of doing business so they can live
with it.
So that is the possibility of licensing a patent, which may or may not
be possible, and you may or may not be able to afford it
The third possibility 3)Overturning a patent in court.
Supposedly, in order to be patented, something has to be new, useful
and unobvious. That is the language used in the U.S.; I think other
countries have other language which is pretty much equivalent to
it. Of course, when the patent office gets into the game, they
start interpreting "new" and "unobvious". "New" turns out to mean
"We don't have it in our files", and "unobvious" tends to mean
"unobvious to someone with an I.Q of 50".
Somebody who studies most of the software patents issued in the U.S.,
or at least he used to, I don't know if he can still keep up with them,
said 90% of them wouldn't have passed the "Crystal City test", which
meant if the people in the patent office went outside to the news stand
and got some computer magazines, they would see that these ideas are
already known.
The patent office does things that are so obviously foolish, you
wouldn't even have to know the state of the art to see they are
foolish. This is not limited to software. I once saw the
famous mouse patent which was obtained after Harvard genetically
engineered a mouse with a cancer-causing gene. The cancer-causing
gene was already known, and was inserted using known techniques into an
already existing strain of mouse. The patent they got covered
inserting any cancer-causing gene into any kind of mammal using any
method whatsoever. You don't have to know anything about genetic
engineering to realize that is ridiculous. I am told that this
"overclaiming" is normal practice, and that the U.S. patent office
sometimes invites patent applicants to make their claims
broader--basically, make the claims broader until you think they are
running into something else which that's unambiguous prior art.
See how much land grab in mental space you can get away with.
When programmers look at a lot of software patents, they say "this is
ridiculously obvious!" Patent bureaucrats have all sorts of
excuses to justify ignoring what programmers think. They say "Oh!
but you have to consider it in terms of the way things were 10 or 20
years ago." Then they discovered that if they talk something to
death then you can eventually lose your bearings. Anything can
look unobvious if you tear it apart enough, analyse it enough.
You simply lose all standard of obviousness, or at least lose the
ability to justify any standard of obvious or unobvious. Then, of
course, they describe the patent holders as brilliant inventors, all of
them, therefore we can't question their entitlement to power over what
we do. If you go to court, the judges are likely to be a little
more stringent about what is obvious or not. But the problem is
that it costs millions of dollars to do that.
I heard of one patent case, the defendant I remember was Qualcomm, and
I believe the ruling was ultimately 13 million dollars of which most
went to pay the lawyers on both sides. There were a few million
dollars left over for the plaintiff (because they [Qualcomm] lost).
To a large extent, the question of the validity of a patent will depend
on historical accidents. Lots of historical accidents such as
precisely what was published when, and which of those things somebody
manages to find. Which of them didn't get lost, precise dates and
so-on. Many historical accidents determine whether a patent is
valid.
In fact, it is a weird thing that the British Telecom following
hyperlinks together with telephone access patent was applied for in
1975. I think it was in 1974 that I developed the Info package
for the first time. The Info package allows you to traverse
hyperlinks, and people did use telephones to dial up and access the
system. So in fact, I did produce a piece of prior art for this
patent. This is the second piece of prior art I have produced in
my life.
I didn't think this was interesting enough to publish it. After
all, the idea of following hyperlinks I got from the demo of
Englebart's editor. He is the one who had an idea which was
interesting to publish. What I done I called "poor man's
hypertext", as I had to implement it in the context of TECO. It
was not as powerful as his hypertext, but it was at least useful for
browsing documentation, which it all it was meant for, and as for there
being dial-up access to the system, well, there was, but it didn't
occur to me that the one had anything particular to do with the
other. I wasn't going to publish a paper saying, "Oh! I
implemented this poor man's hypertext, and guess what! There are
dial-up lines on the computer too!" I suspect there is no way to
tell precisely on what date I implemented this.
And was it published in any sense? Well, we invited guests to
come in across the ARPAnet, and log in on our machine, so they could
have browsed documentation using Info and seen the thing. If they
had asked us, they would have found we had dial-up access. As you
can see, historical accident determines whether you have prior art.
Now of course, there is a publication made by Englebart about
hypertext, which they [the defendants] are going to show. I don't
think it says anything about having dial-ups on the computer however,
so whether it will suffice is not clear.
So, this is an option, the possibility of going to court to overturn
the patent. Because of the expense, it is often out of the
question even if you can find solid prior art which ought to be
sufficient to overturn the patent. As a result, an invalid
patent, a patent which nominally shouldn't have existed (but in fact
lots and lots of them do) is a dangerous weapon. If someone
attacks you with an invalid patent, that can really cause a lot of
trouble for you. You might be able to bluff them away by showing
them the prior art. It depends on whether they can get scared off
that way. They might think, "Well, you are just bluffing, we
figure you can't really go to court, you can't afford it so we'll sue
you anyway".
All of these three possibilities are things that sometimes you can
manage to use, but often you can't. So you have to face patent
after patent after patent. Each time you may be able to find one
of these three possibilities you can use, then there is another patent,
then another and another. It gets like crossing a
minefield. Each step you take, each design decision, probably
won't step on a patent, so you can take a few steps and probably there
won't be an explosion. But the chance you can get all the way through
the minefield and develop the program you want to develop without ever
stepping on a patent gets less and less as the program gets bigger.
Now, people used to say to me, "Well, there are patents in other
fields, why should software be exempt?" Note the bizarre
assumption in there, that somehow we are all supposed to suffer through
the patent system. It is like saying "Some people get
cancer. Why should you be exempt?" As I see it, each person
who doesn't get cancer is good.
But there is, behind that, a less biased question, a good question,
which is: Is software different from other fields? Should patent
policy be different in different fields? If so, why?
Let me address that question: patents relate to different fields
differently because in different fields patents relate to products
differently.
On one extreme we have pharmecuticals where a given chemical formula
would be patented, so that patent covers one and only one
product. Some other product wouldn't be covered by the existing
patent. If there is to be a patent for this new product, the
patent holder would be whoever developed the new product.
This fits in with the naive idea of the patent system that we have,
that if you are designing a new product, you are going to get "the
patent". The idea that there is one patent per product and that
it covers the idea of the product. In some fields it is closer to
being true. In other fields it is further from being true.
[The software field is at that extreme.] This is because software
packages are usually very big. They use many different ideas in a
new combination. If the program is new and not just copied, then
it is probably using a different combination of ideas--combined, of
course, with newly written code, because you can't just magically say
the names of these ideas and have them work. You have to
implement them all. You have to implement them all in that
combination.
The result is that even when you write a program, you are using lots of
different ideas, any one of them might be patented by somebody. A
pair of them may be patented as a combination by somebody. There
might be several different ways of describing one idea which might be
patented by various different people. So there are possibly
thousands of things, thousands of points of vulnerability in your
program, which might be patented by somebody else already.
This is why software patents tend to obstruct the progress of
software--the work of software development. If it were one
patent-one product, then these patents wouldn't obstruct the
development of products because if you develop a new product, it
wouldn't be patented by somebody else already. But when one
product corresponds to many different ideas combined, it gets very
likely your new product is going to be patented by somebody else
already.
In fact, there is economic research now showing just how imposing a
patent system on a field where there is incremental innovation can
retard progress. You see, the advocates of software patents
say "Well, yes, there may be problems, but more important than
any problems, the patents must promote innovation, and that is so
important it doesn't matter what problems you cause". Of course,
they don't say that out loud because it is ridiculous, but implicitly
they want you to believe that as long as it promotes progress, that
outweighs any possible cost. But actually, there is no reason to
believe it does promote progress. We now have a model showing
precisely how patents can retard progress. The case where that
model can fit describes the software field pretty well; incremental
innovation.
Why is software on that extreme of the spectrum? The reason is
that in software we are developing idealised mathematical
objects. You can build a complicated castle and have it rest on a
thin line and it will stay up because it doesn't weigh anything.
In other fields, people have to cope with the perversity of matter--of
physical objects. Matter does what it is going to do. You
can try to model it, [but] if the actual behaviour doesn't fit the
model then tough on you, because the challenge is to make physical
objects that really work. If I wanted to put an 'If' statement in
a 'While' statement, I don't have to worry about whether the 'If'
statement will oscillate at a certain frequency and rub against the
'While' statement and eventually they will fracture. I don't have
to worry whether it will oscillate at a certain higher frequency and
induce a signal in the value of some other variable. I don't have
to worry about how much current that 'If' statement will draw, and
whether it can dissipate the heat there inside that 'While'
statement. Whether there will be a voltage drop across the
'While' statement that will make the 'If' statement not function.
I don't have to worry that if I run this program in a salt water
environment, the salt water may get in between the 'If' statement and
the 'While' statement and cause corrosion.
I don't have to worry when I refer to the value of a variable whether I
am exceeding the fan-out limit by referring to it 20 times. I
don't have to worry how much capacitance it has and whether there has
been sufficient time to charge up the value. I don't have to
worry when I write the program, about how I am going to physically
assemble each copy and whether I can manage to get access to put that
'If' statement inside the 'While' statement. I don't have to
worry about how I am going to gain access in case that 'If' statement
breaks, to remove it and replace it with a new one. [There are]
so many problems that we don't have to worry about in software.
That makes it fundamentally easier. It is fundamentally easier to
write a program than to design a physical object that's going to work.
This may seem strange because you have probably heard people talking
about how hard software is to design and how this is a big problem and
how we are going to solve it. They are not really talking about
the same question as I am. I am comparing physical and software
systems of the same complexity, the same number of parts. I am
saying the software system is much easier to design than the physical
system. But the intelligence of people in these various fields is
the same, so what do we do when we are confronted with an easy
field? We push it further! We push our abilities to the
limit. If systems of the same size are easy, let's make systems
which are ten times as big, then it will be hard! That's what we
do: we make software systems which are far bigger in terms of number of
parts than physical systems.
A physical system whose design has a million different pieces in it is
a mega project. A computer program whose design has a million
pieces in it is maybe 300,000 lines; a few people will write that in a
couple of years. That is not a particularly giant program.
GNU Emacs now has several million pieces in its design, I think.
It has a million lines of code. This is a project done with
essentially no funding whatsoever, mostly done by people in their spare
time.
There is another big saving. If you have designed a physical
product, the next thing you have to do is design the factory to make
it. To build this factory may cost millions or tens of millions,
whereas to make copies of the program you just have to type
'copy'. The same copy command will copy any program. You
want copies on CD, then fine, You burn a master CD and send it off to a
CD plant. They will use the same equipment which will copy any
contents on a CD. You don't have to build a factory to make this
product.
There is tremendous simplification and tremendous reduction in costs of
designing things. The result is, say for an automobile company,
who will spend 50 million dollars to build a factory, to build a new
model of auto, they can hire some lawyers to cope with patent license
negotiations. They can even cope with a law suit if they wanted
to. To design a program of the same complexity may cost 50 thousand or
100 thousand dollars. By comparison, the cost of dealing with the
patent system is crushing. Or actually designing a program with
the samecomplexity as the mechanical design of an auto is probably a
month's work. How many parts does an auto have...that is, if it
is an auto which doesn't have computers in it. That is not to say
designing a good one is easy, but just that there are not that many
different things in it.
The result is software really is different from other fields because we
are working with mathematical stuff designing something is far, far
easier and the result is that we regularly make systems which are much,
much larger and do so with just a few people. The result is that
instead of being close to one product-one patent, we are in a system
where one product involves many, many ideas which could be patented
already.
The best way to explain it by analogy is with symphonies. A
symphony is also long and has many notes in it, and probably uses many
musical ideas. Imagine if the governments of Europe in the 1700's
had decided they wanted to promote the progress of symphonic music by
establishing a European musical patent office that would give patents
for any kind of musical ideas which you could state in
words. Then imagine it is around 1800 and you are Beethoven
and you want to write a symphony. You will find that getting your
symphony so that it doesn't infringe any patents is going to be harder
than writing a good symphony.
When you complain about this, the patent holders would say "Aw
Beethoven, you are just bitching because you have no ideas of your
own. All you want to do is rip off our inventions".
Beethoven, as it happens, had a lot of new musical ideas--ut he had to
use a lot of existing musical ideas in order to make recognisable
music, in order to make music that listeners could possibly like, that
they could recognise as music. Nobody is so brilliant that he can
re-invent music [completely different] and make something that people
would want to listen to. Pierre Boulez said he would try to do
that, but who listens to Pierre Boulez?
Nobody is so brilliant he can re-invent all of computer science,
completely new. If he did, he would make something that the users
would find so strange that they wouldn't want to use it. If you
look at a word processor today, you would find, I think, hundreds of
different features. If you develop a nice new innovative word
processor, that means there are some new ideas in it, but there must be
hundreds of old ideas in it. If you are not allowed to use them,
you cannot make an innovative word processor. Because the work of
software development is so big, the result is that we don't need any
artificial scheme to incentivise new ideas. You just have people
writing software and they will have some new ideas. If you want
to write a program and you want to make it good, some ideas will come
to you and some you will see a way to use.
What used to happen--because I was in the software field before there
were software patents--was most of the developers would publish any new
ideas that they thought were noteworthy, that they thought that they
might get any credit or respect for. The ideas that were too
small or not impressive enough, they would not publish because that
would be silly. Now the patent system is supposed to encourage
disclosure of ideas. In fact, in the old days, nobody kept the
ideas secret. They kept the code secret, it's true. The
code, after all, represented the bulk of the work. They would
keep the code secret and publish the ideas so that way the employees
would get some credit and feel good. After software [patents],
they still kept the code secret and they patented the ideas, so in
fact, disclosure has not been encouraged in any meaningful sense.
The same things are kept secret now as what were kept secret before,
but the ideas which used to be published so that we could use them are
now likely to be patented and off-limits for 20 years.
What can a country do to change this? How should we change the
policy to solve this problem?
There are two places you can attack it. One is the place where
patents are being issued, in the patent office. The other is
where patents are being applied. That is a question of what does
a patent cover.
One way is to keep a good criterion for issuing patents. This can
work in a country which has not authorised software patents before, for
instance, for the most part, in Europe. Simply to clearly
re-enforce the European Patent Office's rules which say that software
is not patentable. This is a good solution for Europe.
Europe is now considering a directive on software patents. (The
directive I suppose may be broader than that, but one of its important
implications is for software patents.) Simply by modifying this
to say software ideas cannot be patented will keep the problem out of
Europe for the most part, except for some countries that may have
admitted the problem on their own. Unfortunately one of them
being the U.K. (Unfortunately for you.)
That approach won't work in the U.S. The reason is that the U.S
already has large numbers of software patents, and any change in the
criteria for issuing patents won't get rid of the existing ones.
In fact, these patents are not officially labeled as software
patents. I say software patents but what do I really mean?
Patents which might potentially apply to software, patents which might
potentially get you sued for writing software. The patent office
doesn't divide patents into software patents and other patents.
So, in fact, any patent might conceivably get you sued for writing
software if it could apply to some software. So, in the U.S., the
solution would have to be done through changing the applicability, the
scope, of patents, saying that a pure software implementation running
on general purpose computer hardware which does not in itself infringe
the patent is not covered by any patent, and you cannot get sued for
it. That is the other kind of solution.
The first kind of solution, the solution that operates on what types of
patents can be valid, is a good solution for Europe to use.
When the U.S. started having software patents, there was no political
debate. In fact, nobody noticed. The software field, for
the most part, didn't even notice. There was a Supreme Court
decision in 1981 which considered a patent on a process for curing
rubber. The ruling was that the fact that the apparatus included
a computer and a program as part of the process to cure the rubber
didn't make it unpatentable. The next year, the appeals court
which considers all patent cases reversed the quantifiers: they said
the fact that there is a computer and a program in this makes it
patentable. The fact that there is a computer and program in
anything makes it patentable. This is why the U.S started having
business procedure patents: because the business procedures were
carried out on a computer and that made them patentable.
So this ruling was made, and I think the natural order recalculating
patent was one of the first or might have been even the first.
Throughout the 80's, we didn't know about this. It was around
1990 that programmers in the U.S. started to become aware that they
were faced with a danger from software patents. So I saw how the
field worked before and how the field worked after. I saw no
particular speed up in progress after 1990.
There was no political debate in the U.S., but in Europe there has been
a big political debate. Several years ago there was a push to
amend the Munich treaty that established the European Patent Office. It
has a clause saying that software is not patentable. The push was
to amend that to start allowing software patents. But the
community took notice of this. It was actually free software
developers and free software users who took the lead. [But] we
are not the only ones threatened by software patents. All
software developers are threatened by software patents, and even
software users are threatened by software patents.
For instance, Paul Heckel, when Apple wasn't very scared of his
threats, he threatened to start suing Apple's customers. Apple
found that very scary. They figured they couldn't afford to have
their customers being sued like that, even if they would ultimately
win. So the users can get sued too, either as a way of attacking
a developer or just as a way to squeeze money out of them on their own
or to cause mayhem. All software developers and users are
vulnerable.
But it was the free software community in Europe that took the lead in
organising opposition. In fact, twice now the countries that
govern the European Patent Office voted not to amend that treaty.
Then the E.U. took a hand and the Directorates of the E.U were divided
on the issue. The one whose job is to promote software is against
software patents it seems. They were not in charge with this
issue. It is the Open Market Directorate who is in charge, and is
run by somebody who is in favor of software patents. They
basically disregarded public opinion which has been expressed to
them. They have proposed a directive to allow software
patents. The French government has already said they are against
it.
People who are working [on] various other governments in Europe to
oppose software patents, and it is vital to start doing so here.
According to Hartmut Pilch, who is one of the leaders in the European
struggle against software patents, the main impetus comes from the U.K.
Patent office. The UK patent office is simply biased in favour of
software patents. It had a public consultation, and most of the
responses were opposed to software patents. They then wrote a
report saying people seem to be content with them, completely
disregarding the answers. You see, the free software community
said, "Please send the answers to them and to us too." So they
published these answers which were generally opposed. You'd have
never guessed that from the report that the UK patent office published.
They use a term that they call "technical effect". This is a term
which can stretch tremendously. You are supposed to think it
means a program idea would only be patentable if it only relates to
specific physical acts. If that is the interpretation, it would
mostly solve the problem. If the only software ideas which can be
patented were those that really did relate to a particular technical,
specific physical result that you might have patented if you didn't use
a program, that would be OK. The problem is that you can stretch
that term. You can describe the result you get by running any
program as a physical result. How does this physical result
different from any other? Well it is as a result of this
computation. The result is that the UK patent office is proposing
something that looks like it leads to mostly solving the problem and
really gives carte blanche for patenting almost anything.
The people in the same ministry are also involved in the copyright
issue, which really has nothing to do with software patents except that
it is being handled by the same people. It is a question of
interpreting the recent E.U copyright directive, a horrible law like
the DMCA in the U.S., but there is some latitude for countries to
decide how to implement it. The UK is proposing the most
draconian possible way of implementing this directive. You could
greatly reduce the harm it does by implementing it properly. The
U.K. wants to maximise the tyrannical effect of this directive.
It seems there is a certain group--The Department of Trade and
Industry?--Who need to be reined in. It is necessary to put a
check on their activities, stop their creating new forms of power.
Software patents tie up every software developer and every computer
user in a new in a new form of bureaucracy. If the businesses
that use computers realised how much trouble this can cause for them,
they would be up in arms, and I am sure they can stop it.
Business doesn't like being tied up in bureaucracy. Sometimes, of
course, it serves an important purpose. There are some areas
where we wish the UK government did a more careful job in tying certain
businesses up in bureaucracy, like when it involves moving animals
around. But in cases when it doesn't serve any purpose except to
create artificial monopolies so that somebody can interfere with
software development, squeeze money out of developers and users, then
we should reject it. We need to make management aware of what software
patents will do to them, get their support in fighting against software
patents in Europe.
The battle is not over. It still can be won.
Copyright 2002 Richard Stallman
Verbatim copying and distribution are permitted without royalty in
any medium provided this notice and the copyright notice are preserved.