Given the amount of recent (and ongoing) controversy about software patents it is interesting to see how the hacker news community, those who are generally doers, feel about them.
In principle, they could give a lone programmer or small company that invents something awesome the edge needed to break in to a market dominated by large companies. I consider this to be desirable.
In practice, they're used by large companies to prevent lone programmers or small companies from breaking in to the markets they dominate. I do not consider this to be desirable.
The biggest problem here is the transaction costs. If the costs to get and enforce patents were much much lower (time, money, opportunity cost), then patents would be really good. Only the large corporations have enough cash to enforce patents successfully.
I'm not sure that's the case. I think if patents were cheaper to get and enforce, people would patent more trivial things and sue each other far more often. Look at copyright enforcement as practices by the RIAA and Righthaven.
What really needs to be cheaper and easier is getting invalid patents overturned.
Governments aren't conscious. Politicans have been convinced to support policys that help large corporations. Whether the politicans do this knowingly in return for campaign donations, or unknowingly because lobbyists convinced them that the patent system is a good idea, is unclear.
The distinction is important, because if it is the latter we just heed to lobby the right people. If it is the former, we just don't have enough money.
While I agree that the second case is often the norm, I do have one counter-example -- I used to work for Riverbed Technology, a 9 year old company which does WAN optimization and competes against Cisco and Bluecoat, among others. Riverbed is (or was?) generally regarded as the tech leader in the market and its head start is based on a patented compression scheme. There's no question that the patent is a big part of what allowed the company to survive the entrance of 800-lb gorillas into the market and I'm fairly certain that if software patents were abolished today, that algorithm would be in Cisco's WAN solution tomorrow.
I still think the software patent system as it stands now needs serious reform but you know, that saying about a broken clock and all.
....and I would say that if Riverbed didn't provide the equivalent support (lol) as Cisco or didn't have the complete integration solutions that Cisco offers, then Cisco SHOULD win out. If you innovate and you're actually better, then you should win. If not, you should go out of business.
Isn't this what "free market" is all about? You can't have both.
...and that's why I'm a bit of a socialist ;) Textbook free market theories make a lot of idealistic assumptions that just aren't true in the real world. The best product doesn't always win, particularly when your competitor sees easier routes to gaining an advantage than the slow, expensive work of improving its own product via investment in its own R&D.
The problem that patents are supposed to be solving is incentivising innovatoion by allowing them to profit from their innovation. The pro-patent argument would be that without patents riverbed would have been less likely to innovate in the first place and the world would have been less well off.
I don't think this is a pro/against free market. Free markets rely on some definition of property rights. This is about making those definitions.
I'm simply not convinced that the concept of an update button acting on the Internet was innovative - not when I could have sat down in high school and worked it out in a day, and when the very concept of an Internet makes it obvious. And yes, I was doing software in 1992 (finished college in '88), so I think I understand pretty damn well what was innovative at the time.
[Edit on re-reading: I couldn't have sat down in high school and done this in a day because I had never heard of the Internet in 1980-1984, but I could have made it work against Compuserve.]
This, like every other "patent on three hours' work", is nothing more than parasitic rent-seeking behavior, and it is anathema to the vitality of our economy. Lodsys should be deeply ashamed of trying to present this as a "solution" when they clearly simply want to profit from the work of others.
With this type of support for abolishing software patents from the people who write the software; it seems we must be able to organize some sort of strike to just put an end to it immediately.
You can't because programmers aren't in control of themselves. The ones who have enough cash and power are more than willing to continue with the present system or they cash out and leave someone else to do the work of opposing it.
I said abolish, but really I think we could have a workable solution by either giving the PTO the funding it needs to do a good job, or eliminating the presumption of validity. The big problem we have now is that the law assumes that all patents are properly examined when the PTO doesn't have the resources to do a proper examination.
I see no reason why an invention should be unpatentable simply because it involves software.
That said, it's obvious that the current system is broken; there are many patents which do not seem to do anything new, and simultaneously the cost of applying for patents deters the group for whom they are most important -- small innovators who are unable to commercialize their inventions.
This intrigues me, because fundamentally I see software as a form of mathematics. Given that mathematical equations aren't patentable, I don't believe that software should be either. Moreover, it seems that we already have many things in software preventing people from copying code wholesale (SaaS, the fundamental difficulty in reverse engineering compiled binaries). As a professional cryptographer/mathematician, how do you feel about the relation between mathematics and software?
Devil's advocate here: business logic is often significantly incorporated into software. Much of this logic could be implemented on other platforms such as manual labor etc. But can't all of it be boiled down in the end as mathematics? Should we extend that assertion that far with regards to this argument?
I think there's a big difference between a process and the underlying mathematics which explains why the process works. The matrix factorization which underlies the FFT was known long before Cooley and Tukey came along, but they were the first people to say "hey, this allows us to compute the DFT in O(N log N) time".
I don't think it should be possible to patent an equation, but I'm perfectly find with people patenting (subject to non-obviousness, lack of prior art, etc.) ways of using an equation to do something useful.
If patents had existed when Scipione del Ferro discovered how to solve cubics, I would have no problem with him receiving a patent on his method -- but because patents did not exist, he never published his method (he kept it as a "trade secret") and it wasn't revealed until 19 years after he died.
Obviously the DFT is not patentable any more, but yes, I see no reason why Cooley and Tukey shouldn't have been able to patent it.
I think the court's decision in Gottschalk v. Benson demonstrates a level of understanding of computers typical of members of the general public in the early 1970s -- i.e., almost none at all. To say that a process carried out via software is different from a process carried out in hardware (or even more absurdly, that buying a $5 CPU transforms a process from "unpatentable software" to "patentable machine") makes no more sense than the flood of "do X over the internet" patents; hardware or software or wetware, internet or telephone network or messengers riding horses, a process is a process regardless of the components it's built on top of.
(The same "(computers|internet) are magical so we need to treat them differently" thinking also results in politicians passing silly laws concerning things like "harrassing someone via the internet" where the pre-existing laws are entirely sufficient.)
Very interesting: you make a good point about hardware. If I were to take my interpretation of software being unpatentable to the absolute extreme, I would say that the microcode in modern CISCy CPUs would also be unpatentable. This could lead to an interpretation where CPUs are also not patentable.
I had an inkling feeling that the software/mathematics argument is not compelling (not because software isn't mathematics, but because the practicality of invention and patent render it different in practice), but couldn't articulate it.
I still think that software patents have turned out to be dangerously unproductive in practice and so would rather see them abolished entirely than in their current form, but I think I more fully understand my position now. Thanks, Colin, for participating in this little Socratic dialog.
I still think that software patents have turned out to be dangerously unproductive in practice and so would rather see them abolished entirely than in their current form
I absolutely agree with you here. The current state is a horrible mess. Where I differ from most people here is in my belief that software patents aren't inherently a bad idea but that the problems are merely with their current implementation (and thus I'd like to see them fixed rather than abolished).
cperciva is the creator of the Tarsnap backup service. So yes, he is very much a software developer. For future reference since you're new here, I suggest clicking on the username above a post to investigate a person's identity.
I've spent the last few years working on a new approach to developing software. I've spent a lot of my own money (at least $40,000 USD) on research to perfect it. Currently, from the research I've done, I've found no prior art.
Should I be able to patent this technology? Should I just release it? If I just release it, wouldn't a large company patent aspects of it and sue me for infringement (it costs $ to prove prior art).
At the very least, wouldn't a patent give me the option to open source the technology without the risk of aforementioned large company coming after me? And if said company does come after me, would it not give me a chance to buddy up with another "large" company?
Should I be able to patent this technology? Should I just release it? If I just release it, wouldn't a large company patent aspects of it and sue me for infringement (it costs $ to prove prior art).
If you publish your code, it becomes prior art. It doesn't cost much to stand up in court and say "uh, look guys, this code you're suing me over was published before you applied for your patent", and the case would be thrown out immediately.
In practice I doubt it would ever get that far: If there's one thing patent lawyers pay attention to, it's dates, and lawyers hate looking like idiots.
Lawyers do sometimes mess up on dates. I hate to trot this story out yet again, but MIT did get sued because of my dorm's laundry webserver. A webserver which had been Slashdoted before the company applied for its patent.
Of course, they did back down once the facts were explained to them so you're right at least that far.
I would hope it would be easy to show prior art, but stuff like this (http://m.theregister.co.uk/2011/04/21/texas_jury_says_google...) is where it becomes "hard" to prove prior art. Because you have to prove it against a jury of, generally, non-technical people. Here is the primary claim:
* a linked list to store and provide access to records stored in a memory of the system, at least some of the records automatically expiring
a record search means utilizing a search key to access the linked list
the record search means including a means for identifying and removing at least some of the expired ones of the records from the linked list when the linked list is accessed
* a means – utilizing the record search means – for accessing the linked list and, at the same time, removing at least some of the expired ones of the records in the linked list
So I want to either abolish them or make software patents legal for only 2 year maximum.
My reason for this is because unlike hardware patents, it does not take a factory and malicious intent to get a clone for a software patent. A 2 year lead on the competitor is extreme in the tech world. Look what happened with the iPhone, it dominated the market in 2 years, and then Android same story. The speed of information and technology today we MUST have a shorter timeframe for patents.
The problem with software patents is that since they are non-physical, they are really just mathematical solutions. And the problem with those is that 10 programmers will come up with 10 completely ways to solve the same problem, but due to patents the first to paten a solution can use the other 9 (-John Carmack) and this problem is very much true.
I think the software field is so fast moving that the current time period for a patent is not justifiable. But I do think that someone who invents something should be able to get some advantage out of it, rather than having a Google just waiting to take the invention and make it big.
So I say make the patent expiration period 30 months. This gives you substantial lead time, yet prevents issues like people fearing Apple's multitouch patents years after they've gotten the patent.
Plus it really takes patent trolls off the table, since these patents will have likely expired before they can get them. And it also takes off the table acquiring companies for IP.
My vote would be "Yes, if the Patent office approved only real innovative things". For example if I come up with some revolutionary face recognition technology, that seems novel enough to be patented. But if I just make a form with a submit button (Google's Patented home page), or Amazon's one click purchasing those are just ridiculous as a patents.
Given how poorly the USPTO has performed thus far, it seems impossible that this could be correctly implemented. Better to err on the side of openness, and abolish them altogether.
It's obvious that there are enormous swathes of innovation in the IT world that either happened or would have happened without patents. Amazon would probably not have thought twice about developing one-click checkout if it hadn't been patentable and it seems perfectly plausible that RIM got the idea for the BlackBerry independently of that troll that sued them.
But there are also some pretty deep stuff that seems less obvious, my favourite example is MP3. I'm no expert in the field, but it does not seem at all obvious to me to compress music like that, and it seems to be the result of a real invention process.
It's clearly in everybody's interest that they publish their codec as widely as possible, rather than make a broke-by-design binary-only distribution. Why should they not be allowed the same protection as, say, Volkswagen inventing a new fuel pump?
Yes, the "invent a cool codec / protocol, live on the royalties" business model would be difficult without patents.
However, there are a lot of very smart people who invent formats and don't patent them. For instance the JPEG format is clever in a very similar way to the MP3 format. In this instance the format was created by companies with an interest in a great format for their devices - cameras for example.
MP3 (well, a lossy music codec of some kind) could have been created by a similar group trying to make music players interoperable. It might have even been created by open-source advocates. Think Ogg-Vorbis, for instance.
I don't think that we'd live in a world with less cool formats if patents were abolished (yay!). If a format is required to solve a problem, it will be created. Open protocols without patents should be encouraged.
I hate this approach to governance. How can we ever hope to run a competent democracy when the citizens of that democracy assume that government can't be improved?
On what do you base the assumption that it is possible for us, or anyone, to run a competent democracy? There's no historical precedent for it; in fact quite the opposite.
Theoretically, it's possible, but in theory communism would work if everyone just did their best to make it work. Reality is different.
Well there are degrees of dysfunction. Compare, for example, the healthcare system of Western European countries to that of the US. I realize this is a charged issue where people have different ideas of how it should work, but for a certain set of goals (maximum coverage, minimum cost), Europe generally does much better than the US. Other things (diversity, productivity, entrepreneurship, I would argue) are done better in the US.
There are obvious and simple ways the patent system could be improved. For example, drug patents already are treated specially, in that they expire quickly--perhaps a similar system could be applied to software patents. Or, exemptions could be made for implementations of patented software that exist for reasons of interoperability or compatibility. Another option would be to enshrine into law the promises companies make not to sue. (As in, the company is not allowed to renege on their covenant not to sue--this is actually probably not really possible from a legal standpoint, but I'm not an expert.)
If google really has a patent on that home page, I'd suspect it is a design patent, which is an entirely different kind of beast. It's more like trademark rights.
Its a slippery slope. Who gets to define what is ridiculous? You can say 'the courts', but one judge may differ from another and therein lies a deeper issue.
I think the worst practical thing about software patents is that they create uncertainty. If there is one thing that is universally abhorred in the business world, it is uncertainty.
There needs to be a fast, cheap, reliable method by which small businesses can determine whether they are affected by anyone else's patent rights, and if so, by whose and to what extent. This way they can enter useful negotiations and adjust or abandon their plans as appropriate if patents are involved, or they can build their business free of unknown liability otherwise.
Given that I can see no viable means of ever constructing such a system, I don't see how patents or any similar legal tools will ever be anything but a tool for those with vast resources to crush competitors with few resources through means other than fair competition in the market.
I can't stand the idea that I might be at my computer, working with code, and develop something independently which later causes me to get sued. Abolish all software patents.
Trade secret actually isn't a bad option, if you patent truly had legs then your secret is probably going to be safe for a fair amount of time. If your patent is getting people on a technicality and really isn't very innovative then your secret won't be much of a secret.
The argument against trade secrets is that they hurt innovation by impeding the flow of information. Patents allow a company to publish their innovations without fear of someone coming along and simply stealing it. By allowing inventors to publish their information with little competitive disadvantage, we enable other inventors to build on their predecessors efforts.
The current state of patent disclosure is such that your arguement makes little sense. Virtually nothing in software patent disclosures informs people about "how to do it". Almost all of the disclosures are vague and unspecific. If you, as a programmer, hear the title of a patent, you basically know how to do it.
Yeah, with Google search patents, they have been published years after the system was developed and is probably much evolved by now. Looking at the text in them, they only provide very vague guidelines to say SEO's try to learn more how how ranking works.
That's not how software patents work in practice. They are written to be as broad and non-specific as possible, because their purpose is to be legal weapons. They are not about spreading innovation; competition, in functioning markets, is sufficient for that.
I think patents can be (and have been) distorted to be used as weapons, but their real purpose is to help innovation as I described.
The argument you're making is basically that the system right now is broken, so we should just throw it out. I do agree that it's broken, but I argue that fixing the system is a better solution than throwing it out.
The purpose of a patent system and the purposes of people using a patent system are two different things. The first one might motivate lawmakers; but it is the second one that actually matters.
Do you honestly believe there is such a problem with sharing innovation in the software industry, that we need government intervention to encourage sharing?
You know, I heard PG argue this in his software patent article, and I don't buy it. In the end, necessity is the mother of invention. Software engineers invent things because they need them. They would not, by default, either try to keep it as a secret or patent it.
Let's take the funny example of Amzon vs B&N on the one-click system. Do you think Amazon would not use the one click system if it were unpatenable? In the case of modern software patents, keeping it a secret is equivalent to not using it all. Since you invented it in the first place, I find this outcome to be excessively unlikely.
You are also suffering under the misconception that a lone programmer or programming pair would be incapable of standing up to big markets with a software invention. If his invention is really worth it's muster, he can come out with a profitable product that blows big companies out of the water. I've seen it happen before.
Let's take what I often here cited as one of the best software patents (personally, I think it is the worst.. but that's another story), RSA. Did that patent really prevent others from using/profiting on it? Hardly (although in most cases the "profiting off of" thing is a stretch, unless the explicit purpose of their product was cryptographic in nature.
Now, what if they had kept it a trade secret? Just look at their RC4. They kept it a secret and got a few years of exclusivity but eventually we all got the algorithm, because that's just how software works.
20 year exclusivity contracts are waaaay too long. I think the trade secrets route where "you have it until others figure it out" is far more fair and workable.
I very much favor the trade secret option, at least for software.
Patents are (theoretically) a pragmatic compromise between 1) the benefits to society of having people publish their ideas, and 2) the drawbacks to society of giving someone a time limited monopoly on the exploitation of the idea.
For software I believe the drawbacks in general far outweigh the benefits. There might be examples of "nobody else would have thought of this within the patent period" inventions, but they are rare enough that it does not make sense to have special laws for those cases.
In the physical "better mousetrap" world the issue is different. The situation is similar to the Hacker News startup world in that ideas are plenty. However, the cost of productizing the ideas is high, and there is less of a first mover advantage, access to distribution channels is more important. So patents in the "better mousetrap" world protects not the idea, but the investment of turning the idea into a product. The drawbacks of patents here are also smaller, as you rarely build unrelated products upon the "better mousetrap", so the cost of a monopoly often stays limited to the specific market. Patents here might be a good compromise.
In medicine there is a similar situation in that many ideas are "free" from public funded research, but useless without the very expensive clinical trials. The patents basically protects the investment in clinical trials, and no so much original research. However the cost of patents is huge. People die because they can't afford patented medicine (which include initial cost for the clinical tests, marginal cost, distributed cost of failed products, and profit), even though they could easily afford the marginal cost alone. It would be good to get rid of patents here, but they must be replaced with another system to cover the cost of the clinical tests.
your first point wrongfully assumes that the patent system is the dominant mechanism for spreading inventions. it may have been intended to work this way, but this is not how it works in real life.
if you have ever worked for a software company that has a competent legal department, you know that you must stay away from patents. under no circumstances are you allowed to communicate that you have looked at any given patent or even acknowledge the existence of a patent.
patents are treated with more fear than toxic waste in IPR sensitive businesses.
besides, if you don't publish and you do something clever, how long do you think it would take for the competition to figure out what you were doing? or for people in academia to publish something on it? or for some independent blogger with too much time on his or her hands?
I wish people would consider reality rather than some make-believe world that does not exist when thinking about patents. so much time, money and intellectual energy is wasted on this nonsense. not to mention that it is clogging up the courts with absolutely pointless legal battles.
This John Carmack quote is relevant and shares your sentiments:
"The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying."
Except it's even worse than that: usually patent trolls haven't even written the code to solve the problem. Working code is not required to be granted a patent.
And they could file for the patent after you have done the work. You then have the hassle and expense of proving that your work came first and even then such cases often don't go the way they should.
I great example of the trouble someone had to go to prove they were first is the ABC computer. It's an important case if you consider that without John Atanasoff the personal computer would never have existed. At the time IBM and some other corp I can't remember the name held some important patent on memory and other things that would prevent anyone from creating a personal computer without paying IBM. Those patents which had come from the creators of ENIAC were later found to have been heavely (well in reality stolen) from the ABC computer. After years of battles, IBM lost the patents and right after that the PC came to be.
For a worse horror story, just take a look at Farnsworth trouble with RCA about the TV patents.
You could still lose that fight, even if your work came first, if you never published it or filed a patent for it. First to invent only holds if you reduced it to practice (either by actually inventing the thing, or boiling it down so someone reasonably skilled in the art could then invent it) within that year. You lose rights to it after that if someone else wants to patent it. There's also first to conceive stipulations. The intellectual property class I took last semester would have been a lot easier if the U.S. just went first to file (like basically everywhere else).
The US is trying to make that transition. The bill passed the Senate, and Committee in the House, and goes to a full House vote in June 2011. But it will likely be difficult for the two bills to match and be agreed upon because of all the other crap in the bill which has good stuff and bad (much like the overwrought SBIR reauthorization bill that can never seem to pass and it just extended ad infinitum).
I like the "first to file" idea, but it puts the small inventor at a disadvantage. The main benefit is that it will hopefully lubricate university tech transfer offices. No more "oh I'll put in a disclosure and wait and see, I'm safe." it'll incentivize the inventors to file a provisional as soon as possible. But of you're building (or hacking) something in your garage you'd better get a patent attorney quick. And be patient, because response times on a first-to-file system will be horribly slow even compared to today's glacial system.
And not only you might accidentally break patents - you might not even be able to figure out if you break patents at all without paying a lawyer to translate the patent specifications. Maybe it's just because I'm no native english speaker, but I often don't get patent texts. Coding around patents is like walking blindfolded through a minefield.
One could argue that you shouldn't code around patents in the first go round. Because if you demonstrate that you knew about the patent and then proceeded to infringe on it, you could be liable for 3X the amount.
If you don't know about the patent, then you're only liable for 1X the amount.
Moral of the story: don't read patents, you can only get into trouble. If you get sued after the fact, then you can change your code to work around it.
I'm not sure if that really lowers your overall risk. Finding out afterward that you accidentally broke some patent which you could have avoided easily isn't necessarily better even if you don't have to pay treble damages.
I'm a native English speaker and I don't generally understand patent texts. In fact, I've filed quite a few patents and have always been amazed that I give something readable to a lawyer to write up and they turn it into something that I can't understand any more. The idea that a patent is the medium through which an author shares their invention with the world is rather perverse.
So I agree; coding around patents is difficult given that they tend to be so hard to read and understand.
You have to understand, though, that legalese isn't English. It may look like English, and even work like English in ways, but its not English. Saying that legalese and English ought to be equivalent because they share words and syntax is like saying C++ and Java ought to be equivalent because they share keywords and syntax.
Alternatively, you could say that the point of "legalese" is to define and convey ideas more explicitly than they can be defined and conveyed in English. Try writing a contract in "Plain English" - it will necessarily be full of ambiguity and uncertainty, which defeats the purpose of having a written contract.
Similarly, although programmers don't write code in "Plain English" I don't think we should begrudge them the right to keep using obfuscatory programming languages - even if it keeps the bastards employed.
The argument for specific languages for programmers is stronger because programs are intended to be interpreted by machines. I would be perfectly happy with a legalese that is opaque to the layman if it could be fully parsed and implemented by a machine.
I also believe that, by defining one's terms clearly, it should be possible to write unambiguous plain English contracts. Additionally, an English-parsable legalese needn't necessarily lead to an unambiguous interpretation when parsed as English, so long as it is unambiguous when parsed as legalese, and most of the meaning is retained when parsed as English.
For patents in particular, though, a big part of the justification is that they constitute a disclosure of the invention to other practitioners in the field. It's a quid pro quo: we grant you a limited term of protection, in return for you divulging the details.
As part of that arrangement, it seems like we ought to require that the disclosure be in English, not merely in a tongue that shares some English words and syntax.
English? Hah. I'm against the whole patent charade but if we're going to grant them, the inventors should be forced to disclose the entire goddamn source code, development infrastructure, and version control repository which proves that they've actually invented something and not just handwaved in the direction of an idea.
The rumor I hear from lawyers is that they aren't obfuscated to confuse other engineers (who are never going to read it) but to confuse the patent examiners. If they can understand it, they will call it "obvious", but if they can't read it, they'll assume it's patent-worthy.
I have seen quite a few people who have filed patents state that they don't understand their own patents and (as a general statement) I find this puzzling. A patent has 3 main sections (a) background and prior art (b) description of the invention and (c) the claims.
The claims in particular are indeed technical and difficult for a lay person to readily understand. But the background, the prior art and the description of the implementation are not. Background and prior art are a summary of the technical context and I have never had any difficulty reading or understanding this section. The description may be rather long winded as it has to detail how to implement the invention so that it may be implemented from the description by someone skilled in the art, but it isn't legalese and should certainly be understood by the inventor! The lawyer can't write this by him/herself.
I can certainly sympathize with those who can't follow the claims (although I have found it to be perfectly possible with determined effort), but I simply fail to understand how a lawyer turns it into something "I can't understand any more." Find alien and unfamiliar - yes. But incomprehensible?
In theory that shouldn't be patentable. What John Carmack is describing is something that is obvious to a craftsperson in the field.
OTOH it does still preclude John from being presented with a problem and then doing someone quite ingenious to do a great solution that seems actually quite "novel", to learn that someone else did it years before.
But for patents, if you follow logical steps from a given problem then you shouldn't be granted a patent.
In fact the way patents should work is that the patent officer spends a week trying to solve said problem themselves. And only after that attempt, read the actual patent. If they're struck with, "Ahh... yes, good idea, wouldn't have thought of it mysefl" then its potentially patentable. But if the patent officer says, "Yeah, that was my second attempt." or "that's largely derivative of my general line of logic in my other attempts" then it shoudln't be patentable.
> In fact the way patents should work is that the patent officer spends a week trying to solve said problem themselves.
Does that really sound at all scalable (or even reasonable) to you?
I imagine that many of the proposals that move through the patent office are highly contextual and may be simple ideas wrapped up in daunting language. It seems reasonable that it would take far more than a week to even get your arms around some of the problems themselves, let alone the solutions.
Besides, if patent officers were such able critics, wouldn't they be more useful as engineers?
> In fact the way patents should work is that the patent officer spends a week trying to solve said problem themselves.
Does that really sound at all scalable (or even reasonable) to you?
I imagine that many of the proposals that move through the patent office are highly contextual and may be simple ideas wrapped up in daunting language. It seems reasonable that it would take far more than a week to even get your arms around some of the problems themselves, let alone the solutions.
Then spend more than a week on it. I didn't use a week as "cap", but rather a starting point. If it takes a month, sure then spend a month. You'll get no arguments from me. Especially since patents regularly take 5+ years to get approved.
Either you're trolling, or you're unaware that there were close to 500,000 patent applications filed in 2009 alone[1]. Let's say you have 500 able critics; that puts us at 1,000 patents to review per officer per year. Let's assume any given officer can review an application within one week with reasonable efficacy; it'll take ~20 years to review one year's worth of applications (1000 / 50; I excluded two weeks for vacation).
Your position is not consistent or just poorly thought out, and poorly researched. Or maybe I'm just a troll.
> In fact the way patents should work is that the patent officer spends a week trying to solve said problem themselves.
Does that really sound at all scalable (or even reasonable) to you?
So clearly you were saying that a week is too much time to spend on a patent. OK.
I imagine that many of the proposals that move through the patent office are highly contextual and may be simple ideas wrapped up in daunting language. It seems reasonable that it would take far more than a week to even get your arms around some of the problems themselves, let alone the solutions.
But in a week you can't understand the problem, much less a solution. So you seem to be saying that having a system where examiners approve patents they don't understand is preferred. I say that if the examiner can't understand the solution, much less the problem, then the patent is rejected. This will really get people to focus on writing clear patents, rather than the legalese that passes for a patent today.
But lets get to numbers. There are not 500 examiners. There are more than 6,000. So at one week per patent it's now less than two years per patent. That's actually about on par with the time today. That's extremely reaonable. And I'd argue that making patents more expensive, with less protection time, you'd reduce the number of SW patents, and thus probably can turnaround SW patents more quickly.
Regardless of whether or not it is feasible to have 6,000 patent examiners perform this process, it still seems remarkably subjective: a given patent examiner, with all of his/her individual strengths, weaknesses, imperfections and idiosyncrasies, determines if s/he alone can solve the proposed problem and, if not, essentially says, "Aw shucks, this is patentable!"
And to me that is one of the many problems with (software) patents: it relies on an inherently biased, subjective process to determine whether this objective, rigorous piece of thought is worthy of a monopoly.
If subjectiveness in judging is your concern, I think there are bigger fish to fry than patents.
And also recall with patents you are guaranteed another appeal to a different body if ever sued, the courts, where you can invalidate a patent. And if MS wins the i4i case the burden of proof will be even lower. And note, there is legislation going through congress right now to make it harder to win a suit, and also expands patent reexamination.
My point? The patent examiner is an important first step, but a patent that clearly has no legs should be defeatable -- if not now, in the near future.
The conclusion that you should be reaching is software patents are simply not a viable mechanism, period. In other words, even if you like the idea of patents in theory, in practice they do not work because we will never have enough patent examiners with the necessary expertise much less time to make valid decisions on patent applications.
Can you imagine there is one new invention that pertains to your job each year? Now consider the number of different jobs there are. Now consider the vast number of other activities outside of work.
Or think of it this way, a mobile phone: it could have novel programming, novel chips, novel screen design, hinge, case plastic, button return springs that last longer, easier to use touchscreen, stronger glass, more flexible, brighter, etc., any of these things might give it the market advantage. How many other things do you use each day, each of them could potentially be improved and that improvement be registered in a patent.
The parent spoke of applications for patents anyway. Granted patents in the US are apparently about 40% of this.
When a suit is filed, an engineer is given the problem and told to build clean-room implementations. If he gets it in under a month, it's obvious and overturned. If he gets it in a day, it's extremely obvious and the plaintiff is fined three times the asking damages. If he gets it in under an hour, thirty times.
This disincentivizes completely bogus patent claims, and should bring the total rate down to something manageable.
Variant:
When the proposal is submitted, the engineer attempts the recreation. If he fails, the patent office pays him. If he succeeds, the attempted patenter pays for a month of his salary. If he succeeds in under a day, the patenter pays a year.
This gets up-front examination, but weakens the incentive to hire good engineers and doesn't guarantee to make trolling unprofitable.
Unfortunately, this doesn't work if there's any possibility that the engineer has seen the patent (not terribly likely in itself) or been influenced by it indirectly (much more likely: maybe she's talked to a friend who read a web page on the subject, written by someone who had a friend at the company that produced the patent).
Once something is patented, the idea is out there for others to hear about (not just because they can read the patent; the original inventors can now talk about it, too). And ideas that get out into the wild tend to spread.
On the other hand, after all these years of having patents on obvious things granted, it might be no bad thing to try throwing out some genuinely inventive patents instead for a change :-).
(My own preference: either do away with software patents completely, or substantially shorten their term. [EDITED to add: the latter probably only makes sense if you can greatly reduce the latency between initial filing and granting. Which would be a good thing anyway, for all patents.])
There's a very nice counter argument to the objection of obviousness: if a given invention was obvious to the skilled man at the time of the application, and the invention is useful then why can't you find it in the prior art?
Basically the argument, which I find quite compelling on one level, is that truly obvious stuff is known and citable. Very simply novel inventions can seem obvious once they are presented to you. I found this a lot examining patents - they would often seem obvious but nonetheless be absent entirely from the prior art.
However, to answer some of the proposed solutions there is also the aspect of presentation of the invention to the public domain. That is, even if it were possible for an engineer ("the notional skilled man in the art") to create a close enough solution if they are set to work on a problem this does not provide a reason not to provide some form of patent protection.
The deal is that for disclosure of a workable, industrially applicable invention that a limited monopoly is granted. The monopoly does not only reward but also encourages. Whether others could solve a problem is not necessarily relevant to rewarding those who have addressed it and solved it. Do you see. You want to motivate progress in the relevant arts by rewarding those who solve problems in those arts by the sweat of their brow.
Re ability of patent officers: a judge can watch ice skating and tell you if the people fall over, if their toe-step is dramatic interpretation of the music or them tripping, if their Salchow is wobbly, if their outfits breech regulations, etc., but possibly barely ice skate themselves.
That said in the UK at least there is a good deal of art-specific expertise so much so that the patent office makes a substantial income hiring their examiners out to large companies to do "commercial searches". Mind you when we assessed international searches for the US ones were nearly always useless and had to be re-done (WO patents entering the national phase would sometimes have pre-existing examinations by foreign examiners, usually US or EPO).
>"more useful as engineers"
I don't think people stop being engineers because they become patent officers. That said they probably would be more use to the human race using their skills in a more directly constructive way but this assumes a lot about the world that just isn't going to happen. When there's no greed and everyone works for the greater good then we'll have no need for patent officers.
All the people who are saying evaluating obviousness of an invention is impractically hard to analyze, are failing to see that that applies to non-software patents as well.
The real problem with software patents is not that the rules (including non-obviousness constraint) are flawed, but rather that the execution of those rules is flawed. Fix the right thing please.
No, but it is a intellectual property question. My point was that if you violate a trademark even though you independently came up with it, the same would apply for patents.
Well, true... up to a point. But the motivations behind patent law are so different from those behind trademark law that I'm not sure it's a relevant comparison.
And one of the tests in trademark law is if a reasonable person would be confused between the original and the imposter. So you only have to have 'reasonable' knowledge of other brands in your industry.
I think the actual test is if the intended audience would get confused between the original and the imposter (see the H. R. Pufnstuf v. McDonald's case, although that's copyright, not trademark).
Being able to recognize a brand is necessary for the market to function. It is how you know what you are buying, and what you base trust on. At the same time, the cost of coming up with a different name for your competing product is trivial.
So while, yes "the same applies", the cost/benefit ratio of the two situations is totally different.
> I can't stand the idea that I might be at my computer, working with code, and develop something independently which later causes me to get sued. Abolish all patents.
I can't stand the idea that I might be in my shop/lab, working with metal/wood/plastic/chemicals, and develop something independently which later causes me to get sued. Abolish all patents.
Yes, patents infringe on people's rights, to foster innovation. Getting to patent something isn't a right, it's a privilege. As you've illustrated, all patents are inherently undesirable--at least for certain parties. And I agree. They should be abolished.
That is precisely what they don't do. All they do is stop someone else from claiming it as an innovation with the associated IP rights. There is nothing to stop someone innovating like a fiend. But surely it is blindingly obvious that copying something someone has already patented is not innovating. Everything else however is fair game. Knock yourself out and innovate.
You're missing a critical difference. Patents are supposed to be "unobvious". A normal person just working in their shop should not just accidentally stumble across a patented thing, because by definition the patented thing should not be obvious to one skilled in the art.
Programmers on the other hand can indeed pop open an editor, spend a few minutes with Ruby on Rails implementing "a standard business procedure, but on the Internet!", and violate a patent. Or multiple patents. In fact, the very fact that we have patent trolls that can run around and sue business after business after business for the same patent, while the businesses have no evidence that shows they have communicated with each other about the patented subject, ought to be proof positive that the patent is obvious and shouldn't be patentable.
An amazing number of patents that actually are being litigated really are "X, but on a computer!" or some variant thereof ("X, but on a network device!" is one the company I work for has gotten hit with). I'm not exaggerating, for all the verbiage and diagrams this really is a reasonable summary of many of them.
Your metaphor fails, because what is not a realistic risk for people working in shops or labs is a perfectly reasonable risk for a hobby programmer, let alone a pro.
Perhaps programmers are overreacting because of all the bad ones and there is a core of goodness deep down in there, but I'm willing to find out the hard way.
the patented thing should not be obvious to one skilled in the art
It's a big world and there are a lot of smart people in it. History is full of examples of multiple people independently inventing/discovering the same thing.
And those things aren't supposed to be patentable. How you get from "not supposed to be patentable" to "does not exist" is beyond me.
May I also observe it isn't me making a normative claim that such things that are easily re-constructed by anyone should not be patented. It is descriptive, right in the legal definition of patent; it should be not obvious to one skilled in the art. Again, the very fact such a clause is necessary is evidence that there is a set of things obvious to one skilled in the art that exists, or why bring it up?
That's stretching it a bit. Just because more than one person hits upon something doesn't mean it's obvious; and as we know, it's much easier to understand a working instance of something than to discover/invent it.
So we need something to get around the problem of 'see new thing - figure it out - declare it obvious - sue to overturn patent'. Maybe the proposed first-to-file requirement will help that by taking the patent office out of the history-investigation business and just acting as a recording service, letting the parties fight out their dispute in court; I hope so. But it's hard to come up with some catch-all definition of what constitutes 'obviousness' because that will always be open to both honest and mercenary dispute.
Calculus and RSA -- two things that I think most of us would agree are "non-obvious" and were invented independently.. and may I add that the documented independent inventions were generally with a few years of each other? The evidence suggests that despite modern romantic notions of creative inspiration springing from individual genius, invention usually owes a lot to societal need and the current intellectual milieu.
The problem is that we are on a slippery-slope either way you cut it.
Begin with field "Foo". Originally, a Foo-ist researched the creation of an improved Foo-er after twenty years of painstaking manual research and patented said device. All well and good and the situation "had nothing to do with computers" originally (hah!).
But then, someone else creates a "numerically controlled foo-ing maching" - an NCF. With an NCF hooked-up to a conventional PC, proper software and a careful look at the improved fooer, you can duplicate the twenty years of painstaking manual research. You've "stolen" the patent as fully as if you duplicated the original machine but your "theft" is entirely in terms of software. And it can very subtle: It might be algorithm is obvious but the constants used took twenty years of research to discover/optimize (I've done scientific programming where discovering the optimality of a simple number was our achievement for the week).
Note the "scare quote" here. I use steal/theft advisedly.
The situation of a numerically controlled machines basically cries out that you must either abolish all patents or make valiant effort to extend patents somehow to software. And while I like the idea of abolishing all patents, I also know that all existing patents together are a huge mass of value and abolish the patent system would entail a huge shock to the economic system and the professional/scientific world and thus a large number of power entities stand against either abolish patents and by extension abolishing software patents since by the arguments above, these amount to the same thing.
> You're missing a critical difference. Patents are supposed to be "unobvious". A normal person just working in their shop should not just accidentally stumble across a patented thing, because by definition the patented thing should not be obvious to one skilled in the art.
"should" is the problem with that argument. Just as "all bugs are shallow to the right eyes", all machines are obvious to a fair number of people.
> In fact, the very fact that we have patent trolls that can run around and sue business after business after business for the same patent, while the businesses have no evidence that shows they have communicated with each other about the patented subject, ought to be proof positive that the patent is obvious and shouldn't be patentable.
No, that's not "proof positive" of anything, any more than AG Bell's race to the patent office "proves" that telephony was "obvious".
> Perhaps programmers are overreacting
because the intertubes provide a great forum for overreacting. After all, overracting and porn are internet's the dominant uses.
" In fact, the very fact that we have patent trolls that can run around and sue business after business after business for the same patent, while the businesses have no evidence that shows they have communicated with each other about the patented subject, ought to be proof positive that the patent is obvious and shouldn't be patentable."
Whether the person suing is or isn't a patent troll is irrelevant to your argument. You are basically arguing that if lots of people have done something without colluding it must be obvious. Not so.
I recommend this piece on hindsight bias. It is an extremely well documented fact that things rapidly become obvious after the fact.
You'd have to ask the people in the corresponding industries what they think about it. Patents might not have the same effects in other industries. We have on hacker news obviously mostly experiences with software-patents. From what I've read similar patent discussions are indeed also happening in other industries like in pharmaceutical research as advancements there also often blocked by patents, which is just the opposite of what was the original reason for the patent system.
One well documented problem here is 'hindsight effect.' After something has been invented and has been used for even a short while it becomes 'obvious.' This effect is so powerful that it is in fact difficult for attorneys representing patent holders where patents are being challenged for being 'obvious' to defend the case because juries now find what was non-obvious at the time to now be obvious. Studies show that this is not only potent but pervasive - being smart and well educated does not mean one can rewind time any better than the next person. It is hard to recapture that innocent state before the innovation.
How about the idea that you spend months and hundreds of thousands of dollars of your own money to come up with a new product, and two weeks after you launch, another company with a lot of money releases a copycat of your product?
Sorry to all, I specifically meant software patents. Hardware patents are different as they often rely on physical creation of objects and a non-trivial investment in materials/development.
Conversely a software idea can be thought up in a few minutes and implemented in the same. In app purchases isn't exactly a clever idea or something that was revelatory. It was simple software evolution.
You're saying all software ideas can be thought of and implemented in a few minutes? That is both absurd, and an insult to the innovation that happens in software.
You have 10 minutes, give me an implementation of something that improves upon H.264 by 30%.
That's not how it works. If you're familiar with the area, you might come up with an idea that improves it by 3%. If you have 9 of those ideas, you might get a 30% improvement. Where the ideas come from is serendipity combined with fertile ground.
It might be by analogy, a technique from a different domain, from similarity with something you did with lego blocks when you were 9 years old, from a mishearing when discussing something with a fellow developer, from ignorance of the known techniques in a particular area and trying to solve it from first principles, etc. You do need some familiarity and experience in the domain in order to recognize the utility of the novel technique. It might happen once to you, but it's unlikely to happen 9 times.
More importantly, it's also probably going to occur to someone else, sooner or later. New discoveries tend to be repeated, that's a common theme in the history of scientific and mathematical development. By advocating patents for these things, you suggest the mere chance of coming first means you get a government-granted right to extort from other people.
Your reductio ad absurdum does not accurately represent what I'm saying. I'm saying that you could possibly make software in a few minutes that could violate a patent. This is extremely unlikely with hardware of significant complexity to earn a patent.
I don't think I understand your argument. You said this:
> a software idea can be thought up in a few minutes and implemented in the same.
This is only true for trivial pieces of software. I agree with you that trivial pieces of software should not be patentable. But you're saying that no piece of software should be patentable, regardless of how complex or innovative it is, and there I strongly disagree.
There's too much room for error, if you let there be a line between what is and isn't patentable with respect to software. Better to leave it open and let the cards fall where they may. Software patents actively restrict technological development.
You both agree that there is major variation in how much "effort" goes into producing patentable work. Your problem is you want a very clear-cut definition specifying what is patentable, and since effort is hard to measure, you'd rather just throw out all patents. You assume this would be better than the current situation (which, I think, takes the other extreme - most things are patentable).
But why do you think the way you suggest is better? Just because the current system sucks?
Ultimately it would be better because it would eliminate patent trolling and foster software innovation. Right now a lot of innovation is hamstrung by software patents. I don't think any company should have the right to enforce what software someone makes, at all, ever.
Half of the tech industry with respect to software is finding something someone else is doing, and building on that but making it better.
No, there is no difference. If you're going to claim that they're different because one may require a "non-trivial investment (1)" then you have to specify that hardware patents that only require a trivial investment are similarly invalid.
The bottom line is that patents are patents. It's inconsistent to be against one type and not another. I understand why patents exist, but I also agree with the Carmack statement above.
(1) This is clearly not true. I know someone who patented an idea relating to battery management hardware that occurred to him as he was describing a problem to me. It was novel and "not apparent to a similarly skilled person.. etc." But it didn't take any more investment than pen and paper to think through the concept.
It takes significantly less effort to create a piece of hardware from scratch if you have a reference design to crib from.
However, if I independently develop a piece of software or an algorithm, there is a very strong chance that it took me the exact same amount of time and effort as the person who originally solved it.
In the former case, it makes sense to enforce a patent, as copying their design directly eases my ability to go to market with something.
In the latter case, it doesn't make sense, as I now have to pay someone else, despite having done the work.
Note that I see copyright, intellectual property, and patents as completely different things. If I'm using someone else's code/libs, then obviously, I feel it is worth the ability to enforce. However, that already exists without the patent system.
It takes significantly less effort to create a piece of hardware from scratch if you have a reference design to crib from.
However, if I independently develop a piece of software or an algorithm, there is a very strong chance that it took me the exact same amount of time and effort as the person who originally solved it.
These two instances are completely different. What about the hardware engineer who independently developed a piece of hardware? It would take him around the same amount of effort to create it as the original. Just like the software engineer who cribbed an existing design would have to do much less work than the original.
0% of the differences in effort have to do with physical vs software, and 100% to do with what references you have available to you before you get started.
Software is a mathematical equation. Math isn't patentable.
Edit: Since people aren't convinced of my postulate that all algorithms are mathematical equations, here's a proof sketch:
All programs can be rewritten to be expressed in Haskell. All Haskell functions can be expressed as equations in the typed lambda calculus. The lambda calculus and its variants are all subsets of mathematical equations. Therefore, all programs can be expressed as mathematical equations.
I don't agree. And algorithm is not the same thing as an equation, and I don't think your argument would stand up in court. If it were that simple to overturn software patents it would have happened years ago.
All programs can be rewritten to be expressed in Haskell. All Haskell functions can be expressed as equations in the typed lambda calculus. The lambda calculus and its variants are all subsets of mathematical equations. Therefore, all programs can be expressed as mathematical equations.
Sounds great, but the other side is just going to raise Godel's incompleteness theorem in the form of the church-Turing thesis to show that the truth of your argument is formally undecidable ;-)
Seriously, though, the legal issue arises from the fact that the patent is not (or rather should not be) granted for a pure mathematical abstraction, but for a product which applies such abstractions to some novel purpose. Mathematical discoveries are not considered properly patentable because mathematics is held to be part of nature's bounty - a highly debateable philosophical proposition, but there it is. But being able to describe a thing in mathematical terms does not equate to that thing being a mathematical statement and therefore unpatentable.
Let's consider the steam engine, for example. The interplay of pressure, volume, and temperature can be modeled with very simple mathematics, as can the mechanics of a drive train to convert the motion of a piston into work by turning a wheel. You could write down all the math necessary to accurately model a steam engine or indeed a train in a few pages. Likewise, we could argue that that the giant boiler on wheels that constitutes a train is no more than a restatement of those same mathematics, along with a few supplementary remarks about the properties of the materials used to express the primary equations of the system (eg the tensile strength of iron, the viscosity of the lubricating oil and so forth). This is true enough in a philosophical sense, but talk is cheap. Building a working steam engine is a lot harder than coming along afterwards and observing that its characteristics could be reformulated as a mathematical statement.
Now software is different, insofar as we can take the source code or even the object code and convert it back to a set of mathematical equations with considerably greater ease. But again, it's not the underlying mathematical statements for which a patent is (ideally) sought: it's for the black-box implementation that allows someone with zero knowledge of the underlying math to make use of the invention. If you rely on the philosophical argument that all code is inherently an agglomeration of mathematical statements, then you must agree that, say, Farmville or Pac Man are in fact part of nature's bounty as well, due to their mathematical foundation as computer programs. That's an argument which would be extremely hard to sell, either in court or to the general public, and with good reason - most people consider the development of a computer game to be a creative effort rather than something that was sitting about waiting to be discovered like the law of gravity.
One could say that Pac Man was in fact sitting around in 'the space of all possible games yet to be implemented,' but then again one could put someone in prison and say that freedom is a state of mind too, or kill a person and argue that it doesn't really matter because they're still alive in the past. These are interesting philosophical avenues to explore, but only on a voluntary basis. Courts are a reflection of the society in which they operate, and theoretical arguments like this which take no account of pragmatic considerations usually go badly for the proponent.
But let's say that you argue there's an important principle at stake here, and get the court to agree about the fundamentally mathematical nature of computers and the programs that run on them. How then do we deal with the fact that board games are patentable? After all, a board game is just a set of tokens and some rules for manipulating them, whose utility lies in its capacity to entertain or edify the players. If we outlawed software patents tomorrow, then couldn't patent trolls simply switch to patenting 'games' in which their algorithms are presented as rule systems? True, few people would fancy playing Super Bubble Sort or Mem Cache Plus all night, but patents are not granted on the basis of popularity.
Again, I'm not out to defend software patents - I'm just bring...
The neat part about mathematics is that your approval, or anyones approval for that matter, is not necessary. If the proofs are solid, it holds. If you want to properly "disagree", demonstrated rigorously why the proofs are flawed.
"If it were that simple to overturn software patents it would have happened years ago."
You assume that the people in the position to make decisions are competent.
I articulated my reasoning in the following sentence.
You assume that the people in the position to make decisions are competent.
Not at all; there's a large volume of patent litigation, and it's reasonable to assume that at least some of the decision makers are competent to evaluate such elementary arguments. Your argument requires universal incompetence by litigators and/or decision-makers.
No. Cooperation between individual entities is not required. All that is required is that a certain critical mass of the people involved be too incompetant to understand the math, too corrupt to care, or just malicious.
Seeing as we're talking about lawyers and politicians here, I don't think this is all to stunning.
Ah, if you're talking about politicians that's a completely different issue - then you have a good point, because changing the law requires getting a majority of legislators to vote in favor of reform. I'm talking strictly about litigation.
Software is an application of mathematical equations perhaps, but then hardware is an application of
material properties and other laws of physics. Since material properties and laws of physics can't be patented, you're presumably against hardware patents as well?
> The capability of modelling a physical system with math does not mean that physical systems are math.
It's the modeling of physical systems that its patented, not the physical object itself. Those patents usually protect the inventor from people creating any number of variations on their exact design because it's the approach to solving a particular problem that is being patented.
I think there are a lot of people who take an absolute position against software patents and end up going through all sorts of contortions to differentiate between why ideas in the physical realm should be protected and ideas in the software realm should not.
That said, I certainly agree that most software patents are far too obvious and not deserving of any sort of protection. The challenge, of course, is how to fix the system to afford protections to real innovators and not to those who simply connect the dots.
Physical devices (even models thereof) are applications of physics equations, not physics equations themselves. These have been ruled time and again as being patentable.
Algorithms are mathematical equations. They cannot be patented.
Software = math, math can't be patented, therefore software can't be patented.
I know the mantra. I just don't buy it. Math provides the building blocks used to produce creative (and sometimes very innovative) solutions to problems in the form of software. Material properties and laws of physics similarly provide the building blocks used to produce creative solutions to problems in the form of physical devices or mechanisms.
Just because the basic building blocks used to formulate an innovation aren't patentable, it doesn't necessarily follow that the innovation itself shouldn't be patentable if it's truly innovative and worth protecting (which most software patents certainly aren't, but some undoubtedly are).
Then perhaps the issue isn't that software isn't math, but that the statement "math can't be patented" was simply one made in ignorance and not reflective of the underlying spirit of the law?
Since we can mathematically demonstrate software to be math, let's take that off the table. Arguing that part is idiotic.
That leaves the patentability of math. Man I wish I had a time machine so I could go back in time and convince Pythagorous to patent his little triangle formula in the context of architecture. I could make a killing.
Any system with known, fully-specified constraints is "math". That's the only definition of "math" that actually covers all the things mathematicians do. Algebra/calculus, set/group theory, logic (various forms), graph theory, and such are all undisputed branches of "mathematics". I defy anyone to come up with a definition of "mathematics" that includes things like the above, but does not include computing. (And no cheating: simply listing existing branches of mathematics is not persuasive.)
That said, this argument is a bit of a non-starter: software is mathematics, sure, but mathematics are not patentable by legislation (at least in the U.S.). Legislation is easy to change, and it likely will be when people finally accept the "mathematics = software" argument.
I'm fairly sceptical towards software patents but I'd argue that the math argument is a red herring. Software is clearly not math in the sense that the people who wrote that word into the law understands math. And as someone else pointed out: If this argument gets any traction, and if the powers that be want patentable software, they're going to clarify the language, not get into semantics over what people who couldn't in their wildest dreams imagine computers might have thought. It just a law and laws change all the time.
Fixing your problem would only need the current system to be modified such that independent invention is not infringing. One way, for example, is to make it permissible for independent invention to be considered evidence that the patent is obvious to those skilled in the art and thus not patentable. A patent already granted would be repealed under these circumstances.
Would you still be in favour of abolishment, and if so why?
IMO a reasonable test is: If a patent can be used to sue one company it may be patentable. If it can be used to sue 100 companies working on separate products it's probably obvious.
Basically, you can't prove 1 person did not read it. But, you can be positive 100 people did not read it. Now clearly this depends on the number of people working on the problem. So, while 100 is excessive in most fields, somewhere around 3-10 is probably a good lower bound.
That is clearly not a reasonable test. In fact it is almost certainly a great test for someone having innovated in a valuable way. If you file a worthless patent then no-one will be interested in your innovation and there will be no-one to sue. If however you file something valuable you would expect to potentially have lots of people to sue. In your example the question arises, why have so many people trespassed on this patent? We know they have an incentive - it is valuable. But why in this hypothetical case did they trespass? Did they think the patent was breakable? the patent holder weak? the market opportunity so great that they would build now pay later? Perhaps they didn't find the patent? So many questions. But as a cursory study of hindsight bias will make plain it is extremely common for something that is not at all obvious at the time of its invention of appear so later.
Your ignoring the obvious case where someone got a patent for an obvious solution. The US patent office has long ignored that test and billions have been wasted as a direct result of this. If you patent pushing email to a portable device and I patent pulling email from a portable device there are not a lot of options left to auto populate email on a cellphone.
The basic issue is computing is a rapidly evolving filed and while the obvious mouse traps have been patented the obvious ways of using a database or the internet have not.
I voted for the "abolish all" option despite the fact I'm actually in favor of patents in general and don't think software should be distinct from hardware, but the situation has gotten ridiculous (as has the situation with patents in general).
I think that software should only be protected by copyright if the source code is placed in escrow and made available when the company goes belly-up or when the (strictly limited) copyright period expires.
I think that the patent system needs to be thoroughly reformed so as to do a better job of covering software, hardware, and a blend of the two. John Carmack's example is compelling but if patents were handled properly the odds of such a thing occurring would be as remote as the odds of doing the same thing in your backyard workshop with a lathe.
>"the odds of such a thing occurring would be as remote as the odds of doing the same thing in your backyard workshop with a lathe."
No. The difference is that PHYSICAL TANGIBLE things exist in the "analog" realm have infinite possibilities. Things that exist in the digital realm have a finite number of possibilities, and if you limit yourself to a particular subset of things you can even possibly do (such as those things which are implemented in computer programming languages), the odds go up greatly. If I tell someone to build a table leg on a lathe, there would probably be many variations between skilled builders. If I tell someone to make an efficient file store (or in patent speak "digital storage"), lots of people would probably come up with something similar...but that's patented: http://www.google.com/patents?q=digital+storage&btnG=Sea...
There are many flaws here. While a digital (or discrete) space (or realm of infinite possibilities as you put it) has a limited size as a function of the allowed length,
1. The length can be infinitely long, therefore the number of possibilities can be infinitely long.
2. For all practical purposes the space is so large it is infinite. How many possible permutations of 1s and 0s can you get in a 1024 KB program. Many.
3. If we go into the more practical example you raised I doubt there is much difference between the variance in resulting table legs and digital storage applications. If anything, I would say there would be more variation in the software, simply because the high cost of iteration and experimentation (and stricter physical constraints) have narrowed the design space of table legs, in a way which is much less apparent in software.
Me neither. But what about the opposite case - you work on something for a long time, and then make a breakthrough. Genius! You apply your breakthrough to do something awesome and release it out into the world. Someone else notes, it, reverse engineers it, and has a better marketing operation than you so they make $$$ and you get nothing. without patents, how do you protect your genuinely original work?
I'm not a fan of software patents. To be honest, I wish we didn't need a patent system at all. But since we don't live in the Star Trek universe and world communism turns out not to be the economic panacea that its creators hoped, we need something to protect the rights of inventors. Same thing with copyright - before it came into being, artists and writers had to rely either on fickle patronage or else hope to make some money on their first sales run because after that it was a free-for-all. Although I hate the way IP law and institutions have swung towards the opposite extreme and are now damaging to consumers and the general cause of innovation, those rules exist to solve a genuine economic problem.
It would be easier to overturn software patents if there were some alternative proposal to reliably secure the fruits of innovation to the inventor. If that task is left to the market, then a) there's abundant evidence that profit will win over ethics, and consumers won't know or care and b) people whose time is best spent innovating will have to spend more effort on marketing and monetizing their IP and fending off competitors, which is inefficient for solo inventors or small firms. So is spending a lot of time on patent work, admittedly, but a patent is a more reliable shield against having one's invention ripped off.
Are you able to tell/estimate what's the proportion of software patent cases that will bring profit to the people who actually did the work? And how many cases were initiated by those people because they felt at risk.
That's more research than I want to do for free on a Monday morning, and one might ask the same question about patents in general. The current system is broken, but simply abolishing it is to throw the baby out with the bathwater. There's a reason the patent and copyright systems exist in the first place, and simple abolition would just exchange new problems for old.
Please don't mix up copyright and patents. I'm pretty sure if this poll would be about copyrights you would find out that a lot more people here do in fact like the copyright system. Copyright prevents stealing code, everyone who does copy code knows he is doing that. But you have basically no chance knowing when you break patents until someone does sue you or by having patent-lawyers which go over all your code all the time and look for potential trouble.
Coding is a creative process - I write pages of code each day and every single line and idea I use in there might be covered by a patent of which I haven't heard yet. How is that supposed to work? We don't have patents for writing, music, painting, etc. although you could use the same arguments about original work and the danger of people ripping it off (we do have copyright!).
There are many ideas that I can't stand. Fortunately I weigh them against their likelihood and find that reassuring. I suggest you do likewise. The probability that in your noodling you will develop something non-obvious and worthy of intellectual protection and will nonetheless continue obliviously developing it, without the slightest idea there may be protected prior art is vanishingly small. Consequently your paranoid intuition that we should abolish all software patents may be laid to rest. There may well be good reasons to investigate the patent system. IMHO this is not one of them. Hope this helps.
There's a money incentive at work for each patent submission.
Every time I stare at that patent submission form I can't help but to imagine somebody doing a cool thing which does something similar, getting squashed by a lawyer.
I've a couple of those forms which I filled, but never submitted.
Where do you draw the line between a "software patent" and a hardware one? Doesn't make sense to make a distinction based on the method of implementation (especially given that lots of HW is micro-programmable).
Yes - many silly patents are being filed for unreasonable reasons (fight patent wars, get a bonus, etc.) But making a distinction based on only on way of implementation is just as silly.
Since this is specific to software patents, my vote was to abolish them all.
Patents on Software make not sense (other protections like Copyright, are essential, though).
I have yet to see one "invention" that would not have seen the light of day without software patents.
Patents are a method to protect significant costs cost of an invention (to incentivize research).
Having an idea for an algorithm is does not represent a great cost and it is not in the interest of society to grant a monopoly).
The software patent dispute always falls into the broad brush trap. Obvious patents like Facebook's news feed and Amazon's 1-click shopping are arguably obvious and a drain on resources. Complicated software, like gene sequencing, chemical simulations, etc., are perfectly reasonable, genuinely non-obvious, and deserving of monopoly status. All software patents are not equal, all are not abusive, all are not obvious.
I have a hard time with this topic. Of course the only thing that ever gets covered in main-stream tech media is the abuse by patent trolls suing Company X because they are using their "electronic key-input device" patent to type on their computers.
We all roll our eyes and go "Damn these patents! DAMN THEM!"
But then I think of the purpose of the patent system in general: to protect and encourage innovation. I think of the research scientists coming up with approaches to genuinely unique and interesting problems and yes, I want them protected from getting rail-roaded by larger software firms.
I've discussed this with a patent attorney before and his feeling is that software patents are generally a good thing, but there has to be ONE change that would do away with most of the bullshit patents: proof of implementation.
Right now, apparently, I can patent the 40-click checkout process and sue Amazon when they implement it... but I never need to implement it, release it or use it in production. I just need to think of the idea and I can patent it.
I imagine a lot of these IP-only firms wouldn't have such a strong grip on stupid garbage patents if it required them to show working implementations.
I believe this is the same way with patents in manufacturing. Someone correct me if I'm wrong, but I think you need to produce the mechanical process you are patenting and at least show it is viable before patenting it?
Whether that is true or not, requiring that of patenters would go a long way of making the work more worthwhile and not just a bunch of lawyers sitting in a room with a few engineers, waving their hands around all day until they invent and patent the use of desk chairs.
> I believe this is the same way with patents in manufacturing. Someone correct me if I'm wrong, but I think you need to produce the mechanical process you are patenting and at least show it is viable before patenting it?
Not really.
Oh, you can't patent a perpetual motion machine, but you can patent an improvement to a process without showing that you can implement the whole process.
Suppose that I come up with an improvement in making steel in massive amounts. Do you really think that I shouldn't be allowed to patent it without building a large steel mill? (Two interesting cases are the lone "nut" and a university researcher.)
I think you need to produce the mechanical process you are patenting and at least show it is viable before patenting it?
That requirement was abolished (in the US, at least) in 1880. I've been told that the USPTO still asks for working models when people try to patent perpetual motion machines, but I don't know if this is true.
I would love to see all software patents abolished.
I feel conflicted about having my name on several software patents - on account of working for (or co-founding) companies that needed defensive IP. Had I not been on the receiving end of a ridiculous software patent lawsuit while I was working at a startup, I would never have filed any patents when I started my own company. If the startup I worked for had not been acquired before they lost said lawsuit, it would have killed the company, destroying some amazing innovation and killing a couple of hundred jobs.
As things stand, even folks who oppose software patents don't really have an option but to file patents of their own unless they want to risk being sued into oblivion with no bargaining chips of their own.
Just because someone beat me to the patent office legally means I'm not permitted think up the same idea and use my computer to do the same. It's not even about copying, I'm legally limited in what I'm permitted to think up and do.
I like the Canadian system of software patents. CIPO requires that software may only be patented in so far as the hardware it runs on is unique and patentable. I'm ok with those under the condition that the entities who hold the patent actually do something with it. Explicit timeframes should be in place to prevent these types of "business models" over long periods.
I see huge problems with the current system but in the current capitalistic world we live in there has to be a way to protect money/time spent on researching things. If the results of 10 years of research can be stolen as soon as they're announced no one is going to pay for research anymore.
You can still be the first to bring a product to market and you have the people who will have the best knowledge because they developed it. Also don't underestimate the willingness of people to _want_ to research. And lets not forget that companies in Europe do not have software patents (yeah, some gray area still exists...) and still do research, so we already know the software world won't break down without software patents.
And while your arguments are still valid to a certain extend - it has to be evaluated against the costs of the patent system and the benefits you'll get from erasing the patent system. For example right now every startup-up is in danger of running into patent troubles unless they start pair-coding with a lawyer. People avoid looking at patents because they are scared of treble damages and people avoid coding optimal solutions trying to work around patents. Companies can block each other and managers and investors are in a constant state of risk that their coders will violate patents (mostly without even knowing it). Patents are no longer used to boost innovation, but they are used primarly as a weapon.
I completely agree that the current system is broken. I just disagree that we should abolish the system entirely. Some very smart people saw this need and I don't think they were wholly wrong.
Personally, I think the problem with patents is the are of the "who did it first" variety when they should only be of the "no one would have come up with this without me" kind.
That is, if your "idea" involves scribbling something obvious down and sending off for a patent as soon as possible (e.g. this new in-App purchase patent is a good example) then it shouldn't be patentable. For me, I would see something patentable in how Apple did the iPad. Everyone was trying things in the tablet space for years but it wasn't until the iPad that we all finally got it.
I would also make patents shorter and non-renewable. Renewable patents are just a monopoly on ideas.
The problem isn't whether the patent is in software, it's that that patent office grants patents on trivial things.
Should be patentable: RSA
Should not be patentable: One click
The patent office needs to say "what problem does this claim to solve?" and then "if someone skilled in the art were faced with that problem, would the claimed invention really be novel and non-obvious".
RSA passes this test. Problem: secure encryption without prior secure key exchange. Solution: innovative math that makes that possible.
One click does not. Problem: if customers could avoid logging in multiple times, they'd buy more. Solution: set a cookie, using totally existing technology.
Some are still going to be borderline. Any useful rule is going to have questionable cases.
I think it's highly unlikely the patent office would ever have the sophistication necessary to distinguish a truly new approach to an algorithm or architecture from a derivative one.
Additionally, there is so much depth and breadth in CS that innovation happens everywhere and is often hidden in the bowels of universities, garages, and offices. Even an apparently novel invention is unlikely to be invented only in one place, or to be invented first by the entity that files for a patent.
Copyright and trademark law are sufficient to protect coders. Software patents are absurd. It's analogous in my mind to allowing Stephen King to patent a certain kind of plot twist.
318 comments
[ 5.6 ms ] story [ 317 ms ] threadIn practice, they're used by large companies to prevent lone programmers or small companies from breaking in to the markets they dominate. I do not consider this to be desirable.
They're more trouble than they're worth.
What really needs to be cheaper and easier is getting invalid patents overturned.
The distinction is important, because if it is the latter we just heed to lobby the right people. If it is the former, we just don't have enough money.
I still think the software patent system as it stands now needs serious reform but you know, that saying about a broken clock and all.
Isn't this what "free market" is all about? You can't have both.
I don't think this is a pro/against free market. Free markets rely on some definition of property rights. This is about making those definitions.
It just further goes to show that the 17 year span, at least, is too long for software.
[Edit on re-reading: I couldn't have sat down in high school and done this in a day because I had never heard of the Internet in 1980-1984, but I could have made it work against Compuserve.]
This, like every other "patent on three hours' work", is nothing more than parasitic rent-seeking behavior, and it is anathema to the vitality of our economy. Lodsys should be deeply ashamed of trying to present this as a "solution" when they clearly simply want to profit from the work of others.
That said, it's obvious that the current system is broken; there are many patents which do not seem to do anything new, and simultaneously the cost of applying for patents deters the group for whom they are most important -- small innovators who are unable to commercialize their inventions.
The system needs to be fixed, not thrown out.
I don't think it should be possible to patent an equation, but I'm perfectly find with people patenting (subject to non-obviousness, lack of prior art, etc.) ways of using an equation to do something useful.
If patents had existed when Scipione del Ferro discovered how to solve cubics, I would have no problem with him receiving a patent on his method -- but because patents did not exist, he never published his method (he kept it as a "trade secret") and it wasn't revealed until 19 years after he died.
I think the court's decision in Gottschalk v. Benson demonstrates a level of understanding of computers typical of members of the general public in the early 1970s -- i.e., almost none at all. To say that a process carried out via software is different from a process carried out in hardware (or even more absurdly, that buying a $5 CPU transforms a process from "unpatentable software" to "patentable machine") makes no more sense than the flood of "do X over the internet" patents; hardware or software or wetware, internet or telephone network or messengers riding horses, a process is a process regardless of the components it's built on top of.
(The same "(computers|internet) are magical so we need to treat them differently" thinking also results in politicians passing silly laws concerning things like "harrassing someone via the internet" where the pre-existing laws are entirely sufficient.)
I had an inkling feeling that the software/mathematics argument is not compelling (not because software isn't mathematics, but because the practicality of invention and patent render it different in practice), but couldn't articulate it.
I still think that software patents have turned out to be dangerously unproductive in practice and so would rather see them abolished entirely than in their current form, but I think I more fully understand my position now. Thanks, Colin, for participating in this little Socratic dialog.
I absolutely agree with you here. The current state is a horrible mess. Where I differ from most people here is in my belief that software patents aren't inherently a bad idea but that the problems are merely with their current implementation (and thus I'd like to see them fixed rather than abolished).
Are you a software developer? Do you understand that often times, there is only a few logical ways of doing something?
Yes, I'm quite aware that some problems only have a few feasible solutions.
Should I be able to patent this technology? Should I just release it? If I just release it, wouldn't a large company patent aspects of it and sue me for infringement (it costs $ to prove prior art).
At the very least, wouldn't a patent give me the option to open source the technology without the risk of aforementioned large company coming after me? And if said company does come after me, would it not give me a chance to buddy up with another "large" company?
If you publish your code, it becomes prior art. It doesn't cost much to stand up in court and say "uh, look guys, this code you're suing me over was published before you applied for your patent", and the case would be thrown out immediately.
In practice I doubt it would ever get that far: If there's one thing patent lawyers pay attention to, it's dates, and lawyers hate looking like idiots.
Of course, they did back down once the facts were explained to them so you're right at least that far.
* a linked list to store and provide access to records stored in a memory of the system, at least some of the records automatically expiring
a record search means utilizing a search key to access the linked list
the record search means including a means for identifying and removing at least some of the expired ones of the records from the linked list when the linked list is accessed
* a means – utilizing the record search means – for accessing the linked list and, at the same time, removing at least some of the expired ones of the records in the linked list
The issue seems to pop up every couple of years. Each time, abolition of software patents seems closer and closer, but never quite gets there.
My reason for this is because unlike hardware patents, it does not take a factory and malicious intent to get a clone for a software patent. A 2 year lead on the competitor is extreme in the tech world. Look what happened with the iPhone, it dominated the market in 2 years, and then Android same story. The speed of information and technology today we MUST have a shorter timeframe for patents.
The problem with software patents is that since they are non-physical, they are really just mathematical solutions. And the problem with those is that 10 programmers will come up with 10 completely ways to solve the same problem, but due to patents the first to paten a solution can use the other 9 (-John Carmack) and this problem is very much true.
So I say make the patent expiration period 30 months. This gives you substantial lead time, yet prevents issues like people fearing Apple's multitouch patents years after they've gotten the patent.
Plus it really takes patent trolls off the table, since these patents will have likely expired before they can get them. And it also takes off the table acquiring companies for IP.
But there are also some pretty deep stuff that seems less obvious, my favourite example is MP3. I'm no expert in the field, but it does not seem at all obvious to me to compress music like that, and it seems to be the result of a real invention process.
It's clearly in everybody's interest that they publish their codec as widely as possible, rather than make a broke-by-design binary-only distribution. Why should they not be allowed the same protection as, say, Volkswagen inventing a new fuel pump?
However, there are a lot of very smart people who invent formats and don't patent them. For instance the JPEG format is clever in a very similar way to the MP3 format. In this instance the format was created by companies with an interest in a great format for their devices - cameras for example.
MP3 (well, a lossy music codec of some kind) could have been created by a similar group trying to make music players interoperable. It might have even been created by open-source advocates. Think Ogg-Vorbis, for instance.
I don't think that we'd live in a world with less cool formats if patents were abolished (yay!). If a format is required to solve a problem, it will be created. Open protocols without patents should be encouraged.
Theoretically, it's possible, but in theory communism would work if everyone just did their best to make it work. Reality is different.
There are obvious and simple ways the patent system could be improved. For example, drug patents already are treated specially, in that they expire quickly--perhaps a similar system could be applied to software patents. Or, exemptions could be made for implementations of patented software that exist for reasons of interoperability or compatibility. Another option would be to enshrine into law the promises companies make not to sue. (As in, the company is not allowed to renege on their covenant not to sue--this is actually probably not really possible from a legal standpoint, but I'm not an expert.)
There needs to be a fast, cheap, reliable method by which small businesses can determine whether they are affected by anyone else's patent rights, and if so, by whose and to what extent. This way they can enter useful negotiations and adjust or abandon their plans as appropriate if patents are involved, or they can build their business free of unknown liability otherwise.
Given that I can see no viable means of ever constructing such a system, I don't see how patents or any similar legal tools will ever be anything but a tool for those with vast resources to crush competitors with few resources through means other than fair competition in the market.
edited to add "software".
- Keep it as a trade secret. You get one source for a product, and less innovation.
- Publish it and suffer the consequences of the big companies copying it and making profit on your work.
The argument you're making is basically that the system right now is broken, so we should just throw it out. I do agree that it's broken, but I argue that fixing the system is a better solution than throwing it out.
Do you honestly believe there is such a problem with sharing innovation in the software industry, that we need government intervention to encourage sharing?
Let's take the funny example of Amzon vs B&N on the one-click system. Do you think Amazon would not use the one click system if it were unpatenable? In the case of modern software patents, keeping it a secret is equivalent to not using it all. Since you invented it in the first place, I find this outcome to be excessively unlikely.
You are also suffering under the misconception that a lone programmer or programming pair would be incapable of standing up to big markets with a software invention. If his invention is really worth it's muster, he can come out with a profitable product that blows big companies out of the water. I've seen it happen before.
Let's take what I often here cited as one of the best software patents (personally, I think it is the worst.. but that's another story), RSA. Did that patent really prevent others from using/profiting on it? Hardly (although in most cases the "profiting off of" thing is a stretch, unless the explicit purpose of their product was cryptographic in nature.
Now, what if they had kept it a trade secret? Just look at their RC4. They kept it a secret and got a few years of exclusivity but eventually we all got the algorithm, because that's just how software works.
20 year exclusivity contracts are waaaay too long. I think the trade secrets route where "you have it until others figure it out" is far more fair and workable.
Patents are (theoretically) a pragmatic compromise between 1) the benefits to society of having people publish their ideas, and 2) the drawbacks to society of giving someone a time limited monopoly on the exploitation of the idea.
For software I believe the drawbacks in general far outweigh the benefits. There might be examples of "nobody else would have thought of this within the patent period" inventions, but they are rare enough that it does not make sense to have special laws for those cases.
In the physical "better mousetrap" world the issue is different. The situation is similar to the Hacker News startup world in that ideas are plenty. However, the cost of productizing the ideas is high, and there is less of a first mover advantage, access to distribution channels is more important. So patents in the "better mousetrap" world protects not the idea, but the investment of turning the idea into a product. The drawbacks of patents here are also smaller, as you rarely build unrelated products upon the "better mousetrap", so the cost of a monopoly often stays limited to the specific market. Patents here might be a good compromise.
In medicine there is a similar situation in that many ideas are "free" from public funded research, but useless without the very expensive clinical trials. The patents basically protects the investment in clinical trials, and no so much original research. However the cost of patents is huge. People die because they can't afford patented medicine (which include initial cost for the clinical tests, marginal cost, distributed cost of failed products, and profit), even though they could easily afford the marginal cost alone. It would be good to get rid of patents here, but they must be replaced with another system to cover the cost of the clinical tests.
if you have ever worked for a software company that has a competent legal department, you know that you must stay away from patents. under no circumstances are you allowed to communicate that you have looked at any given patent or even acknowledge the existence of a patent.
patents are treated with more fear than toxic waste in IPR sensitive businesses.
besides, if you don't publish and you do something clever, how long do you think it would take for the competition to figure out what you were doing? or for people in academia to publish something on it? or for some independent blogger with too much time on his or her hands?
I wish people would consider reality rather than some make-believe world that does not exist when thinking about patents. so much time, money and intellectual energy is wasted on this nonsense. not to mention that it is clogging up the courts with absolutely pointless legal battles.
we, as a society, have better things to do.
Also, hardly any secret can be kept for as long as a patent lasts.
"The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying."
http://en.wikiquote.org/wiki/John_D._Carmack
For a worse horror story, just take a look at Farnsworth trouble with RCA about the TV patents.
If you don't know about the patent, then you're only liable for 1X the amount.
Moral of the story: don't read patents, you can only get into trouble. If you get sued after the fact, then you can change your code to work around it.
Ironic, given one of the original primary reasons for the patent system.
So I agree; coding around patents is difficult given that they tend to be so hard to read and understand.
Alternatively, you could say that the point of "legalese" is to define and convey ideas more explicitly than they can be defined and conveyed in English. Try writing a contract in "Plain English" - it will necessarily be full of ambiguity and uncertainty, which defeats the purpose of having a written contract.
Similarly, although programmers don't write code in "Plain English" I don't think we should begrudge them the right to keep using obfuscatory programming languages - even if it keeps the bastards employed.
I also believe that, by defining one's terms clearly, it should be possible to write unambiguous plain English contracts. Additionally, an English-parsable legalese needn't necessarily lead to an unambiguous interpretation when parsed as English, so long as it is unambiguous when parsed as legalese, and most of the meaning is retained when parsed as English.
As part of that arrangement, it seems like we ought to require that the disclosure be in English, not merely in a tongue that shares some English words and syntax.
The claims in particular are indeed technical and difficult for a lay person to readily understand. But the background, the prior art and the description of the implementation are not. Background and prior art are a summary of the technical context and I have never had any difficulty reading or understanding this section. The description may be rather long winded as it has to detail how to implement the invention so that it may be implemented from the description by someone skilled in the art, but it isn't legalese and should certainly be understood by the inventor! The lawyer can't write this by him/herself.
I can certainly sympathize with those who can't follow the claims (although I have found it to be perfectly possible with determined effort), but I simply fail to understand how a lawyer turns it into something "I can't understand any more." Find alien and unfamiliar - yes. But incomprehensible?
OTOH it does still preclude John from being presented with a problem and then doing someone quite ingenious to do a great solution that seems actually quite "novel", to learn that someone else did it years before.
But for patents, if you follow logical steps from a given problem then you shouldn't be granted a patent.
In fact the way patents should work is that the patent officer spends a week trying to solve said problem themselves. And only after that attempt, read the actual patent. If they're struck with, "Ahh... yes, good idea, wouldn't have thought of it mysefl" then its potentially patentable. But if the patent officer says, "Yeah, that was my second attempt." or "that's largely derivative of my general line of logic in my other attempts" then it shoudln't be patentable.
Does that really sound at all scalable (or even reasonable) to you?
I imagine that many of the proposals that move through the patent office are highly contextual and may be simple ideas wrapped up in daunting language. It seems reasonable that it would take far more than a week to even get your arms around some of the problems themselves, let alone the solutions.
Besides, if patent officers were such able critics, wouldn't they be more useful as engineers?
I imagine that many of the proposals that move through the patent office are highly contextual and may be simple ideas wrapped up in daunting language. It seems reasonable that it would take far more than a week to even get your arms around some of the problems themselves, let alone the solutions.
Then spend more than a week on it. I didn't use a week as "cap", but rather a starting point. If it takes a month, sure then spend a month. You'll get no arguments from me. Especially since patents regularly take 5+ years to get approved.
[1]http://www.inventionstatistics.com/Number_of_Patent_Applicat...
A year has 52 weeks (plus one or two days), if 2 of these weeks are vacations, 50 weeks remain. Therefore 1000 / 50 = 20.
> In fact the way patents should work is that the patent officer spends a week trying to solve said problem themselves. Does that really sound at all scalable (or even reasonable) to you?
So clearly you were saying that a week is too much time to spend on a patent. OK.
I imagine that many of the proposals that move through the patent office are highly contextual and may be simple ideas wrapped up in daunting language. It seems reasonable that it would take far more than a week to even get your arms around some of the problems themselves, let alone the solutions.
But in a week you can't understand the problem, much less a solution. So you seem to be saying that having a system where examiners approve patents they don't understand is preferred. I say that if the examiner can't understand the solution, much less the problem, then the patent is rejected. This will really get people to focus on writing clear patents, rather than the legalese that passes for a patent today.
But lets get to numbers. There are not 500 examiners. There are more than 6,000. So at one week per patent it's now less than two years per patent. That's actually about on par with the time today. That's extremely reaonable. And I'd argue that making patents more expensive, with less protection time, you'd reduce the number of SW patents, and thus probably can turnaround SW patents more quickly.
Not so. I'm not defending the current system, just trying to demonstrate that your suggestion isn't feasible.
> There are not 500 examiners. There are more than 6,000.
Citation?
---
Edit: found the data on Wikipedia: http://en.wikipedia.org/wiki/United_States_Patent_and_Tradem...
And to me that is one of the many problems with (software) patents: it relies on an inherently biased, subjective process to determine whether this objective, rigorous piece of thought is worthy of a monopoly.
And also recall with patents you are guaranteed another appeal to a different body if ever sued, the courts, where you can invalidate a patent. And if MS wins the i4i case the burden of proof will be even lower. And note, there is legislation going through congress right now to make it harder to win a suit, and also expands patent reexamination.
My point? The patent examiner is an important first step, but a patent that clearly has no legs should be defeatable -- if not now, in the near future.
The conclusion that you should be reaching is software patents are simply not a viable mechanism, period. In other words, even if you like the idea of patents in theory, in practice they do not work because we will never have enough patent examiners with the necessary expertise much less time to make valid decisions on patent applications.
The sheer volume makes it clear that the vast majority of patent applications are for trivial stuff. The system is broken, it's that simple.
Or think of it this way, a mobile phone: it could have novel programming, novel chips, novel screen design, hinge, case plastic, button return springs that last longer, easier to use touchscreen, stronger glass, more flexible, brighter, etc., any of these things might give it the market advantage. How many other things do you use each day, each of them could potentially be improved and that improvement be registered in a patent.
The parent spoke of applications for patents anyway. Granted patents in the US are apparently about 40% of this.
When a suit is filed, an engineer is given the problem and told to build clean-room implementations. If he gets it in under a month, it's obvious and overturned. If he gets it in a day, it's extremely obvious and the plaintiff is fined three times the asking damages. If he gets it in under an hour, thirty times.
This disincentivizes completely bogus patent claims, and should bring the total rate down to something manageable.
Variant:
When the proposal is submitted, the engineer attempts the recreation. If he fails, the patent office pays him. If he succeeds, the attempted patenter pays for a month of his salary. If he succeeds in under a day, the patenter pays a year.
This gets up-front examination, but weakens the incentive to hire good engineers and doesn't guarantee to make trolling unprofitable.
Once something is patented, the idea is out there for others to hear about (not just because they can read the patent; the original inventors can now talk about it, too). And ideas that get out into the wild tend to spread.
On the other hand, after all these years of having patents on obvious things granted, it might be no bad thing to try throwing out some genuinely inventive patents instead for a change :-).
(My own preference: either do away with software patents completely, or substantially shorten their term. [EDITED to add: the latter probably only makes sense if you can greatly reduce the latency between initial filing and granting. Which would be a good thing anyway, for all patents.])
Basically the argument, which I find quite compelling on one level, is that truly obvious stuff is known and citable. Very simply novel inventions can seem obvious once they are presented to you. I found this a lot examining patents - they would often seem obvious but nonetheless be absent entirely from the prior art.
However, to answer some of the proposed solutions there is also the aspect of presentation of the invention to the public domain. That is, even if it were possible for an engineer ("the notional skilled man in the art") to create a close enough solution if they are set to work on a problem this does not provide a reason not to provide some form of patent protection.
The deal is that for disclosure of a workable, industrially applicable invention that a limited monopoly is granted. The monopoly does not only reward but also encourages. Whether others could solve a problem is not necessarily relevant to rewarding those who have addressed it and solved it. Do you see. You want to motivate progress in the relevant arts by rewarding those who solve problems in those arts by the sweat of their brow.
Re ability of patent officers: a judge can watch ice skating and tell you if the people fall over, if their toe-step is dramatic interpretation of the music or them tripping, if their Salchow is wobbly, if their outfits breech regulations, etc., but possibly barely ice skate themselves.
That said in the UK at least there is a good deal of art-specific expertise so much so that the patent office makes a substantial income hiring their examiners out to large companies to do "commercial searches". Mind you when we assessed international searches for the US ones were nearly always useless and had to be re-done (WO patents entering the national phase would sometimes have pre-existing examinations by foreign examiners, usually US or EPO).
>"more useful as engineers"
I don't think people stop being engineers because they become patent officers. That said they probably would be more use to the human race using their skills in a more directly constructive way but this assumes a lot about the world that just isn't going to happen. When there's no greed and everyone works for the greater good then we'll have no need for patent officers.
The real problem with software patents is not that the rules (including non-obviousness constraint) are flawed, but rather that the execution of those rules is flawed. Fix the right thing please.
So...
So while, yes "the same applies", the cost/benefit ratio of the two situations is totally different.
I can't stand the idea that I might be in my shop/lab, working with metal/wood/plastic/chemicals, and develop something independently which later causes me to get sued. Abolish all patents.
Programmers on the other hand can indeed pop open an editor, spend a few minutes with Ruby on Rails implementing "a standard business procedure, but on the Internet!", and violate a patent. Or multiple patents. In fact, the very fact that we have patent trolls that can run around and sue business after business after business for the same patent, while the businesses have no evidence that shows they have communicated with each other about the patented subject, ought to be proof positive that the patent is obvious and shouldn't be patentable.
An amazing number of patents that actually are being litigated really are "X, but on a computer!" or some variant thereof ("X, but on a network device!" is one the company I work for has gotten hit with). I'm not exaggerating, for all the verbiage and diagrams this really is a reasonable summary of many of them.
Your metaphor fails, because what is not a realistic risk for people working in shops or labs is a perfectly reasonable risk for a hobby programmer, let alone a pro.
Perhaps programmers are overreacting because of all the bad ones and there is a core of goodness deep down in there, but I'm willing to find out the hard way.
It's a big world and there are a lot of smart people in it. History is full of examples of multiple people independently inventing/discovering the same thing.
May I also observe it isn't me making a normative claim that such things that are easily re-constructed by anyone should not be patented. It is descriptive, right in the legal definition of patent; it should be not obvious to one skilled in the art. Again, the very fact such a clause is necessary is evidence that there is a set of things obvious to one skilled in the art that exists, or why bring it up?
So we need something to get around the problem of 'see new thing - figure it out - declare it obvious - sue to overturn patent'. Maybe the proposed first-to-file requirement will help that by taking the patent office out of the history-investigation business and just acting as a recording service, letting the parties fight out their dispute in court; I hope so. But it's hard to come up with some catch-all definition of what constitutes 'obviousness' because that will always be open to both honest and mercenary dispute.
Begin with field "Foo". Originally, a Foo-ist researched the creation of an improved Foo-er after twenty years of painstaking manual research and patented said device. All well and good and the situation "had nothing to do with computers" originally (hah!).
But then, someone else creates a "numerically controlled foo-ing maching" - an NCF. With an NCF hooked-up to a conventional PC, proper software and a careful look at the improved fooer, you can duplicate the twenty years of painstaking manual research. You've "stolen" the patent as fully as if you duplicated the original machine but your "theft" is entirely in terms of software. And it can very subtle: It might be algorithm is obvious but the constants used took twenty years of research to discover/optimize (I've done scientific programming where discovering the optimality of a simple number was our achievement for the week).
Note the "scare quote" here. I use steal/theft advisedly.
The situation of a numerically controlled machines basically cries out that you must either abolish all patents or make valiant effort to extend patents somehow to software. And while I like the idea of abolishing all patents, I also know that all existing patents together are a huge mass of value and abolish the patent system would entail a huge shock to the economic system and the professional/scientific world and thus a large number of power entities stand against either abolish patents and by extension abolishing software patents since by the arguments above, these amount to the same thing.
"should" is the problem with that argument. Just as "all bugs are shallow to the right eyes", all machines are obvious to a fair number of people.
> In fact, the very fact that we have patent trolls that can run around and sue business after business after business for the same patent, while the businesses have no evidence that shows they have communicated with each other about the patented subject, ought to be proof positive that the patent is obvious and shouldn't be patentable.
No, that's not "proof positive" of anything, any more than AG Bell's race to the patent office "proves" that telephony was "obvious".
> Perhaps programmers are overreacting
because the intertubes provide a great forum for overreacting. After all, overracting and porn are internet's the dominant uses.
Whether the person suing is or isn't a patent troll is irrelevant to your argument. You are basically arguing that if lots of people have done something without colluding it must be obvious. Not so.
I recommend this piece on hindsight bias. It is an extremely well documented fact that things rapidly become obvious after the fact.
http://en.wikipedia.org/wiki/Hindsight_bias
Conversely a software idea can be thought up in a few minutes and implemented in the same. In app purchases isn't exactly a clever idea or something that was revelatory. It was simple software evolution.
You have 10 minutes, give me an implementation of something that improves upon H.264 by 30%.
It might be by analogy, a technique from a different domain, from similarity with something you did with lego blocks when you were 9 years old, from a mishearing when discussing something with a fellow developer, from ignorance of the known techniques in a particular area and trying to solve it from first principles, etc. You do need some familiarity and experience in the domain in order to recognize the utility of the novel technique. It might happen once to you, but it's unlikely to happen 9 times.
More importantly, it's also probably going to occur to someone else, sooner or later. New discoveries tend to be repeated, that's a common theme in the history of scientific and mathematical development. By advocating patents for these things, you suggest the mere chance of coming first means you get a government-granted right to extort from other people.
> a software idea can be thought up in a few minutes and implemented in the same.
This is only true for trivial pieces of software. I agree with you that trivial pieces of software should not be patentable. But you're saying that no piece of software should be patentable, regardless of how complex or innovative it is, and there I strongly disagree.
You both agree that there is major variation in how much "effort" goes into producing patentable work. Your problem is you want a very clear-cut definition specifying what is patentable, and since effort is hard to measure, you'd rather just throw out all patents. You assume this would be better than the current situation (which, I think, takes the other extreme - most things are patentable).
But why do you think the way you suggest is better? Just because the current system sucks?
(Forgive me if I misrepresented your argument).
Half of the tech industry with respect to software is finding something someone else is doing, and building on that but making it better.
The bottom line is that patents are patents. It's inconsistent to be against one type and not another. I understand why patents exist, but I also agree with the Carmack statement above.
(1) This is clearly not true. I know someone who patented an idea relating to battery management hardware that occurred to him as he was describing a problem to me. It was novel and "not apparent to a similarly skilled person.. etc." But it didn't take any more investment than pen and paper to think through the concept.
However, if I independently develop a piece of software or an algorithm, there is a very strong chance that it took me the exact same amount of time and effort as the person who originally solved it.
In the former case, it makes sense to enforce a patent, as copying their design directly eases my ability to go to market with something.
In the latter case, it doesn't make sense, as I now have to pay someone else, despite having done the work.
Note that I see copyright, intellectual property, and patents as completely different things. If I'm using someone else's code/libs, then obviously, I feel it is worth the ability to enforce. However, that already exists without the patent system.
However, if I independently develop a piece of software or an algorithm, there is a very strong chance that it took me the exact same amount of time and effort as the person who originally solved it.
These two instances are completely different. What about the hardware engineer who independently developed a piece of hardware? It would take him around the same amount of effort to create it as the original. Just like the software engineer who cribbed an existing design would have to do much less work than the original.
0% of the differences in effort have to do with physical vs software, and 100% to do with what references you have available to you before you get started.
Edit: Since people aren't convinced of my postulate that all algorithms are mathematical equations, here's a proof sketch:
All programs can be rewritten to be expressed in Haskell. All Haskell functions can be expressed as equations in the typed lambda calculus. The lambda calculus and its variants are all subsets of mathematical equations. Therefore, all programs can be expressed as mathematical equations.
All programs can be rewritten to be expressed in Haskell. All Haskell functions can be expressed as equations in the typed lambda calculus. The lambda calculus and its variants are all subsets of mathematical equations. Therefore, all programs can be expressed as mathematical equations.
Seriously, though, the legal issue arises from the fact that the patent is not (or rather should not be) granted for a pure mathematical abstraction, but for a product which applies such abstractions to some novel purpose. Mathematical discoveries are not considered properly patentable because mathematics is held to be part of nature's bounty - a highly debateable philosophical proposition, but there it is. But being able to describe a thing in mathematical terms does not equate to that thing being a mathematical statement and therefore unpatentable.
Let's consider the steam engine, for example. The interplay of pressure, volume, and temperature can be modeled with very simple mathematics, as can the mechanics of a drive train to convert the motion of a piston into work by turning a wheel. You could write down all the math necessary to accurately model a steam engine or indeed a train in a few pages. Likewise, we could argue that that the giant boiler on wheels that constitutes a train is no more than a restatement of those same mathematics, along with a few supplementary remarks about the properties of the materials used to express the primary equations of the system (eg the tensile strength of iron, the viscosity of the lubricating oil and so forth). This is true enough in a philosophical sense, but talk is cheap. Building a working steam engine is a lot harder than coming along afterwards and observing that its characteristics could be reformulated as a mathematical statement.
Now software is different, insofar as we can take the source code or even the object code and convert it back to a set of mathematical equations with considerably greater ease. But again, it's not the underlying mathematical statements for which a patent is (ideally) sought: it's for the black-box implementation that allows someone with zero knowledge of the underlying math to make use of the invention. If you rely on the philosophical argument that all code is inherently an agglomeration of mathematical statements, then you must agree that, say, Farmville or Pac Man are in fact part of nature's bounty as well, due to their mathematical foundation as computer programs. That's an argument which would be extremely hard to sell, either in court or to the general public, and with good reason - most people consider the development of a computer game to be a creative effort rather than something that was sitting about waiting to be discovered like the law of gravity.
One could say that Pac Man was in fact sitting around in 'the space of all possible games yet to be implemented,' but then again one could put someone in prison and say that freedom is a state of mind too, or kill a person and argue that it doesn't really matter because they're still alive in the past. These are interesting philosophical avenues to explore, but only on a voluntary basis. Courts are a reflection of the society in which they operate, and theoretical arguments like this which take no account of pragmatic considerations usually go badly for the proponent.
But let's say that you argue there's an important principle at stake here, and get the court to agree about the fundamentally mathematical nature of computers and the programs that run on them. How then do we deal with the fact that board games are patentable? After all, a board game is just a set of tokens and some rules for manipulating them, whose utility lies in its capacity to entertain or edify the players. If we outlawed software patents tomorrow, then couldn't patent trolls simply switch to patenting 'games' in which their algorithms are presented as rule systems? True, few people would fancy playing Super Bubble Sort or Mem Cache Plus all night, but patents are not granted on the basis of popularity.
Again, I'm not out to defend software patents - I'm just bring...
The neat part about mathematics is that your approval, or anyones approval for that matter, is not necessary. If the proofs are solid, it holds. If you want to properly "disagree", demonstrated rigorously why the proofs are flawed.
"If it were that simple to overturn software patents it would have happened years ago."
You assume that the people in the position to make decisions are competent.
You assume that the people in the position to make decisions are competent.
Not at all; there's a large volume of patent litigation, and it's reasonable to assume that at least some of the decision makers are competent to evaluate such elementary arguments. Your argument requires universal incompetence by litigators and/or decision-makers.
Incompetent and or comprimised. Yes.
Seeing as we're talking about lawyers and politicians here, I don't think this is all to stunning.
On the other hand, the numerous proofs that software is math are fairly trivial for anyone with a modest background in mathematics.
It's the modeling of physical systems that its patented, not the physical object itself. Those patents usually protect the inventor from people creating any number of variations on their exact design because it's the approach to solving a particular problem that is being patented.
I think there are a lot of people who take an absolute position against software patents and end up going through all sorts of contortions to differentiate between why ideas in the physical realm should be protected and ideas in the software realm should not.
That said, I certainly agree that most software patents are far too obvious and not deserving of any sort of protection. The challenge, of course, is how to fix the system to afford protections to real innovators and not to those who simply connect the dots.
Algorithms are mathematical equations. They cannot be patented.
I know the mantra. I just don't buy it. Math provides the building blocks used to produce creative (and sometimes very innovative) solutions to problems in the form of software. Material properties and laws of physics similarly provide the building blocks used to produce creative solutions to problems in the form of physical devices or mechanisms.
Just because the basic building blocks used to formulate an innovation aren't patentable, it doesn't necessarily follow that the innovation itself shouldn't be patentable if it's truly innovative and worth protecting (which most software patents certainly aren't, but some undoubtedly are).
That leaves the patentability of math. Man I wish I had a time machine so I could go back in time and convince Pythagorous to patent his little triangle formula in the context of architecture. I could make a killing.
That said, this argument is a bit of a non-starter: software is mathematics, sure, but mathematics are not patentable by legislation (at least in the U.S.). Legislation is easy to change, and it likely will be when people finally accept the "mathematics = software" argument.
Would you still be in favour of abolishment, and if so why?
Basically, you can't prove 1 person did not read it. But, you can be positive 100 people did not read it. Now clearly this depends on the number of people working on the problem. So, while 100 is excessive in most fields, somewhere around 3-10 is probably a good lower bound.
http://en.wikipedia.org/wiki/Hindsight_bias
The basic issue is computing is a rapidly evolving filed and while the obvious mouse traps have been patented the obvious ways of using a database or the internet have not.
I think that software should only be protected by copyright if the source code is placed in escrow and made available when the company goes belly-up or when the (strictly limited) copyright period expires.
I think that the patent system needs to be thoroughly reformed so as to do a better job of covering software, hardware, and a blend of the two. John Carmack's example is compelling but if patents were handled properly the odds of such a thing occurring would be as remote as the odds of doing the same thing in your backyard workshop with a lathe.
No. The difference is that PHYSICAL TANGIBLE things exist in the "analog" realm have infinite possibilities. Things that exist in the digital realm have a finite number of possibilities, and if you limit yourself to a particular subset of things you can even possibly do (such as those things which are implemented in computer programming languages), the odds go up greatly. If I tell someone to build a table leg on a lathe, there would probably be many variations between skilled builders. If I tell someone to make an efficient file store (or in patent speak "digital storage"), lots of people would probably come up with something similar...but that's patented: http://www.google.com/patents?q=digital+storage&btnG=Sea...
1. The length can be infinitely long, therefore the number of possibilities can be infinitely long.
2. For all practical purposes the space is so large it is infinite. How many possible permutations of 1s and 0s can you get in a 1024 KB program. Many.
3. If we go into the more practical example you raised I doubt there is much difference between the variance in resulting table legs and digital storage applications. If anything, I would say there would be more variation in the software, simply because the high cost of iteration and experimentation (and stricter physical constraints) have narrowed the design space of table legs, in a way which is much less apparent in software.
I'm not a fan of software patents. To be honest, I wish we didn't need a patent system at all. But since we don't live in the Star Trek universe and world communism turns out not to be the economic panacea that its creators hoped, we need something to protect the rights of inventors. Same thing with copyright - before it came into being, artists and writers had to rely either on fickle patronage or else hope to make some money on their first sales run because after that it was a free-for-all. Although I hate the way IP law and institutions have swung towards the opposite extreme and are now damaging to consumers and the general cause of innovation, those rules exist to solve a genuine economic problem.
It would be easier to overturn software patents if there were some alternative proposal to reliably secure the fruits of innovation to the inventor. If that task is left to the market, then a) there's abundant evidence that profit will win over ethics, and consumers won't know or care and b) people whose time is best spent innovating will have to spend more effort on marketing and monetizing their IP and fending off competitors, which is inefficient for solo inventors or small firms. So is spending a lot of time on patent work, admittedly, but a patent is a more reliable shield against having one's invention ripped off.
Coding is a creative process - I write pages of code each day and every single line and idea I use in there might be covered by a patent of which I haven't heard yet. How is that supposed to work? We don't have patents for writing, music, painting, etc. although you could use the same arguments about original work and the danger of people ripping it off (we do have copyright!).
Every time I stare at that patent submission form I can't help but to imagine somebody doing a cool thing which does something similar, getting squashed by a lawyer.
I've a couple of those forms which I filled, but never submitted.
Yes - many silly patents are being filed for unreasonable reasons (fight patent wars, get a bonus, etc.) But making a distinction based on only on way of implementation is just as silly.
Patents are a method to protect significant costs cost of an invention (to incentivize research). Having an idea for an algorithm is does not represent a great cost and it is not in the interest of society to grant a monopoly).
I'm working at the moment, so can't refer to the book; if anyone else has it handy, please supply said quote. :D
We all roll our eyes and go "Damn these patents! DAMN THEM!"
But then I think of the purpose of the patent system in general: to protect and encourage innovation. I think of the research scientists coming up with approaches to genuinely unique and interesting problems and yes, I want them protected from getting rail-roaded by larger software firms.
I've discussed this with a patent attorney before and his feeling is that software patents are generally a good thing, but there has to be ONE change that would do away with most of the bullshit patents: proof of implementation.
Right now, apparently, I can patent the 40-click checkout process and sue Amazon when they implement it... but I never need to implement it, release it or use it in production. I just need to think of the idea and I can patent it.
I imagine a lot of these IP-only firms wouldn't have such a strong grip on stupid garbage patents if it required them to show working implementations.
I believe this is the same way with patents in manufacturing. Someone correct me if I'm wrong, but I think you need to produce the mechanical process you are patenting and at least show it is viable before patenting it?
Whether that is true or not, requiring that of patenters would go a long way of making the work more worthwhile and not just a bunch of lawyers sitting in a room with a few engineers, waving their hands around all day until they invent and patent the use of desk chairs.
Not really.
Oh, you can't patent a perpetual motion machine, but you can patent an improvement to a process without showing that you can implement the whole process.
Suppose that I come up with an improvement in making steel in massive amounts. Do you really think that I shouldn't be allowed to patent it without building a large steel mill? (Two interesting cases are the lone "nut" and a university researcher.)
That requirement was abolished (in the US, at least) in 1880. I've been told that the USPTO still asks for working models when people try to patent perpetual motion machines, but I don't know if this is true.
I feel conflicted about having my name on several software patents - on account of working for (or co-founding) companies that needed defensive IP. Had I not been on the receiving end of a ridiculous software patent lawsuit while I was working at a startup, I would never have filed any patents when I started my own company. If the startup I worked for had not been acquired before they lost said lawsuit, it would have killed the company, destroying some amazing innovation and killing a couple of hundred jobs.
As things stand, even folks who oppose software patents don't really have an option but to file patents of their own unless they want to risk being sued into oblivion with no bargaining chips of their own.
Just because someone beat me to the patent office legally means I'm not permitted think up the same idea and use my computer to do the same. It's not even about copying, I'm legally limited in what I'm permitted to think up and do.
And while your arguments are still valid to a certain extend - it has to be evaluated against the costs of the patent system and the benefits you'll get from erasing the patent system. For example right now every startup-up is in danger of running into patent troubles unless they start pair-coding with a lawyer. People avoid looking at patents because they are scared of treble damages and people avoid coding optimal solutions trying to work around patents. Companies can block each other and managers and investors are in a constant state of risk that their coders will violate patents (mostly without even knowing it). Patents are no longer used to boost innovation, but they are used primarly as a weapon.
Personally, I think the problem with patents is the are of the "who did it first" variety when they should only be of the "no one would have come up with this without me" kind.
That is, if your "idea" involves scribbling something obvious down and sending off for a patent as soon as possible (e.g. this new in-App purchase patent is a good example) then it shouldn't be patentable. For me, I would see something patentable in how Apple did the iPad. Everyone was trying things in the tablet space for years but it wasn't until the iPad that we all finally got it.
I would also make patents shorter and non-renewable. Renewable patents are just a monopoly on ideas.
Should be patentable: RSA Should not be patentable: One click
The patent office needs to say "what problem does this claim to solve?" and then "if someone skilled in the art were faced with that problem, would the claimed invention really be novel and non-obvious".
RSA passes this test. Problem: secure encryption without prior secure key exchange. Solution: innovative math that makes that possible.
One click does not. Problem: if customers could avoid logging in multiple times, they'd buy more. Solution: set a cookie, using totally existing technology.
Some are still going to be borderline. Any useful rule is going to have questionable cases.
Additionally, there is so much depth and breadth in CS that innovation happens everywhere and is often hidden in the bowels of universities, garages, and offices. Even an apparently novel invention is unlikely to be invented only in one place, or to be invented first by the entity that files for a patent.