Gervase Markham has a thorough blog post about a case for the total abolition of software patents [gerv.net]. He makes his case based on their complete lack of promotion of innovation and aims at identifying the principles involved. The feasibility of eliminating them may be a ways off due to the heavy politics involved so the idea may seem like a very distant policy possibility.
One immediate question is: how does one define a software patent? Where is the boundary? Various suggestions have been made1, but actually, this question is not as important as it appears, for two reasons. Firstly, if we can demonstrate that there is a group of clearly identifiable patents which are harmful, or harmful when enforced in particular situations, then we can adopt the principle that such patents should not be granted or should not be enforceable, and where one draws the exact line between them and other patents becomes a secondary, practical, definitional issue beyond the initial principle. Secondly, some methods proposed for dealing with the problem of software patents do not actually require one to define what a software patent is. For example, one proposal is that one could change the law such that no program written to run on a general purpose computer could ever be said to be infringing a patent. In this case, you need a definition of “general purpose computer”, but you don’t need one for “software patent”. Given these two points, I don’t intend to spend time on definitional issues.
Currently software patents are a problem affecting the US and prohibited in the EU due to Article 52 of the European Patent Convention in 1973 (EPC). However, they are currently being pushed by the European Patent Office (EPO) [techrights.org] in the name of "harmonization" despite being invalid. Many consider the fact that Europe remains unafflicted by software patents to be a moderating influence on the US market, holding back a free for all.