Coding Horror

programming and human factors

The Coming Software Patent Apocalypse

Every practicing programmer should read the Wikipedia article on software patents, if you haven't already.

Many software companies are of the opinion that copyrights and trade secrets provide adequate protection against unauthorized copying of their innovations. Companies such as Oracle Corporation and Red Hat are therefore generally opposed to the patenting of software.

Nonetheless, these companies do file and receive patents. Since their competitors get patents, they must get patents as well for defensive purposes. In the event that they get sued for patent infringement by a competitor they can counter-sue using their own patent portfolio. The net result is that both companies often cross license each others' patents at little or no out-of-pocket expense for either party. However, the cost of developing a suitable portfolio of patents may be out of reach of many small software companies.

If this sounds like a classic Mutually Assured Destruction arms race, that's because it is.

Atomic explosion

There was a hullabaloo recently about Microsoft rattling their software patent sabers. Sadly, there's nothing notable about it; this is simply business as usual for everyone in the software industry. Software companies are forced to build huge stockpiles of software patents solely to be used as deterrents.

Many notable computer scientists, including Donald Knuth, believe that software is fundamentally unpatentable:

Congress wisely decided long ago that mathematical things cannot be patented. Surely nobody could apply mathematics if it were necessary to pay a license fee whenever the theorem of Pythagoras is employed. The basic algorithmic ideas that people are now rushing to patent are so fundamental, the result threatens to be like what would happen if we allowed authors to have patents on individual words and concepts. Novelists or journalists would be unable to write stories unless their publishers had permission from the owners of the words. Algorithms are exactly as basic to software as words are to writers, because they are the fundamental building blocks needed to make interesting products. What would happen if individual lawyers could patent their methods of defense, or if Supreme Court justices could patent their precedents?

I tend to agree with Knuth that software isn't an industry that should be patentable. The fashion industry, for example, has no concept of patent protection, and thrives regardless:

The fashion world understands that creativity is a collaborative and community affair. It's far too big, robust, and evolving for any one player to "own" as a legal entitlement. Long lineages of couturiers from Balenciaga to Ungaro, Chanel to Lagerfield, and Gucci to Tom Ford have shown that designers necessarily must learn, adopt, and adapt from those who have blazed previous trails. If one were to deconstruct their work, an evolutionary chain of distinct themes, references, design nuances, and outright appropriations could be discerned.

Occasionally someone may protest a "rip-off" and get murmurs of sympathy. And the counterfeiting of brand-name products is rightly condemned as theft. However, in general, creative derivation is an accepted premise of fashion. Indeed, the industry's growth and prosperity have been built upon the famous maxim of Isaac Newton, "If I have seen further, it is by standing on the shoulders of giants."

Is it possible that the fashion industry, long patronized as a realm of the ephemeral and insubstantial, is the real bellwether for future ideas of "ownership" of creative content?

You can't patent recipes, and yet both professional chefs and restaurants are still in business and prospering:

Food relies so much on execution, or at the national chain level on marketing, that the mere circulation of a recipe does not much diminish the competitive advantage of the creative chef. Try buying a fancy cookbook by a celebrity chef and see how well the food turns out. Most chefs view their cookbooks as augmenting the value of the "restaurant experience" they provide, not diminishing it. Furthermore, industry norms, and the work of food critics, give innovating chefs the proper reputational credit. It is not worth the litigation and vagueness of standards that recipe patents would involve.

Of course, the software patent debate is neverending. But patents are especially dangerous and deserving of intense debate, because they're so powerful:

Patents give their owners the right to prevent others from using a claimed invention, even if it was independently developed and there was no copying involved.

Think about that for a minute. Seriously think about it. Every time you write code – even a brand new algorithm in a clean room environment – you could be infringing a patent, somehow, somewhere. That's why it's so often described as a software patent minefield:

Today's computer industry standards increasingly include technology that may be covered by a software patent. The owner of that patent has the right to demand a royalty from all parties that implement the patented principle, or may discriminate regarding who will and will not be allowed to license the patent. It is often the case that there is no way to implement a standard without making use of a particular patented principle. This effectively gives the patent holder absolute control regarding who will implement a standard containing his patented principle.

Such patents arise in two ways: they are knowingly embedded in the standard as it is being created, or they are submarine patents, unknowingly part of the standard until they "surface" after the standard is already in wide use. A pernicious patent holder can engage in patent farming: influencing a standards organization to use a particular principle covered by a patent. In the worst and most deceptive form of patent farming, the patent holder encourages the standards organization to make use of a principle without revealing the existence of a patent covering that principle. Then, later on, the patent holder demands royalties from all implementers of the standard.

It's probably not fair to say that software patents are 100% evil. But from what I've read, I'd say they're 99 and 44/100ths percent evil. I'm not sure what any of us can do about this, but it's clear that the current situation is untenable:

graph of software patents, 1971 - 2005

Something has to be done, or else we truly are staring down a coming software patent apocalypse.

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Exchange and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: http://twitter.com/codinghorror