Software Patents
Why are we teaching you about patents in a computer science class? Because there has been a lot of controversy about software patents.
-
Discuss this issue in small groups. Information is given below to help start your discussion. Try to develop three lists of ideas:
- Arguments in favor of software patents.
- Arguments for abolishing software patents.
- Ways that the software patent process could be changed to keep its benefits while avoiding the problems listed below.
In the US, software was generally not patentable until a 1981 Supreme Court decision. Patent law still makes no reference to software; it uses words such as "mechanism" and "transformation" (of the stuff operated on by the machine), and specifically excludes "mathematical algorithms" from patentability. But since computers started taking over the world in the 1980s, most useful invention has taken the form of software. The inventiveness may not even involve solving a hard problem in algorithm design, but just be a new way to use otherwise straightforward computational tools (a related idea is the "business method patent" on a way of running a business using existing technology). The standard example of solving a hard problem is Google; there were search engines before Google, but they weren't very good at pulling the link you really wanted to the top of the results list. Google founders Page and Brin invented a truly original, non-obvious way to rank search results in terms of relevance to the search query, and they patented the PageRank algorithm.
Why are software patents different?
People in favor of software patents argue that software isn't different, that inventors of software need to be rewarded for their work for the same reasons as inventors of machines.
People opposed to software patents raise several arguments:
- Historically, many software patents have been awarded for what some programmers consider obvious ideas.
One of the standard examples concerns the display of a cursor (the little arrow that follows your mouse movement) on a screen. It presented a way for the software to remember what was under the cursor so that it can be restored to the screen after the cursor moves away from that spot. For today's computers, with lots of memory, this is not so much of a problem, because you can have two copies of the screen in memory, one with and one without the cursor. But in the early days of computer displays, the "exclusive-or cursor" patent showed a clever, but maybe not clever enough to be patent-worthy, way to do it with only one copy of the screen pixels.
This problem doesn't apply to hardware patents because the government's patent examiners have more expertise in hardware and can better decide whether or not an invention is obvious.
- The usual story about patents is that they protect small-scale inventors in their garage workshops from having their ideas stolen by large companies that have the resources to bring a product to market quickly and inexpensively. But today, large companies such as IBM, Microsoft, and Apple file hundreds of patent applications every day, each of them about a small detail. These companies make agreements with each other that each can use the other's patents without payment, since both companies benefit. But a big company that violates a small inventor's patent and is sued can defend itself by counter-suing over hundreds of patents allegedly violated by the new inventor. The result is that it's very difficult for anyone not employed by a large company to innovate in software.
This problem doesn't apply to hardware patents because the pace of invention in hardware is much slower. You don't see hundreds of patents about sewing machines or electric drills filed every day.
- The patent process is too slow to fit software development cycles. It typically takes three to four years for the Patent Office to decide whether or not to issue a patent. That's not so bad for sewing machines or drills, because the pace of innovation for such machines is slow. But a new software technique is likely to be obsolete four years after it's invented.
Related to the last point, during the time between the filing of a patent application and the issuing of a patent, the patent application is kept secret, so that if the patent isn't approved, the inventor will still have a head start at developing and manufacturing the machine at issue. But if a patent is issued, it goes into effect as of the date when the application was filed. Therefore, during that three- or four-year gap, it's very easy for another software developer to violate the patent unknowingly, and discover only years later that she is being sued for all the profits made from the invention. This seems unfair.
- Finally, because there's no cost to making another copy of a piece of software, there is a strong community of developers of free software, who work collaboratively in large groups to refine and debug the software and who post the results on the Internet for anyone to use or modify for their own purposes. Software patents threaten free software developers, who don't have the budget for costly patent searches. There's no "free hardware" in the same sense because making another sewing machine does cost money, so it can't be given away. (But there is "free hardware" in a different sense, namely that people publish the design for a piece of hardware and allow others to make copies; the Arduino microcontroller is an example. And other people build computers that are free of restrictive software.)
A particularly harmful special case of posing difficulties for free software is the situation in which a commonly used standard is covered by a patent. For example, the GIF and JPEG standards for representation of a picture both use patented methods to reduce the size of the file.
- Here are some more articles you might read. Do a web search for "software patents" to find out lots more.