Should software be patentable? That’s been debated ever since the dawn of software. Some countries, like India, say definitively no. In Japan you can only patent non-obvious software that solves technical problems, not business problems (of course, if it’s obvious, it can’t be patented anyway, so that seems redundant). In the United States, just about all software was patentable starting with the decision of the US Federal Circuit Court in State Street Bank & Trust v. Signature Financial Group in 1998. Then earlier this year, the US Court of Appeals for the Federal Circuit put limits back, by requiring a “machine or transformation” test. Software can be patented if it is implemented on a “particular” machine or it transforms an article from one thing or state to another. So what does that mean exactly? No one is quite certain, so the US Supreme Court decided to take up the appeal this fall and rule on it.
There are a number of arguments for and against software patents, but only two really seem reasonable to me.
Laws of nature, mathematical formulas, and abstract ideas are not patentable. Some people against software patents say that software simply comprises mathematical formulas. Although I understand the argument, I don’t subscribe to it since programs are actually steps in a process that consist of mathematical formulas and lots of other things (like printing messages to the screen and reacting to clicks of a mouse).
Methods have always been patentable, and software is a method. This makes sense to me. I don’t see why one should differentiate between a method for cutting a pattern in a piece of cloth if the method is performed by gears and levers or transistors and electric current (both of which are not controversial) or lots of transistors comprising a microprocessor and memory.
For other opinions about patenting software, here are some good references.