I see no reason why an invention should be unpatentable simply because it involves software.
That said, it's obvious that the current system is broken; there are many patents which do not seem to do anything new, and simultaneously the cost of applying for patents deters the group for whom they are most important -- small innovators who are unable to commercialize their inventions.
This intrigues me, because fundamentally I see software as a form of mathematics. Given that mathematical equations aren't patentable, I don't believe that software should be either. Moreover, it seems that we already have many things in software preventing people from copying code wholesale (SaaS, the fundamental difficulty in reverse engineering compiled binaries). As a professional cryptographer/mathematician, how do you feel about the relation between mathematics and software?
I think there's a big difference between a process and the underlying mathematics which explains why the process works. The matrix factorization which underlies the FFT was known long before Cooley and Tukey came along, but they were the first people to say "hey, this allows us to compute the DFT in O(N log N) time".
I don't think it should be possible to patent an equation, but I'm perfectly find with people patenting (subject to non-obviousness, lack of prior art, etc.) ways of using an equation to do something useful.
If patents had existed when Scipione del Ferro discovered how to solve cubics, I would have no problem with him receiving a patent on his method -- but because patents did not exist, he never published his method (he kept it as a "trade secret") and it wasn't revealed until 19 years after he died.
Obviously the DFT is not patentable any more, but yes, I see no reason why Cooley and Tukey shouldn't have been able to patent it.
I think the court's decision in Gottschalk v. Benson demonstrates a level of understanding of computers typical of members of the general public in the early 1970s -- i.e., almost none at all. To say that a process carried out via software is different from a process carried out in hardware (or even more absurdly, that buying a $5 CPU transforms a process from "unpatentable software" to "patentable machine") makes no more sense than the flood of "do X over the internet" patents; hardware or software or wetware, internet or telephone network or messengers riding horses, a process is a process regardless of the components it's built on top of.
(The same "(computers|internet) are magical so we need to treat them differently" thinking also results in politicians passing silly laws concerning things like "harrassing someone via the internet" where the pre-existing laws are entirely sufficient.)
Very interesting: you make a good point about hardware. If I were to take my interpretation of software being unpatentable to the absolute extreme, I would say that the microcode in modern CISCy CPUs would also be unpatentable. This could lead to an interpretation where CPUs are also not patentable.
I had an inkling feeling that the software/mathematics argument is not compelling (not because software isn't mathematics, but because the practicality of invention and patent render it different in practice), but couldn't articulate it.
I still think that software patents have turned out to be dangerously unproductive in practice and so would rather see them abolished entirely than in their current form, but I think I more fully understand my position now. Thanks, Colin, for participating in this little Socratic dialog.
I still think that software patents have turned out to be dangerously unproductive in practice and so would rather see them abolished entirely than in their current form
I absolutely agree with you here. The current state is a horrible mess. Where I differ from most people here is in my belief that software patents aren't inherently a bad idea but that the problems are merely with their current implementation (and thus I'd like to see them fixed rather than abolished).
Devil's advocate here: business logic is often significantly incorporated into software. Much of this logic could be implemented on other platforms such as manual labor etc. But can't all of it be boiled down in the end as mathematics? Should we extend that assertion that far with regards to this argument?
cperciva is the creator of the Tarsnap backup service. So yes, he is very much a software developer. For future reference since you're new here, I suggest clicking on the username above a post to investigate a person's identity.
That said, it's obvious that the current system is broken; there are many patents which do not seem to do anything new, and simultaneously the cost of applying for patents deters the group for whom they are most important -- small innovators who are unable to commercialize their inventions.
The system needs to be fixed, not thrown out.