Three perspectives of which most people ignore one or more:
- Computer technology is over-run with frivolous, vague, stupid, conflicting, and contradictory patents. Any pretense of quality control by the USPTO was lost in the 1990s. This imposes a non-trivial cost on the entire ecosystem and a complete absence of quality control is arguably worse than no patents at all.
- R&D into new computer algorithms is a non-trivial investment, frequently requiring years and millions of dollars. There is a tendency among programmers to discount the level of effort required to develop a new computer algorithm that materially extends the state-of-the-art even though most could not develop such algorithms themselves and have never been involved in such R&D. Organizations that make this investment do so looking for a return.
- Academia is already facing difficulties in computer science because much of the state-of-the-art research is being done by private companies. Much of this research is being treated as trade secrets because (ironically) patents offer flimsy practical protection. As a consequence, there are a number of areas in computer science where the leading academic papers are literally a good half decade behind the state-of-the-art that is buried in NDAs. Lack of publication means that a lot of smart people are wasting time duplicating work. Patents were originally invented precisely to avoid this outcome. One of the reasons that I stopped reading academic computer science in some areas that interest me is that I see computer science under NDA that is much more sophisticated, which is a shame.
Any practical policy will need to take into consideration all of these perspectives. It is not as convenient and simple as "all software patents are evil!" or "software patents FTW!" but it more closely reflects the real tradeoffs.
I don't think critics of software patents are in the practice of claiming that software R&D is always quick or inexpensive. Rather, the claim is that the patent system is demonstrably incapable of improving that situation, and in the meantime has spawned enormously wasteful multi-billion dollar litigation between otherwise upstanding major companies and struck fear into the hearts of small developers who can no longer produce a successful innovative product without risking a shakedown by despicable parasites.
Companies expecting a return have numerous other, less innovation-damaging alternatives to software patents. First to market advantage, copyright and trade secrets cover the field pretty well on their own, and no one can accuse any of those things of causing the average software entrepreneur to lose sleep over the prospect of totally unpredictable ruinous litigation.
It's just that we can't presently see any regulation based solution for that.
Can you elaborate on which areas of CS academia you think are more sophisticated in the corporate wilds? Other than systems work at Google, I haven't encountered any subtopics which aren't dominated by ideas from traditional research centers (either university labs or academic research units at MSR, IBM, etc...)
Part of the reluctance is that they don't want to compromise the DRM systems that their products are complicit in, but most of it is patent related. They already have to pay royalties to many graphics has-beens for things like S3TC, and the fear is that if the details of what their hardware and software is doing were publicly available, they'd be painting targets all over themselves. The people AMD employs to help with their open-source Linux drivers are constantly citing "legal review" as the hold-up for releasing new specs or code, but never that they're concerned about making it easier for NVidia to reverse-engineer their stuff.
In all three areas where I have been involved in R&D -- distributed spatial indexing, parallel graph analysis, databases -- the state-of-the-art has been under NDA for years. Basically, any company where pushing the envelope on their advanced software systems is a significant competitive advantage.
The most obvious example is parallelizing graph analysis. Benchmarks like Graph500 are dominated by systems operating at a scale far, far beyond the reach of any algorithm in literature. There is ample evidence that vastly superior algorithms exist relative to what CS academia is producing. In fact, when I was active in this particular area almost four years ago, there were (at least) two different algorithms being used to achieve this kind of scale-out.
On the other hand, most people are not familiar with what is in the literature.
Research has caught up some, but it definitely lags.
At a former company, I learned of the existence of a code packaging technology that would apply arbitrary code changes to a running VM instance atomically. By 2002, it was possible to implement a web application server whose pages were JIT compiled to machine code yet still upload and apply a code change atomically. With some care, transactions in flight could even be stopped mid-way and continue execution on the new code base. On top of that, it was possible to debug page renderings and change and recompile code in the debugger. Not so fancy now, but this was pretty slick in 2002.
There is a strong opinion among computer researchers that pure algorithms are indistinguishable from math, and thus should be unpatentable. The math guy doing research on sound waves might be slightly annoyed when he gets denied a patent, but the guy working "on a computer" with the exact same math, doing the exact same research, gets a patent because he described the math "on a computer".
Of course, we could just start letting math also be patentable, because it too requires non-trivial investment, frequently requiring many many years and millions of dollars. That is, if the work behind something alone is enough to qualify for patentability.
1) I agree with
2) Computer technology moves at such a breakneck pace and is generally so hard to reverse engineer that this point doesn't hold water for me. We know that google's search algorithm works, ok, but can we reverse engineer it from the outside? The answer seems to be no, so why protect it with patents? Even if we could, by the time we were done google would already be on to the 'next big improvement', there is no catching up in software short of a drastic stumbling in the incombent, should we really protect the incombant from messing up?
3) The entire concept of going to college for software related endeavors is in such peril straits that I don't think we should even consider the affects or impacts of academia on software development, it's well in past at this point regardless of the patent situation.
It takes time and paying people so they can focus on solving hard problems for real innovation to happen. And its sad when it then has to become proprietary so that the operation can protect having any ROI
sharing is caring, and if that means you can have some revenue still, great!
"I know the USPTO doesn't want to hear that software and patents totally need to get a divorce, but since most software developers believe that, maybe somebody should at least mention it to them, if only as a future topic for discussion. Most developers I know believe software is unpatentable subject matter."
Ask software developers who work in defense, aerospace, medical devices, telecommunications, video/audio processing, and other capital-intensive, R&D-intensive fields. I think you'll get a rather different answer. Indeed, as Google is finding out with the Motorola acquisition and the resulting patent situation, software engineering culture is far from uniform on this issue. The guys who write software that implements radio waveforms don't have the same views on patents as the guys who write software to optimize ad display, or for that matter the guys who write the search engines. Ironically, Google's PageRank is the subject of several patents, and Stanford's interest in the IP netted them $335 million in Google shares when they exclusively licensed it back to Google.
Although, I think this sort of round-table is a pretty good forum for figuring out more about the consensus view of software engineers...
Even if we assume that software is patentable, the bounce back effect should not be patentable. The reason is that all the novelty is in coming up with the feature itself. I don't know whether I could come up with the bounce back effect by myself. I know for a fact that I could implement it, and so could any sufficiently strong software engineer. There is no novelty in the implementation that is worthy of patent protection.
This is trade dress all over again hiding under a different name. It should be given a different status (just like business patents), and different time frames of protection. This way we still protect truly novel research in algorithms (pagerank for example), while eliminating 95% of the patents we as software engineers find so objectionable.
This is a very good point. Often times knowing the feature you need to implement is the really hard thing. Once you've decided on that, it's trivial to implement, even if you're the first to do it.
But deciding which ideas are non-obvious is clearly something the USPTO isn't capable of, and so they should just get out of it.
Then I was "born" into the real world: One where companies who do nothing (and some who do something) have patents for stuff I had been doing for ages. You know, stuff like using pulse-width-modulation to control LED intensity (ye'old Color Kinetics), clicking buttons (multiple companies) or putting a spring in series with a microprocessor-controlled motor to control force (MIT, series-elastic actuator).
That's when I realized that what I had been "sold" about engineering, entrepreneurship and research and invention was a huge pile of bullshit. The realization was that government incompetence in perhaps one of the most important human fields of endeavor --invention-- has all but ruined what I loved to do before this epiphany.
Now you had to study Sun Tzu. Now, without your own bullshit patent to act as a shield, you had live in fear of being sued for daring to make a screen area clickable or drag-able, attach a spring to a motor, dim an LED with PWM or the myriad of "obvious to someone skilled in the art" things that are patented. Or you had to hire lawyers to ride shotgun on everything you might want embark on.
The alternative is what most of us actually have to do: We use the tools we know and what we learned to create things and explore ideas. Unless you operate at Google/Apple/Samsung scale you have no choice but to stick your head in the sand and hope that someone doesn't come after you because you app sends an email (or whatever).
I don't know what the solution might be. I have done my share of heavy-duty hardware-intensive R&D spanning years. I get it. Sometimes the difference between something flying and not is found in a seemingly minor detail. The wheel was obvious to the second guy who so it, right?
At the same time, I think it is beyond-obvious to most in tech that the US Patent Office has done a dismal job of filtering that which is "obvious to someone skilled in the art" from true invention. I am not going to draw the demarcation line myself, the subject is too complex and each discipline has it's own boundaries.
That said, if you have ever invested any time in the process of patent search I would be surprised if you did not share my sentiment: the vast majority of patents I have seen should never have been issued.
I fully expect lawyer types to say something akin to: "You have to read the claims carefully. The differences can be subtle but important". I've heard this before. My answer has always been the same: As an engineer I don't have to dive into intricate lawyer-ese to know bullshit when I see it. A spring attached to a motor to control force, you know, "F=kx", is way beyond obvious to anyone who took first-semester Physics. Yet, you lawyers manage to craft convoluted language that takes "F=kx" in the form of a motor and a spring and turns it into a patent that I now have to worry about if I do robotics (which I have done in the past).
Perhaps one of the problems is that the USPTO (I can't speak for other countries) is like a self-feeding fire: The more patents they approve the more people and companies have to file protection patents, which brings in more and more money to support more and more bureaucrats. Every patent you approve is a patent that has "job security" written all over it. If, starting on Monday, they approved patents at a rate of 10% of what they did last year they would probably have to fire 75% of their staff (just guessing).
Maybe the way to fight nonsense patents isn't to make an intellectual claim at all. Maybe the only way is to act politically in order to funnel, say, 50% of USPTO revenue to the Department of Health, or Education or completely outside of government entities. The USPTO would cease to be a self-feeding fire and they might just be forced to only pass real patents.
What if there was a rule that everyone involved in a patent that is invalidated is fired and they loose their pension? Violent, yes, but it would sure raise the bar very, very quickly to a super-high level. Which is exactly where the bar should be.
The other aspect of this is that perhaps patents should cost a lot more money and be subject to a significantly more public process where prior art is defined far more liberally than it is today. If a patent application costs started at the lesser of a million dollars or some percentage of last year's revenue the bullshit patents would go away. In the case of organizations like Google/Apple/Samsung it might cost them ten million dollars to apply for one patent and dozens of millions of dollars to actually get one patent. If a patent costs fifty million dollars I suspect we are not going to see many "slide the button this way" patents filed. Yes, this is off-the-hip and not well thought out. I get it. Take it as more of a random though out of frustration than a coherent idea.
Sometimes you just want to cry when you learn about some of the consequences of the government-sponsored monopolies created through the USPTO. Here's a particularly touching example:
http://www.electronista.com/articles/12/06/14/speech.applica...
The teachers at my kid's school asked me if would collaborate with them to help create (free) iPad apps for their developmentally-challenged students. Of course, I will, but the above bullshit patent and the many more that must exist in the dark files at the USPTO sometimes jar your reality. It is a sad note that rather than sit down and start writing code one of the first things I have to do is a patent search.
Sometimes I wish things were like when I was younger and more innocent: I could choose to help someone with my knowledge of technology and we'd all benefit from what might result (commercial or not). That, sometimes, is a tough choice to make today.
https://www.federalregister.gov/articles/2013/01/03/2012-315...
USPTO should go abolish itself, for the benefit of mankind.
There are some five hundred thousand applications filed per year, about half of which (so same order of magnitude) are granted [1]. In order for them to make a single billion dollars, there needs to be a few thousand dollars _profit_ on the fees -- I assume, since you said "make", that we're talking about profit and not revenue.
If we're talking about revenue, then it is somewhat close to believable, but there's no reason for them to be reluctant to cut revenue if it also means that they get to cut expenses (on employing reviewers). The top patent holders for the last several years running [2] are all in the software industry, so it's reasonable to expect the USPTO's expenses to drop significantly if software patents were disallowed.
(Finally, the patent office is not a private corporation, but an entity of the government, so the battle is absolutely winnable by merely outlawing software patents.)
[1] http://www.uspto.gov/web/offices/ac/ido/oeip/taf/us_stat.htm [2] http://en.wikipedia.org/wiki/List_of_top_United_States_paten...
The video feed is here: http://ammsweb.scu.edu/webcasts/mmedia1/20111014-083613-1e_o...
Wired op-ed series based on the conference presenters: http://www.reddit.com/r/IAmA/comments/14cb0c/im_snoop_lion_a...
The fact that this idea is a literal joke should be quite revealing. Patents are supposed to be comprehensible. They're supposed to be the alternative of trade secrets. They're supposed to be a means by which the public learns how to do non-obvious things once they expire.
Or to put it another way, the patent database is a broken datastructure, how do we fix it?
I think it's important to take their question seriously, because if we give them serious answers it will bring home why the patent system is more broken for software than for other things.
The problem with boundaries is that in ordinary property, the incentives are to make boundaries precise. Each property owner may not mind if it's not obverious that the other guy's property is on the other side, but he wants to be sure all of his property is on his side. This doesn't work in patents. The pushback comes from overstretched bureaucrats, not other property owners. So, an interesting question is, is there a way of changing this so each patent filer has the incentive to police the boundaries of other patents?
Imagine that at a given point in time, the patent database included not just the individual patents, but a '20 questions' style index, whereby any patent could be located. Crucially, no patent could be enforced against anything outside the 'bucket' in which it is indexed. (A patent could be indexed in more than one bucket, but only by paying the fee for each.)
That would give patent owners the incentive to police the boundaries of the 'buckets', and it would allow people to more easily find patents they might be infringing. It would also make clear which areas of patentable material have endemic fuzzy boundaries, so a case could be made for reform. There are large areas where the questions would be things like 'does it contain an aldehyde group?' where a tree would work well.
There is a problem with this as a datastructure, though. Any binary tree has to be rebalanced for searching it to be efficient. Even assuming that everyone can be given the incentive to make the rebalancing happen, it's not obvious how to do this. I need a diagram, I'll use this one: http://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Bin... Suppose we want to do the tree rotation as in the diagram. The problem is, we only know that the the patents descended from 'alpha' have the 'left' answer to the question in the light green node. We don't know how they relate to the question in the darker green node. So after the tree is rotated, we may need to ask that question of all the patents under 'alpha', an O(N) operation (in legal fees!) and then we may need to move some of them under the branch 'gamma', possibly triggering more rebalancing, so it's not obvious that the operation would even terminate.
So, question: Can a suitable datastructure be devised?
The idea that I can be presented with a problem, hire a dozen experts and spend millions of dollars coming up with a solution to the problem, and have someone come along and just copy the solution and use it in their own product to compete with me is horrifying.
Bounce scrolling, emoticon keyboard input, unified search across multiple apps, "placing internet information on a tv screen", etc. These are totally obvious ideas, not the type of thing that you spend millions of dollars on researching for years.
The idea that someone can come up with a solution:
- prevent anyone else henceforth from using it without paying them,
- enforce that by force and using taxpayer money,
- stretching over political boundaries,
- not even giving the remotest fair chance to the unborn to ever come up with that solution,
- charge a price fixed by whatever whims tickle that person's fancy and deny others of a possibly cheaper solution
- just to protect a possibly overvalued idea
.. is extremely horrifying to me.
Please refer this earlier post: http://news.ycombinator.com/item?id=4591253
Genuinely asking, a real world situation would be cool. It seems like this would happen most when ex-employees try to compete with the large company.
What would be more horrifying is a dearth of innovation for fear of other people copying it. Is that realistic? Is first-mover advantage enough? What about prize funds (e.g. Netflix prize, X prize, etc.)? Would the inefficiency costs of those mechanisms be larger than the coordination, government regulation, litigation etc. costs that patents cause?
Are there any kinds of innovation that definitely would not happen under alternate schemes, that we absolutely need patents for?
But if the solution is reproducible by an average or good programmer leading by logical steps, then it shouldn't be patentable at all.
I've worked in several of those fields, and I have yet to meet these proponents of software patents you're talking about. Any advantage to having a patent on the results of your own R&D seems to be far outweighed by the persistent threat of being sued (with or without any actual merit) by someone else who claims you're infringing on the results of their R&D.
If something was useful enough and available enough for multiple parties to invent/discover/exploit it independently, it should be self-evident that patents are not a necessary incentive for that work to take place and can only be a barrier to further innovation for all-but-one of the inventing/discovering parties. This effect is magnified many times over if the patent is not for a specific piece of software but rather for something like a data format or communications mechanism. There is a reason you can't copyright the shape of a font in the US, and I think analogous arguments apply in these cases.
Fortunately, this is less of a problem for us here in the UK where the culture is not as litigious as in the US. Still, if nothing else, the repeated attempts by the US to export its onerous IP regime are a worry for small businesses here that using technologies potentially affected by software patents granted in other jurisdictions. The whole system is just one big barrier to competition for smaller organisations who can't play political/legal games to negate the whole technical issue as the big players do.
What makes you think the technologies in question are invented independently? Take the Motorola Mobility patents, for example. Most of the patent licensees aren't in a position to hire all the experts and do all the R&D it took Motorola to develop that technology. They just use the end result of all that R&D produced by Motorola. If there was no patent system, they would just use the end result without compensating Motorola for all the work of developing the technology.
For people who owns land, some do not like regulations that forbid dumping toxins into it. But most societies know that forbidding the dumping of toxins are preferable over allowing it because of the ecological damage the toxins causes to society.
Patents causes an ecological damage to the software community. It might be profitable for a few, but for society as a whole it is a net loss. So long the cost-benefit analyze shows that, patents should have no place in software. Considering that patents are granted monopolies given by the government and enforced by the state, if society can't get more from software patents than it cost, society should not be in the businesses of granting said patents.
I'm sure someone, somewhere, at some level, likes patents. I don't think it's engineers though.
Your line engineers aren't going to get super excited about patents, because they're not compensated for their innovation (that's a separate rant), but it wasn't my assertion that they'd come to a rousing defense of software patents. Rather, they're not going to come out to a rousing opposition to software patents like Groklaw claims.
That might help them understand where this is headed (and already arrived in many cases).
They want to patent that brilliant little algo they spent months on to eek out that seemingly impossible spread spectrum noise piercing scheme that they finally got working. That's not how it happens at the patent office these days. Worse still, after all those months of creating something genuinely usefull, they're likely to be sued by someone who's never touched a radio, or made a product, and has a patent that reads more like "walky-talkies with teh interwebs inside".
That's not irony, as "should not be patentable" and "is patentable" are not mutually exclusive (I've also never heard of anyone being sued over the many, many pagerank-like implementations out there, so really the only thing going on there is University patent policies).
"should not be patentable" and "is patentable" is actually a large part of the problem, because you have to engage in the game to not be sued out of existence, but in doing so, you're making the environment even more toxic.
I always like to quote the Gosling story:
"In Sun's early history, we didn't think much of patents. While there's a kernel of good sense in the reasoning for patents, the system itself has gotten goofy. Sun didn't file many patents initially. But then we got sued by IBM for violating the "RISC patent" - a patent that essentially said "if you make something simpler, it'll go faster". Seemed like a blindingly obvious notion that shouldn't have been patentable, but we got sued, and lost. The penalty was huge. Nearly put us out of business. We survived, but to help protect us from future suits we went on a patenting binge. Even though we had a basic distaste for patents, the game is what it is, and patents are essential in modern corporations, if only as a defensive measure. There was even an unofficial competition to see who could get the goofiest patent through the system. My entry[1] wasn't nearly the goofiest."
You make market incentives to get companies to patent everything they can. Companies incentivize engineers to patent everything they can. Patent lawyers rewrite the software patent applications to take what is already an abstract set of instructions and turn it into the platonic form of that idea, to make sure they cover all implementations of that idea. The patent office accepts it after 7 resubmissions. You're not going to end up with a good result.
[1] http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sec...
Can you elaborate?
It seems bizarre to me that formulas can not be patented, but telling a general-purpose computer to execute that formula, can.
Managers also like patents to schmooze their bosses.
"See, I did a patent, that's like, very important"
Meanwhile the lawyers say "yeah, sure" while collecting heavy fees.
And 90% of R&D is on the finished products (incl. code/blueprints) not on the "invention".
Patents provide a framework for companies to transact in technology while protecting their R&D investment. It enables companies like MIPS and ARM to specialize in producing designs without having to develop finished products, and it allows companies to invest in open standards like LTE or WiMAX without having some Chinese manufacturer just take the end result and produce cheap chips implementing the standard at low cost because they didn't have to undertake any R&D investment.
Other than that I found your points on how the current system doesn't incentivize creation but dissuades it instead good, I can say I've been put off from a few of my ideas because I find a patent that's a bit too close and I really don't want to have to face that. Maybe one day when I have billions I can be a renegade, not yet though.
Again, as I said in my note, not well thought-out at all.
Would it need to be balanced? It might be better to have to play 100 questions instead of 20 rather than pay O(n) in legal fees multiple times
Makes me think of the old computer game "Animal".
ARE YOU THINKING OF AN INVENTION? y
IS IT RED? n
DOES IT HAVE WHEELS? n
DOES IT RUN ON ELECTRICITY? y
etc.
Since research must be peer-reviewed to be debunked or even understood, there is a limit to the benefits of trade-secrets and NDAs as a hedge against competition. You might be able to get a short-term advantage, but it's unsustainable because the knowledge cannot transfer. An employer ties his/her own hands by internalizing process knowledge (ironically, not what was intended): the increasingly small number of people with the specialized knowledge having increasing leverage; the profits are destroyed when your only choice is to pay a small number of in-house experts whatever they want, because noone else can do the job. This doesn't happen overnight mind you, but it would after at most a single generation (the point at which you have to train your successors or close shop).
IMHO, the case for patents is hollow.
> "On the other hand, most people are not familiar with what is in the literature."
This is the larger friction. We will continue to grasp at straws until people have thorough and integrative education and access to existing techniques without exorbitant costs or fear of prosecution. Even major (though more frequently minor) improvements over existing techniques are only temporary wins; research that never becomes widely disseminated and understood ultimately becomes a sunk cost.
To refer to your original 3-points:
1) I totally agree, "computer technology is over-run with frivolous, vague, stupid, conflicting, and contradictory patents."
2) I do not discount the level of investment required to push the boundaries of process knowledge, but I would say that it is part of normal competition and those costs are part fo being in the game. A trade-secret is only valuable for a few years, after which it can and should be disclosed to maintain a low cost of employment (unless you want your employees becoming your partners). My point is that patents don't provide any significant benefit toward this end and it has always been the case that if a company or person doesn't have to reveal it's process, it won't. (And the employment of patent lawyers and trolls is not itself a valuable end.)
3) "Academia is already facing difficulties..." Again, I would say this is a temporary situation at worst. We should not extrapolate from the first few points on this curve. We know more about the context: companies that don't publish (internalize all their knowledge) will eventually have no ground to stand on since no one will be able to contribute without an understanding of their internal processes. At most a company can keep only as much knowledge as they can afford to convey, at their expense, to a new hire. They would have to turn their back on a lot of our publicly standardized and centralized educational framework. Unless something were to fundamentally change, I don't see any way those costs can be justified.
More than that, if we were at all concerned about the use of trade secrets causing wasteful duplication then we cannot consistently allow the law to protect them as something of value. If we are so keen on disclosure and reducing duplication then industrial espionage should be fully legal as an efficient means of distributing knowledge to other market participants, and holders of trade secrets should be directed to the Patent Office as their sole means of protection. But I think we are not so keen because the problem of duplication is not so large, and the incentive provided by the patent system would not compare well with the incentive provided by the alternative.
What makes you think they aren't? That's the problem with a lot of software patents: people can just run into them (or be accused of running into them and subject to the resulting legal proceedings) without even knowing they were there. Then, suddenly, possibly after years of their own R&D, they get hit with paying royalties on something that had nothing to do with their own development work.
If there was no patent system, they would just use the end result without compensating Motorola for all the work of developing the technology.
Perhaps, but if they're really only trying to make carbon copies of what Motorola were doing, then Motorola have a huge first mover advantage anyway. Specifically, they have as long as it takes to commercialise their R&D work before they have to disclose it, because the work is a protected trade secret like any other up to that point. So as long as they keep innovating in significant ways that others couldn't, they will remain years ahead of their competitors in the market. That seems like a natural and compelling commercial incentive to me, without any need to add artificial benefits via patents.
It isn't hard to create an "ARM compatible" processor, but you can certainly not sell it as this without infringing a trademark (and copyright on the instruction set, etc).
With WiMax and similars, again it's not only patents, but also trademarks that are only licensed to companies that pay the fee and usually have to pass a compliance test as well.
Sure, patents are present but they're only part of the story.
Also, patents are not the only way to protect an invention, the two other common methods are secrecy and publishing it (which prevents anyone else from getting a patent on it)
As far as any system that is defined only in software, and capable of running on a generic computer, with generic input/output devices of today are not, imho, patentable. Anything that involves an obvious idea implemented in an obvious way is not patentable, of which the incredible majority of software is. Again, exception to interfacing specialized hardware...
In the context of codecs we're actually seeing how it prohibits improvements of technology.
Broadly speaking (i.e. I'm sure there are counter-examples, but they are not significant in the big picture), people didn't patent compiler technology, and we had great progress in compiler technology.
People didn't patent database technology and we had great progress in database technologies, from both academic research and competition.
People didn't patent word processing technologies so that Google can re-implement Word functionality in the browser because none of the fundamental techniques have been patented. Again, lots of progress from competition.
For whatever reason, audio and video codecs are heavily patented and the technology is ludicrously outdated compared to what it could have been if we had progress from competition or academic work of free software implementations because the patents cover basic ideas in compression so no-one can build on them and patent holders have no incentive to improve the technology because it's much easier (and more profitable) to just collect royalty checks.
However, developing video codecs isn't any more expensive than developing databases or compilers or word processors.
See e.g. h264 encoder which is an open-source effort by few amateurs that is widely regarded as being of better quality than commercial offering costing thousands of dollars (because of patent monopolies, not because they were so expensive to develop).
SQL Server started as a fork of Sybase (Microsoft bought Sybase's source code and started hacking). Sybase, in turn, was based on Ingress and "Ingres was first created as a research project at the University of California, Berkeley, starting in the early 1970s and ending in the early 1980s" (http://en.wikipedia.org/wiki/Ingres_(database)).
SQL Server is literally based on technology for 70s.
Ingress was started by Michael Stonebraker, who then did PostgreSQL (which added novel, at the time, extensions to relational model), who then did Aurora, C-Store and Vertical (column-oriented databases), them Morpheus, then H-Store and then VoltDB.
Stonebreaker did more research (as in: creating novel things) than Microsoft as a whole in SQL Server.
SQL Server is a great database but it's a result of Microsoft paying an army of programmers for 24 years to work on improving a single product. It's a result of running a profiler often, not some unknown-to-the-world algorithms.
It's not like Oracle or anyone else has any secret algorithm which runs in linear time when all of academia only knows of exponential time solutions for the same class of problems.
In my anecdotal experience, the financial industry is light years behind most post-graduate level mathematicians and physicists. Finanical math is kind of scary for anyone who knows more math than the average banker.
I thought the argument is actually that they exist in the way they do, not in them existing at all.. ?
"what would be appalling about patents not existing" is a good counter-argument.
Then someone make that argument; the post I replied to didn't IMHO, and here is why: If patents didn't exist, you wouldn't do the same R&D in the same way as you would do in a world with patents. So that's just apples and oranges. "If this chair didn't exist, the person would fall on their butt!" No, actually in that case the person wouldn't even have gotten into a situation where they need a chair to not fall.
Which is of course something that is often claimed, that we need patents to "encourage innovation". But consider all the inventions that are made at more or less the same time by people who never heard of each other. To me it's obvious that (large chunks of) invention are more inherent in the laws of physics and human society than in individual inventors. "I made this" actually means "everything up to and including me made this"... sounds less grand, is so much more true. But I guess taking credit for pre-existing things and squeezing money and power out of them is something we actually got used to. Doesn't make it true though.
To me it's all bogus anyway, I don't even buy the claim that a bunch of molecules and the memories others have of them constitute an entity called "John Carmack", as if that was a real thing. But with that outlook it's very hard to influence the political process, or even to just make sense to the average person.
Are you saying industry is leaps and bounds ahead in the fundamentals of CS theory? Or just that there is a lot of vendor specific detail in the hardware and infrastructure? Because the latter is not CS.
To analogize to another domain: a power control loop in a cell phone base band is as much "just a variation on fundamental CS problems" as is register allocation for a hairy architecture like x86. Yes, graph coloring gives you a conceptual framework to start with, but that gets you 10% of the way to a usable solution.
Then show me some products which demonstrate this "cutting-edge" computer science research.
Consider a financial company working to improve prediction algorithms for their in-house use, hiring smartypants PhDs and giving them free reign and great pay. The result after ten years could be way ahead (or even just a little ahead) of the academic world's work and never release a product with a sticker for a big shiny new algorithm.
The firm wouldn't even have to stand out in its success; it could do reasonably well compared to others, and just attribute a lot of its modest success to its algorithmic insights.
Even in externally released products, really clever ways to get around things aren't necessarily visible. Just today I was reading about Jonathan Blow's work [1] on localised kriging [2] for his upcoming game The Witness. He's pulling from advanced geostatics academia for a little feature he wanted in a game, and if he didn't blog about it (and then discuss enhancements in the comments) no one would know it existed - even once the game is released. A small example to be sure, but I think it exemplifies the point.
[1] http://the-witness.net/news/2010/05/kriging-is-cool/ [2] http://en.wikipedia.org/wiki/Kriging
I'm reminded that my graph theory professor said that he could factor polynomials over finite fields in polynomial time, but that he could not tell me how to do it.
But that's not because the algorithms are new and awesome, it's mostly just because the exact specs of the hardware are not happily shared.
CS research is not about lack of hardware specs.
It is also not about protecting someones DRM.
It is also not about crappy patents.
And it is also not about how easy your published work is to reverse-engineer.
None of those are CS research problems.
No, that doesn't fully explain the situation. They're worried about far more than their competitor knowing how many ALUs are on their GPU. Graphics drivers have to solve several hard problems: optimizations for shader compilers, scheduling, and memory management, and that's before you even get into the graphics-specific stuff. In recent years, GPUs have been one of the most active areas of research into computer architectures. For you to suggest that a modern GPU and its drivers don's embody any hardcore CS research is just plain stupid - if GPUs were simple to build, then Intel would have shipped a good IGP by now.
In terms of the vendor specific features, sure, neither academia, not anyone else knows much about them. But in the fundamentals of scheduling, binning, etc, I don't think anyone is very far ahead of all of academia.
At the opposite end of the spectrum think of a company like Intel investing into WiMAX. Developing that standard was not cheap, but almost by definition it was something that required disclosure of the end result. Intel can try to recoup the initial investment by selling chips implementing the standard, but competitors can always undercut them on price because they didn't have to spend any money coming up with the initial design.
There is a lot of technology that's much easier to reverse engineer than it is to develop. Especially with software, where it's often very easy to dig out a copy of the firmware from a competing product and decompile it.
You might think this kind of stuff doesn't actually happen, but in the 1990's American companies hated working with the Chinese precisely for this reason. They'd take an American product and copy it right down to the silk screening on the PCB's, and sell the result for cut-rate prices.
And the world is arguably a better place now that the Chinese can make super-cheap parts and clones of American designs and sell them to people who couldn't afford them otherwise.
We may have lost some of Shakespeare's plays because he had to be so secretive with his work, since he had no other legal protection from people just copying the stuff and putting on their own plays.
[1] Last chapter of the recent book "Imagine" by Jonah Lehrer
http://en.wikipedia.org/wiki/Inventive_step_and_non-obviousn...
Therefore anything more complicated than fizzbuzz passes the nonobviousness test and is patentable.
The fact that the decision was unanimous has a lot of us hopeful that the new patent cases that the supreme court is taking on will see more of the federal circuit's nonsense cut back. It won't be patent reform, but it will be progress.
Personally, I think the limits of software patents should be to precise algorithms. This ends up protecting the fruits of laborious research which have found optimal solutions (in an engineering sense) to things like cryptography, or graphics, or video compression. The disclosure of these algorithms would indeed advance research and the useful arts, and the disclosure would be advantageous. Most software patents, though, are "a system for clicking on a button, but INNA FONE!!!" type of nonsense where disclosure does absolutely nothing, anyway. So sure, such posers ought to be able to patent the exact algorithm they use to click their button, if they want, but NOT to patent the idea of clicking a button, which is in effect what we have now.
This separation goes pretty far towards the concerns the OP wrote down, and is, I think, pretty intuitive to most programmers. It is also the closest to copyright, but without requiring the legal jangle of "well, you used the variable i, but I used j, so therefore my code is different!!!1!one!!" kind of nonsense that pure copyright might result in. Patenting a precise series of disclosed algorithmic steps is helpful, and is a bright line for the patent office, and easy to adjudicate as well. Patenting the notion that you can transmit particular kinds of data over a network, or have certain programs talk to other programs, is where the PTO went off the rails.