
#2 is a bit trickier and I have my reservations on this. Why should a software invention be any different from a hardware invention. It's still a process of human imagination and just because it's stored inside the machine does that make it any less valid than a piece of machinery? Just as the GPL relies on copyright we can still have open source software with patents if we explicitly allow the use of our intellectual property when we contribute.
However in #2 we don't want to be able to patent the too obvious e.g. One click shopping from Amazon - should that really be patentable?
If I were the benevolent dictator (and had infinite resource to make investigation worthwhile), I'd probably grant patents with various different lengths of monopoly, based on time to market and potential useful life. A software patent lasting one to three years sounds workable. I believe the standard life of a patent at the present is 20 years - look at how much software (and life in general) has changed from 20 years ago. With the availability of the information, meaning no-one truly has to "work alone" any more, you should surely be able to "innovate" in a field within three years! The argument that #2 doesn't handle is that software, as in algorithms, is maths; and the standard argument is "maths exists already". You're just finding a way to describe something, you're not really inventing anything. Two people invented calculus simultaneously, so it surely must happen every day with programming - why should the fact that someone else came up with the idea independently, deny you the right to use it? Something that would take another firm 10 years to come up with itself, or a week to reimplement if they read the patent documentation, seems a worthwhile trade-off for society to have public documentation about. With the pace of life these days, there is no excuse for patents (or copyright, for that matter) to last nearly as long as they do. Craig