There is another problem with software patents that is usually not talked about: they don't present how to build it. Most patents (outside of software patents) present enough information for a competent person to build the device (or whatever) themselves. The idea is that your idea is protected for the duration of the patent, then when it's over everyone else gets it for free. Software patents usually don't do this. I cannot implement, for example, Amazon's "Tabbed browsing" from the description in the patent. I still have to do the hard work myself.