In fact, in an ideal world, Id rewrite the law to allow software patents but require a working Open-Source implementation as a condition of getting one.
But, alas, like all to many people, he doesn't actually make it clear what he means by "Open-Source implementation". Sure, it's clear that he's asking for the source code of an implementation of the patentable software idea. But what about the rest of the points of an "Open Source"(tm) license? Where's the boundaries between what people can/can't do with that software before, during, and after the presumed grant of the patent (or when the patent is overturned)?
Also, Tim doesn't seem to get into the issue of the duration of the patents w.r.t. software... 17 years is an awful long time in the software industry. I've heard a lot of people talk about very short spans for software patents but I keep coming back to 5 years as being a reasonable tradeoff (but that presumes that the PTO gets more or less fixed (but that's a whole 'nother discussion, ugh)).
I read about a rather large settlement that Sun made with Kodak. Something over patents and legal mumbo jumbo. If this relates to that, could you take a moment to explain it so some of us regular reader types can undertsnad it?
I think Bray's thinking from first principles starts in the wrong place, both conceptually (and maybe historically).
Patents aren't really relevant in the case of new machines where people can easily pull them apart to find out how they work. (The point of patents *isn't* to make anyone rich. There aren't laws designed to make anyone else rich, why should there be laws to make inventors rich?)
The point of patents, originally, is (as Bray rightly also points out) to ensure inventors don't try to keep *secrets*.
In particular, trying to keep your "process" secret. A chemical process might be very hard to reverse engineer from the final product. And in this case, it is plausible to hide it. Patents exist to encourage you to publish your knowledge without losing it to a rival.
Ironically, this means software patents might have had a point in the case of compiled languages, where the finished object code couldn't easily be reversed to the elegant source. But in a world where what are increasingly important are the following :
* interpreted / scripting languages
* public / open protocols;
* and where, far from hiding their development processes, most process inventors actively run around publicising their process as hard as possible, to sell books and courses and consultancy around it;
there seems to be no real reason for software patents at all.