The controversy over software patents have been going on for a long time. I was going through some of the patents granted under this category, and I couldnt help laughing at the absurdity of the patents, the ideas that were patented. The whole thing is ridiculous.
Patents are typically awarded to inventions and new ideas. The idea is to give an incentive to the inventors for sharing their inventions with the public. In exchange for sharing the invention, the inventor is given monopoly over its use for 17 years.The patent holder can license its use, or may even choose to refuse to do so, or even sell his patent rights to others. Also independent reinvention of the same technique by someone else does not give them the right to use it.
This workes fine for inventions is all branches of science and arts, but fails miserably in case of computer algorithms. In case of hardware design, or automobile design or any physical system, design of one component is likely to affect others. Hence interoperability is not always guaranteed. Due to various factors like temperature, pressure, presence of other chemicals etc. one particular technique used in one physical system may fail in another. However, this is not the case with computer algorithms. For instance, behaviour of a pointer is the same, regardless of whether it is referred to inside a while loop, or outside it, from a function or otherwise. The behaviour of a pointer is not distorted because to where or how it is called. But similar analogy may not apply in case of physical systems, the mechanism used by a CD player mounted on a stable platform will not work in case of a discman. The CD will end up skipping forever due to the vibrations and shocks, hance requirement of a new mechanism to play CDs in a discman.
More often than not, it is virtually impossible to write a complex piece of software without making use to already established techniques. Also, there may not be any other way doing things. There may not be any workarounds. Consider, for example, the proof given for finding prime numbers in polynomial time. Assuming an algorithm is developed to generate prime numbers or validate primality of a number in polynomial time and it is patented. Then this effectively thwarts all new developments in the area of number theory and encryption across multitude of avenues. Ironically, the purpose of patents is to “promote the progress of science and the useful arts.”
A patent is an absolute monopoloy. This policy implicitly assumes that inventions are rare and precious, since only in those circumstances is it beneficial. However,software is a field of constant reinvention, and recombination of known techniques to provide a solution. With patents this is disallowed. A classic example is that of quicksort and linked lists. Both quicksort algorithm and concept of linked lists is all too well known. However, there is patent for using linked lists as the data structure for quicksort! Things couldnt get more absurd than this. Here is a list of some more absurd software patents that have been granted over the past years.
Donald Knuth makes a impressive arguments against software patents in his letter to the Commissioner of Patents and Trademarks, USA. A more detailed description on the dangerous trends in software patents is available here.
In case you believe (like I do) that software patents are causing more harm than good, then sign the Petition Against Software Patents (open only to citizens of USA)
Recommended reading:
Comments are disabled for this post