I’ve found that defenders of software patents tend to focus their energies on debunking common arguments against software patents. They never seem to get around to explaining why software patents are a good idea to start with. Solveig’s Singleton’s paper fits with this trend. Here’s the closest she comes to describing the benefits of software patents:
Early on, software was often parceled out along with hardware; trade secret offered protection; the cost was, due to lack of disclosure, some clever ideas have een lost. Then it became generally accepted that software would be protected by opyright. This works well against some types of copying (for example, counterfeiting) and for some types of programs (for example, games). But patents were seen as providing more certain protection against the copying of the function of a program more broadly (“look and feel” cases that sought to broaden copyright protection being problematic). The term of protection for copyright is unnecessarily long for software. In theory, patent law would extend protection only to the non-obvious and novel. That together with software’s technical nature seemed a good fit with patent law.
It’s certainly true that patents provide “more certain protection against the copying of the function of a program more broadly.” But it’s far from obvious that “protection against copying” is always desirable. Outside the patent context, such copying is often known as “competition,” and public policy generally aims to enhance it. I’m glad that Microsoft copied Apple’s operating system, Netscape’s browser, and Google’s search engine. It’s been good for me as a consumer. It’s not obvious to me what purpose is served by making it harder for companies to copy the broad features of each others’ products.
And as far as I can see, that paragraph is the closest she comes to explaining what purpose is served by allowing the patenting of software. The rest of her paper argues that software patents don’t do as much damage to the software industry as people say it does, and then proceeds to offer suggestions about how to minimize those harms. That strikes me as an underwhelming defense. If policy X has no benefits, then it’s a bad policy, no matter how small the harms of policy X might be.
In her defense, she’s not alone in this. I have yet to find a paper that makes a serious effort to explain what software patents accomplish that weren’t already being accomplished by copyright.
I also found this line of argument a bit puzzling:
Software is not “liberal arts” in a traditional sense. Software’s linguistic characteristics are there to help the human mind get a handle on the machine, like the letters on a keyboard. The linguistic characteristics of software are in a sense superficial. While software, too, is ultimately a “performance” for the computer user, it is not necessarily so. One might run a piece of software that the user is not at all aware of, or run software with no user present. An analysis that pronounced two software programs to be essentially “the same” even if they both produced exactly the same output on the screen would not be very satisfying in answering the question of whether one developer was copying another’s work, especially if one knows the programs are written in different languages and running on different types of hardware.
The term she’s missing here is “source code.” The copyright on a piece of software is not tied to its output on the computer screen. Indeed, it’s possible for two pieces of software to have identical-looking interfaces without one violating the other’s copyright. Copyright applies to the sequences of instructions that constitute the software.
The “linguistic characteristics” of source code are anything but superficial. As I’ve written before, code is expressive. Programming languages have grammars not terribly dissimilar (although typically much less complex) from the grammars of human languages. A programming language is an especially precise way for a programmer to describe a particular process. It’s entirely irrelevant whether the description is intended to be used by a computer or another human being.