Wednesday, June 15, 2011

Innovation and Software Patents

Whenever a new type of product is released there are a lot of difficulties with intellectual property. This is being played out in biotechnology and software. As recently as last year it was possible to patent human genes in the US. See this link for the recent verdict against it. The ACLU also had a write up from 2009 when this case was still ongoing about the history of genetic patenting. Software is another case of this. Many people argue that since software is an algorithm or series of statements that leads to a result it should not be patentable. This makes sense as mathematical proofs are unable to be patented. The argument is that for proofs these are discoveries and more natural processes than creating technology.

In the EU it is not possible to obtain a software patent at all. They claim that with software there are multiple different methods to obtain the same output. Software patenting is a very recent trend. The most famous example is the one-click to buy button. Which, if you don't know what it is, basically allows you to store an address and a credit card and automatically buy whatever product you're looking at. Fairly simple right? Well there was a lawsuit against a major competitor, Barnes and Noble about this in '99. Some how this patent managed to survive the re-review, even though it's a fairly obvious idea and could be implemented in about a billion different ways. On the billions, I'm not even exaggerating. There would be so many different interactions that could make the actual implementation totally different. These range from database types, information request, how the data is actually stored in the data base. There could be nothing similar between the implementation at all, yet Amazon ones all the methods to do this. In terms of patents this is effectively an amazing patent.

Let's put this more simply. If software patents had been allowable in the 70's when software first started to take off we would be living in a different world. BIOS have been owned by IBM until 1990 or so, which would have made manufacturing computers a two horse race between Apple and IBM. Microsoft or Apple could have patented the Operating system, and then the graphic user interface. IT innovation would have been non-existent. Think of this, some one could have patented data sorting. There are a many different ways to sort data in the CS world and all of them would have been covered by a single patent. Then some one could have decided to patented sorting on a multi-core computer (by then sorting as a patent would have expired).

Software is more like a mathematical proof than it's like inventing the computer.

Innovation in the software world has been amazing because it has been something of a free for all. However, there are drawbacks to this lack of IP protection. In the most recent version of iOS, iOS5, Apple has been accused of lifting many of it's new "innovations" from apps that have been rejected from the app store, or that have been selling in the jailbroke iPhone app store. Here's the link for the article. How do we deal with cases like this, either Goliath stealing from David or David stealing from Goliath? There needs to be some sort of protection.

Potentially copyright should cover this, or a registered design. Perhaps in the case of the app stores a non-compete agreement should be signed if the app is rejected by Apple. Meaning Apple won't steal it. However, there is no easy solution. Software design thefts are going to be very difficult to manage and deal with.


  1. I agree, as in most of my debates, i say "programming is Art not a science". Well i am quite strict in this sentence but it looks weird even if you try to patent a song in French! Why then patent a program in C++ or a giant software architecture(can compare with lengthy Shakespeare play), at last its just a communication.

    One can argue that contents of the plays are patent-able but in case of software the net representation(C --> Object --> Binary) is so much manipulated that even reversing the representation is a problem as it contains many hidden additions performed by compiler. Moreover in case of software we focus less on the content of the software then its outputs.

    If we probe further, Core computer science is really a science which includes process algebra, Turing theory......... The rest(Programming) is not even considered as computer science. It is a hot issue to standardize the notion of software to make it a science. For example how will you compare 2 soft wares(still a debate at general level). Much of the research focus is to come up with notions of addition, subtraction, comparison of software entities. This will allow us to reason about the uniqueness of software entities.

  2. Yea, I agree, I think software should be copyrighted but not patented. As, the output can be managed in many different ways, and the point of a patent is not just the output, but also the input. You are able to get around many "hardware" patents that have the same output through how the processing is done. These are typically considered substitutible technologies. Software is much more of a process, which are patentable, but you can get around these too. By process I mean, a manufacturing process such has putting a layer of oxide onto a semiconductor. While, software is like a process, it is more like art like you mentioned, or like math. Neither of which you can patent.

    I do think there needs to be a way to deal with people stealing code though. I think the open source licenses deal with that very nicely. Where if you use part of our code your end result has to be open source as well.