Friday, 24 August 2007

The Case Against Software Patents

« Excluding Unfixables from Eclipse Problem View | Main | MS OOXML and ECMA 376 are a Sham »
A patent is a government sanctioned monopoly that our Constitution authorizes the government to give to inventors. The exclusive rights given to patent holders are intended as a form of quid pro quo, inducing inventors to disclose to the public the details of their novel creations. The purpose of the limited duration monopoly is to benefit the public through greater access to inventions which other wise might be kept secret. In many cases, patents live up to this ideal, and are a wise investment by the public. Software patents are a glaring failure, for a variety of reasons which I wish to discuss.

A monopoly is generally considered a bad thing, and to the extent that a patent is wrongly granted in an individual instance or to a class of creations that do not warrant it, the harm to the public is severe. So, I present the case against software patents in these terms. There is a vast body of legal praxis in the area of patents, and I should note that I am not a lawyer, but I emphatically reject the notion that one must be trained in the profession. In fact, I don't think lawyers have really added much to the discussion of whether software patents are good thing or not for society. It is primarily a political question, and only slightly a legal one. The constitutional purpose of patents is abundantly straight forward and isn't a net win for software patents. Oddly, it looks to me like the legal questions have actually been decided by the Supreme Court in the correct way, and have gotten muddled and contorted by the Federal Circuit.

Software patents have flaws that can be classified along three lines:

  1. Foundations. Software is an expression of ideas, not an invention. Patents should not apply.
  2. Utility. A software patent grant does not, cannot, and will never be capable of achieving the public benefit necessary to justify it. In the arena of software, patents stifle innovation more than they reward it.
  3. Practicality. The patent process cannot make proper determinations with regard to the standards for patentability within the arena of software patents, nor is it likely to be able to within reasonable budgetary bounds.
Lets review these in detail.

Foundations. We start with a look at the history of patents in software. Many people are rather suprised to know that standing Supreme Court precedent is that "for use in programming conventional general-purpose digital computers ... a series of mathematical calculations or mental steps and does not constitute a patentable 'process' within the meaning of the Patent Act". Gottschalk v. Benson, 409 U.S. 63 (1972). It's really difficult to put it any plainer than that.

Eventually, the Supreme Court upheld a patent that happened to use some software as part of the invention. This case was Diamond v. Diehr, 450 U.S. 175 (1981). James Diehr invented a process for molding and curing rubber that happened to use a computer to achieve real time solutions to equations to control the heating process. The physical/chemical process was a novel invention and the Court ruled the necessity of using software to implement it was not a disqualification for the patent.

