Originally Posted by stelligent
Why are software patents ridiculous?
Ridiculous is probably the wrong word, but there are lots of problems with software patents.
I would start by admitting that there are a few very good software patents in areas like cryptography and compression that describe extremely specific algorithms. In those instances, reading the patent is enough to implement the system, the amount of code required is tiny - and the idea is likely non-obvious, especially as most of the obvious algorithms were invented back in the 60s.
So what are the problems?Specificity:
One problem is that far too many software patents do something analogous to patenting the idea of compression itself rather than of a particular algorithm for achieving it. There's no way to innovate around these patents, if you want to solve the same problem - you are caught within their claim.Duration:
Software patents run for around 20 years, but 20 years is an eternity in software. If Visicalc had been granted a patent we would only have had a few years of free competition in spreadsheets - perhaps not even that if they'd managed to delay the filing date or use a continuation patent.Numbers:
A big part of the problem is just scale. There are 32,000 chemical engineers working in the US according to the department of labour, there are around 700,000 software engineers. There simply too much creation going on for patents to be a viable way of doling it out. They evolved in an era when invention was rare, but now anybody with a computer has the means for it.Crazy problem domain:
Maybe people from other disciplines would disagree, but I think software engineers would claim that they have the largest problem domain of any discipline, and not only is it huge but it is continuously shifting and growing both as hardware provides us more power and as the world around us changes. The sheer size of the problem domain means that it's rather backwards - rather than exploring a large solution space of a small number of problems we're busy trying to apply the smallest possible set of solutions to the largest possible set of problems.
Just because something wasn't done for years doesn't mean that the solution wasn't obvious, in software it may simply have meant that the problem hadn't yet occurred or hardware hadn't yet permitted it to be implemented.
That 3-M patent is a great example of how a chemist stumbled upon a solution to a problem and then went looking for a problem to apply it to. In software we are for more likely to have stumbled onto a good problem, and then gone looking for a solution.