Personally I think the US Patent office has gone beserk, and needs to
develop a better understanding of prior art in software. Also, it should
not be as expensive as it is to defend or fight a patent in court. Those
are "implementation" details though.
The US Patent Office is incompetent in all fields, and issues
trivial patents habitually.
If the Patent Office did a good job, perhaps patents would
be beneficial overall in many fields. But I am convinced
that patents in software are inherently harmful, and would
be harmful even if the Patent Office handled them "well".
See lpf.ai.mit.edu for more info about this.