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!
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 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...
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.
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.
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.
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?
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.