Why software is different
Software is different in many ways from traditionally patentable fields of engineering such as the manufacturing of cars or pharmaceuticals.
Conversely, it is similar to innovative fields such as literature, film and fashion.
Studies on usage patterns
The 2008 Berkeley Patent Survey revealed big differences between software companies and biotechnology companies in their use of patents.
"[s]oftware patents are more than twice as likely to be litigated as other patents" - Bessen & Meurer, at 22.
- (see also: Software is math)
The rules that exclude software from patentability do so on the grounds of similarity with mathematics: you should not be able to patent a mathematical formula, and an algorithm is essentially the same as a mathematical formula. A mathematical formula is not patentable because it is like a law of nature: it is a discovery, not an invention.
Software is highly abstract: you can't look at two pieces of software from the outside to see whether they look the same. Two engineers will describe the same piece of software in very different terms. It's therefore highly subjective whether the ideas embodied by one piece of software are essentially equivalent to the ideas in another. In short, there is no objective test for infringement.
Problems and solutions are tied
There are many ways to cure rubber. These methods can be used to cure various types of rubber and the output will be usable for any product that requires cured rubber. The inputs and outputs don't define what method of rubber curing must be used - the curer is not required to use a specific method.
In contrast, for a software video player to be functional, it must read videos in precisely the format in which videos exist. That is to say, software video players have to read MPEG video formats, for example, in order to be useful. So a patent excludes developers from the whole field rather than excluding them just from one method of doing that field of activity.
The test of obviousness
Because software is abstract, the test for whether an idea is obvious "to one skilled in the art" is very difficult to apply. The test cannot be based on the amount of effort expended in working out the idea, because the least obvious ideas are often the simplest. Nor is it clear what it means: what if an idea is obvious to a thousand of the best programmers in the world, but not obvious to a million others? Simultaneous and independent invention is not unique to the software field, but it is certainly a characteristic feature of software that good programmers will tend to come to the same solution independently.
Because software is invisible, determining prior art is notoriously difficult. Many software patents appear to be granted despite the ideas being well known to practitioners, but it can be very difficult to find acceptable documentary evidence that the ideas were already in widespread use. Most programmers do not publish written papers about their work, for a variety of reasons: they are too busy, they don't consider the idea significant, or they don't want their competitors to know what they are doing.
Programming is by its nature innovative. Programmers have new ideas every day, in a way that is not true of engineers in other fields. If every new idea were patented we would have billions of patents rather than merely tens of thousands. Many of these new ideas have little significance, but there is no meaningful way of distinguishing those that deserve a patent monopoly from those that do not.
By the same token, it is impossible for programmers to check every time they write a line of code whether it infringes a patent. Programmers take the risk of patent infringement every day, because they have no realistic alternative. It is unfair that society should penalise them for this.
Related pages on en.swpat.org
- In Defense of Software Patents, by Martin Goetz, argues that software development is just like machine development
- Are software patents evil?, by Paul Graham, argues that software patents are the same as hardware patents
This wiki is part of the End Software Patents (ESP) campaign (donate). For more information, see: