This brings up the problem of patent terms. At least in software, the ordinary term of a patent is obviously much too long. Even granting a ten-year monopoly would be onerous in this business; twenty is absurd - the technological landscape can change completely in that time.
Devil's advocate: by allowing software patents, that might tend to force technological change. You need to invent a new landscape if the current landscape is illegal or onerous to operate in.
For the record, software patents annoy me and I don't think they should be allowed.
But the patents are so general in scope that they tend to preempt any technological change.
What benefit is there in inventing a better mousetrap if the very idea of causing inconvenience to vermin has been patented, and the only people beating a path to your door are verm^H^H^H^H patent lawyers.