The Supreme Court unanimously tossed out an egregiously vague software patent today, and that's good news. Unfortunately, it was a fairly narrow ruling that didn't provide much guidance about which software patents are and aren't valid. Tim Lee explains:
The patent claimed a method of hedging against counter-party risk, which is a fancy word for the risk that you make a deal with someone and later he doesn't uphold his end of the bargain. The Supreme Court unanimously held that you can't patent an abstract concept like this merely by stating that the hedging should be done on a computer.
....[But] the Supreme Court rejects Alice's patent because "each step does no more than require a generic computer to perform generic computer functions." But many computer programmers would point out that this describes all software.
Software is nothing more than a long list of conventional mathematical operations. If you think a list of conventional operations isn't patent-eligible, that implies that any "invention" you can implement by loading software on a generic computer isn't patent-eligible. The problem is that judges lose sight of this fact as software gets more complex, leading to a de facto rule that only complicated computer programs can be patented.
This problem is hardly unique to software. An ordinary physical invention, after all, is usually just a collection of previously known parts put together in an innovative way. So when do you decide that the invention, taken as a whole, is truly innovative? It's a judgment call.
Now, I happen to think that this judgment is harder in the software realm than elsewhere, and that patent offices are inherently less competent to judge software implementations than other inventions. The algorithms themselves are typically impenetrable, and deducing prior art is all but impossible. At a guess—and that's all I can do since there's really no data available—I'd say that hardly any software inventions are truly innovative. They're simply solutions to problems that are put in front of a coding team. For the vast bulk of them, any other coding team given the same problem would probably come up with a pretty similar solution.
Unfortunately, it's essentially unknowable whether I'm right or wrong about that. What's not unknowable, however, is what the world would be like without software patents. That's because we used to live in such a world, and guess what? Software development thrived. So it's hard to see what benefits we get from all this. It's great for patent trolls, and I suppose it works OK for giant corporations that use their patent portfolios as bargaining tools with other giant corporations, but that's about it. So why bother?