ZDNet UK
News
Stallman: Why software patents are a special case
Thursday 28th March 2002
Matt Loney
Part III: Writing software is like writing a symphony, says Richard Stallman, founder of the Free Software Foundation. Just imagine if music could be patented...
In the third part of his speech at the Cambridge Computer Lab, Richard Stallman explains why building software is not like building physical projects, and offers two solutions to the problem of software patents: one for Europe where software patents are not widely granted and one for the US where the situation already seems to be out of control.
Software patents: Should there be a special case?
Stallman: People say, if patents are allowed in other fields, why should software be exempt? This question contains a presumption that we should all suffer together, but there lies behind it a less biased question, which is: is software really so different from other fields? And, should patents work differently in different fields?
Well yes, patents do work differently in other fields. In biotech for instance, one product might be affected by a patent. If a new product is developed, that is protected separately. There is a naive idea that there is one patent per product, that it covers the idea of that product.
Software is at the opposite extreme, because software packages are very big, and because they use different ideas in different ways. You have to implement these ideas in this combination -- you cannot just say their names and expect them to work. So when you write a program you are using lots of ideas, some of which might patented, but they are working together in ways that might be patented, so where there could be thousands of ideas that might conflict with existing patents.
This is why patents obstruct development of products.
There is economic research showing how imposing the patent system on a field where there is incremental innovation can retard progress. Advocates say: "yes, there might be problems, but the patent system promotes innovation so the problems don't matter."
In fact, there is no reason to believe the patent system does promote progress.
Extreme software
Why is software at this extreme? Because we are developing idealised mathematical concepts. We can build a castle and rest it on a thin line, and it will stay up. In other fields you have to deal with matter, and make physical objects that work.
But if I want to put an 'if' statement inside a 'while' statement I don't have to worry whether the 'if statement will oscillate against the 'while' statement and eventually fracture. I don't have to worry about whether the 'if' statement will dissipate heat well enough, or whether a voltage drop across the 'if' statement will stop the 'while' statement from working or, if it is working under water, whether salt water will get between the two statements and corrode them. I don't have to worry about how I will physically assemble each copy, and whether I can physically get access during construction to put one statement inside the other, and I don't have to worry about how, if one breaks, I will replace it.
There are so many problems we don't have to worry about in software, that it is fundamentally easier to develop software than it is to develop physical products. This sounds strange to some people. But I'm comparing physical and software systems of the same complexity, the same number of parts. So what do we do when we are confronted with an easy field (such as software)? We push it further; we make software systems far bigger in terms of number of parts than physical systems. A physical system with a million pieces is a mega project; a software system with a million pieces, is a few hundred thousand lines of code; many programmers write that in a few years.
What's more, if you have designed physical product then you have to build a factory to make it. To make a copy of a program you type 'copy', and the same copy command will copy any program. So you don't have to build a factory to make the product. There is a tremendous simplification and a tremendous reduction of costs when designing software systems.
So software really is different from other fields, because we are working with mathematical stuff; designing products is far easier; and we make systems that are much larger with just a few people. The result is that our products involve many ideas that could be patented already.
If symphonies were patented
In some ways writing software is like writing a symphony: you use many notes and many ideas that have been used before. Imagine if the European governments of the 17th century had built a musical patent office. Now imagine it's 1800 and you're Beethoven: you want to write a symphony and make it legal. Well, you'll find it impossible, and when you complain, the patent holders will say: "Oh Beethoven you're just bitching because you've got no ideas of your own."
Well, Beethoven had lots of good ideas, but he also used other people's ideas. Nobody is so brilliant they can create completely new music that everyone wants to listen to, and nobody can create software that does not use existing ideas. Of course a new word processor will have new ideas, but it must also use many old ideas. And because the job of software development is so huge, we don't need any artificial system to incentivise people to have new ideas; just sit people down and they will come up with new ideas as they work.
Before software patents, most developers published new ideas they thought they would get credit for. Now the patent system is supposed to encourage disclosure of new ideas. But in the old days nobody kept ideas secret; they did keep the code secret, but they published the ideas; that way employees got credit and felt good. After patents they still kept code secret but now they keep the ideas too. So patenting has not encouraged any disclosure. So now, the ideas that have been patented are likely to be off limit for 20 years.
The solution
How do we change the policy to solve this problem? Two places: in the patent office, and where the patents are being applied.
Changing the criteria for issuing patents can work in a country that has not authorised software patents before -- for instance in most parts of Europe. Simply by modifying patent laws to say software ideas cannot be patented this will keep problem out of Europe.
That won't work in the US because the US already has large numbers of software patents, and it would not get rid of existing patents. In the US something would have to be done to change the scope of patents; perhaps by saying that general purpose software running on a computer's system that itself does not infringe a patent cannot be attacked.
But the first idea is a good solution for Europe to use. When the US started having software patents there was no political debate and nobody noticed. Throughout the 80s we didn't know about this problem, and it was not until about 1990 that programmers did become aware.
In Europe there has been a big political debate. Free-software developers have taken the lead, but we are not the only ones threatened; all software developers and even software users are threatened.
A lot of the impetus for patenting software more widely in Europe comes from the UK patent office. It had a public consultation, and most responses were opposed to software patents, but it then wrote a report saying people seemed to be content with them. The UK patent office uses a term called technical effect -- this is a term that can stretch tremendously. The result is that the UK patent office is promoting something that looks like it helps solves the problem but that really gives carte blanche for patenting anything.
If the business that used computers realised how much trouble this could cause for them they would be up in arms. Sometimes bureaucracy can be useful, but when it does not serve any purpose except to create artificial monopolies it does no good.
The battle is not over. It still can be won.
Previous page: Three ways to deal with software patent threats
First page: Why software patents are a bad idea
ZDNet UK's Developer News Section delivers the latest headlines together with the best UK jobs, right to your browser.
Have your say on all developer topics. From j2ee, to C++, from Visual Basic to Javascript plus much more. Share your experience with others on the Developers Forum.
Let the editors know what you think in the Mailroom.