In this week's ZDNet Great Debate, I argued in defense of software patents. This is not a popular position among heavy internet users, and in the popular vote I lost 89% to 11% (I'm relieved to say that the moderator declared me the winner). I thought I'd take a crack at picking up another percent by doing three posts about the basic premises of the argument for software patents.
In this first of three posts, I want to address what I think is the number one fallacy of the anti-software-patents position: the assumption that software and hardware should be treated differently.
Software is not the same as mathematical formulas or literary text. Software is much more like a machine. A typewriter is no more of an invention than word processing software -- I'd actually argue that word processing software requires considerably more inventiveness. If a person comes up with an innovative new idea, the idea should be patentable regardless of whether the implementation is via a traditional mechanical machine or a virtual software machine. Once you understand the nature of software in this way, software patents make perfect sense.
One of the best pieces ever written on this subject comes from Martin Goetz, who among other things was the recipient of the first-ever software patent in 1968. As he puts it:
The choice of implementation for computer functions is a pure economic choice which mainly has to do with cost, speed, and flexibility. Patent applications normally show the preferred implementation and the patent must disclose the invention adequately for one skilled in the art. But the disclosure could be in the form of circuitry for a hardware implementation or a flow chart for a software implementation or a combination of both. Many professionals view software development as building a software machine.
As technology develops and disruptive inventions like the 3D printer become more standard, it will get harder to maintain the hardware/software distinction with a straight face. The hardware/software distinction is another of those oft-repeated but intellectually nonsensical distinctions that we need to do away with if we are to have an intelligent discussion about software patents.