These two cases, should tell us everything we need to know about when a patent can contain software. Most software is not part of a process where the process itself is a novel invention. Unfortunately, the Federal Circuit Court of Appeals has completely destroyed the common sense approach by filling in the area between the two Supreme Court precedents with blathering nonsense. The unique construction of the Court system for patents contributes to the failure to fix the mistakes. For most judicial matters, we have multiple circuit courts who pass judgements, and if one court does something strange (often it's the Ninth Circuit) you'll get a split between Circuits and the Supreme Court can resolve the split. From a legal quality view, this is a much more reliable system. Unfortunately, we've bought into this bogus idea that "patents are special" and we've created a single point of failure in the Federal Circuit, and it's failed with regard to upholding software patents despite well-reasoned guidance from above that should form the basis for rejecting most of them.

As described in Gottschalk, you don't invent mathematics or algorithms. Software is predominantly an expression of an algorithm. The guy who invents computer parts or a new combination of them deserves a patent. People who twiddle the bits on a machine invented by someone else deserve only a copyright for their pattern of twiddled bits. Only in the rare circumstance where the algorithm is used to control a physical device, generally by interacting with a hardware controller of some kind, is there an actual physical component present that might qualify for a patent.

As Thomas Jefferson expressed "it is the invention of the machine itself, which is to give a patent right, and not the application of it to any particular purpose" (letter to Isaac McPherson Monticello, 1813). He's saying the machine, taken as a whole must be something new. If you invent a new way to use a hardware graphics card in a computer, or some other part of it that controls something physical, you might meet this standard of having a new machine. But taking the same old PC and writing a program on it that makes it output something different simply is not an invention. It cannot be novel and it is not supposed to be patentable. The idea is so painfully obvious it's hard to understand how the entire legal patent profession has been so boneheaded about this over the last 20 years.

Utility Software is a form of speech, and that's why it's protected by copyright. The cost of creating, reproducing, and distributing software is really quite low, once we obtain a computer. This is so true, that one of the leading software development models, open source development, generally seeks no compensation other than attribution for the software license itself. Of course, many companies continue with proprietary licensing models as is their right, but the point is there isn't much need to seek to catalyze innovation in the software market by granting patents.

To the extent it's important to secure to software creators the rights to recoup their invested hours, the just market rewards for the fruits of labor are completely protected by copyright. Since software is speech, the body of precedent for securing original speech to its author has a well reasoned, vibrant, and enforcable set of laws backing it. Simply put, there is no problem with lack of financial reward for software creators needing patents to solve it.

Moreover the public disclosure benefit motivating the patent grant really achieves nothing. Since software is expression, there is a vibrant body of free code floating around for the public to benefit from. Open source alone does more for public access to ideas than a software patent system ever could. Worse, since software is also copyrighted, even when it's patented, so you can't actually use the disclosed ideas in the executable form even when the patent expires, since this violates the copyright. We do not need double protection for software creators.

Practicality Since the rules for granting copyrights are much more economical and the market demand for most software doesn't support it, most software authors choose not to seek patents. This systematically deprives the patent process of the very body of prior art that it needs to determine whether a new submission is novel. While the existence of prior art should be sufficient to have a Court invalidate a patent, in practice the cost of litigation and the cost of searching for prior art create economics where the decision to contest a wrongly granted patent is too expensive to justify.

Compounding the problem is the incompetence with which the USPTO searches for software prior art. I've seen examples where prior art can be found by typing the patent title into Google. The standard for obviousness has been polluted to such an extent that you could probably patent removing the fuzz from your navel near a computer and you would get a grant. That the obviousness of the Amazon 1-click patent is debated is a travesty. If it outrages people as obvious, it's obvious. Worse, since many of the software creations during the "golden age" of computing, the 1970's and 1980's, happened when it was believed that software was normally not patentable, there was no industry effort to document, or even preserve, prior art. It is fundamentally impractical given this and the above reality to economically demonstrate that a work isn't novel.

This reality has several effects. Some people knowingly file "stupid patents" and rely on the fact that it isn't affordable for anyone to contest the patent. The stupid patent, once granted, will be used to extract fees that depend more on the cost litigation than the value of the invention.

Large companies often become targets of such patent extortion. Very large companies typically seek to patent their software ideas in large volumes not because they want to exercise the right to exclusivity, but simply to have a defensive weapon. Such companies almost never engage each other in patent litigation, because it would become a form of mutual assured destruction. Unfortunately, patent holding companies seem to be the fatal flaw here. Patent litigation such as over the Blackberry or the Eolas claim against Internet Explorer has no adequate defense. It's disgusting to see companies whose sole reason to exist is patent extortion. It is only a matter of time until some well known and respected innovator is forced out of business by bogus patent claims. Software patents are not rewarding inventors, they are rewarding litigation specialists who produce nothing of value to the economy.

Wrap Up In consclusion, software patents are foundationally wrong, cannot achieve any public benefit, and in practice drive economic waste and fail to reward anyone who deserves to be rewarded. Since the legal system has abandoned common sense, Congress should step in and pass legislation that makes software not patentable unless it's part of a physical machine which is, taken as a whole, novel.

Technorati Tags:

Posted by spout at 7:05 PM in the internet, web, web 2.0 and beyond

 

[Trackback URL for this entry]

Your comment:

(not displayed)
 
 
 

Live Comment Preview:

 
« August »
SunMonTueWedThuFriSat
   1234
567891011
12131415161718
19202122232425
262728293031