The problem is that we are on a slippery-slope either way you cut it.
Begin with field "Foo". Originally, a Foo-ist researched the creation of an improved Foo-er after twenty years of painstaking manual research and patented said device. All well and good and the situation "had nothing to do with computers" originally (hah!).
But then, someone else creates a "numerically controlled foo-ing maching" - an NCF. With an NCF hooked-up to a conventional PC, proper software and a careful look at the improved fooer, you can duplicate the twenty years of painstaking manual research. You've "stolen" the patent as fully as if you duplicated the original machine but your "theft" is entirely in terms of software. And it can very subtle: It might be algorithm is obvious but the constants used took twenty years of research to discover/optimize (I've done scientific programming where discovering the optimality of a simple number was our achievement for the week).
Note the "scare quote" here. I use steal/theft advisedly.
The situation of a numerically controlled machines basically cries out that you must either abolish all patents or make valiant effort to extend patents somehow to software. And while I like the idea of abolishing all patents, I also know that all existing patents together are a huge mass of value and abolish the patent system would entail a huge shock to the economic system and the professional/scientific world and thus a large number of power entities stand against either abolish patents and by extension abolishing software patents since by the arguments above, these amount to the same thing.