Software patents are the problem not the answer
unionsquareventures.com
unionsquareventures.com
It is ridiculous to me that people can actually patent an idea, as if they are the only ones in the world who thought of it. (You're never the only one in the world who thought of your idea, even if you think you are.) A patent is not going to prevent someone else from executing the same idea in a better way. Meanwhile, all it does is slow down innovation and drain money and resources that could be better spent elsewhere.
http://levine.sscnet.ucla.edu/general/intellectual/againstfi...
I highly recommend that everyone should read this book, if only to elevate the average level of sophistication in HN debates about intellectual property.
From the US Consitution: "To promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries"
Software patents as currently practiced do not serve this purpose. Imagine if you were a writer and the words you commonly used for you craft were "owned" by others? This is the situation now for software developers.
If there was a different solution, then there could be many small players filling different niches. This would be a win since there would be many opportunities to create a business and contribute to the economy.
Look at ISPs, if all you have is Comcast then you have a parallel to the current patents winner take all situation with all the problems that creates.
I really think the larger issue is that if people can't create businesses that fill out the economic landscape then those people are not able to work to their potential and that is a huge unintended drag on growth.
For example, almost every computer system can be represented by a physical equivalent. I could write revolutionary software that enables the push of a button to do a lot of work, which previously required an entire factory of employees perhaps, and right now, I could patent that. Without software patents I couldn't.
However, if I invent a big machine, that does the same thing my software did, and I build it with gears and levers and conveyor belts, I could patent that. No one argues that I shouldn't be allowed to patent a physical device or the design for a physical device.
But people argue that I shouldn't be allowed to patent a software device that does exactly the same thing as the hardware device.
Why the bias toward the physical? Why don't abstract inventions carry the same worthiness of intellectual protection that physical devices afford?
But the real difference (and problem, imo) can be found in the claims.
A patent for a physical invention lays out, in its claims, precisely how an invention works. A lever-arm here, a catch there.
Infringement on that patent can only happen if a competing implementation contains all the elements of the original claims.
So if I want to achieve the same result that you did, I simply have to build my solution such that at least one element is distinct.
E.g. If you were granted a patent on a traditional set of gears to effect variable windscreen wiper delay, I could use an orbital gearing solution. Regardless of which solution is better, at the end of the day we'd both be able to offer our clients variable wiper delay.
Software (and process) claims, by contrast, invariably work at a higher level. Gone are levers and gears, in their place we find 'a method', 'a network', 'a client'. As we all know "a network" describes a far, far larger domain than "a gear" (and even "a gear" is pretty darn generous).
Software patents are literally staking their claims at a higher level of abstraction and the practical result is that there is generally no feasible alternative implementation. So no competitor can offer a competing product that effects the same result, even if the substance of their solution is wildly different than the original invention.
Rather than granting a monopoly on the invention, software patents live far closer to the level of granting a monopoly on the idea. And this introduces a much more severe drag on the market than you see with physical inventions.
For loops are like gears. While loops are like emptying water tanks. Booleans are switches Storage containers are variables.
All that stuff is represented in the source code. As a software engineer, my defense is my repository. I wrote all that code, look. I didn't take it from someone or copy someone's idea or try to infringe anything. I was trying to make the world better and people liked it so they bought it and I can feed my family. :)
Only if it was written by a really crappy lawyer! The company I work for spent months coming up with a design for a mechanism and ended up with something pretty suboptimal in order to avoid all the existing patent claims. A good patent attorney will state the claims as generally as possible. e.g., don't call out a "10-24 screw," instead call out a "fixed or removable fastener" or "a means of locating the rotating element" etc. You may be confused because many patents show drawings, but those drawings are only examples to illustrate the concept, not necessarily actual claims
That's one good thing about open source software. Improvements can just be tacked on. You don't have to go invent something totally new. That is one thing that separates software and machines.
It's hard to tack a more efficient engine onto a 5 year old tractor.
Yes, applications on physical inventions try to broaden their claims as much as possible. But there is still a substantial and quantitative difference between the domain covered by "fixed or removable fastener" and "a network" or "a process".
NO!
Outside of the lower end of the embedded realm, computer systems are fantastically more complicated than anything physical we've every tried to construct, and they contain so many ideas that could be subject to patent in the current regime that you analogy fails.
My personal opinion is that if the patents required a pseudocode implementation using a common-standard language to represent the components and operations, it would be much easier to determine patentability, would prevent generic, wide-sweeping software patents and require the investment of actual invention rather than just an investment of dreaming to be patented. Physical device patents are required to be specific enough that it can be used to create the device using only the patent and references in the patent. The same should be applied to software patents, with the translation from the pseudocode components to whatever language or platform be the same as physically constructing the components of a machine.
My thesis is that even if I grant you a sane patent regime the macro level scales so fast and big that that changes the game and makes the concept impossible in practice.
EDIT: Reading your recent response to another commenter below, I don't want to give off the impression that I think any current software patents should be maintained. I think they should be all completely removed (or required to be resubmitted fitting new requirements that include specific details on implementation). My ideas are in the "dream world" where the rigor was applied since the first software patent was applied for.
> NO!
It's hard to believe, but it is true. Imagine simply replacing tiny transistors on a chip with big relays and physical switches that flop back and forth. Yes, it would take a long time and be a very big device, but it's a mathematically proven fact.
And it kills open source software, which doesn't have a model to pay license fees.
Plus there are so many not formally documented ideas that the Patent Office regularly issues patents covering well known prior art; surely you've heard of this? E.g. the XOR patent?
With any luck http://en.wikipedia.org/wiki/In_re_Bilski will drive a stake into the heart of this madness.
Anyway, we're still talking about adding so much friction to the writing of software that it would utterly change the field and curtail most development, especially in small firms ... well, I suppose a healthy underground would develop. But there wouldn't be much for YC to do.
No thanks.
Maybe the solution is holding software patents to the same rigors as mechanical patents. Why the distinction? That's what I don't understand. And still don't.
Why are they treated differently? By everyone. Even outside the courts.
2. Scale: just how many are used in any one system makes "deleting software patents" a good and probably the best outcome. Especially since there was no lack of health in the software industry before they were allowed, and there's no evidence I'm aware of that they now help it and plenty that they don't.
It also seems to break down, mostly due to scale, when you insert patent trolls into the game. In the physical world there's a lot of cross licencing, where one patent, revealed to the world by the very act of patenting it, often results in an improvement, whereby the two companies cross license.
Let's take a step back: the idea of patents is that for their absolute monopoly of limited duration you reveal your secret sauce instead of keeping it indefinitely hidden behind trade secret law. I fail to see how the publication of software patents helps the field in this way. Even if they weren't obscurely written, there are again just too many of them (too many ideas).
2. There are so many because it is easier to write code than it is to cut iron. That doesn't mean the value of the invention isn't worth just as much to the world and the inventor. Maybe more. We should see an exponentially increasing quality of life due to the exponentially increasing ease with which it is getting to innovate.
People can build a CNC in their garage with parts from the lumber store and a couple websites. That was unheard of 20 years ago. We have lasers in our junk that can start fires. Think of the leap fire gave us!
Just for reference, this is not entirely rhetorical; I would like to know about such, too.