Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Software patents are the problem not the answer (unionsquareventures.com)
52 points by pmjordan on Feb 19, 2010 | hide | past | favorite | 26 comments


I couldn't agree more. Patents are a complete waste of time.

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.


You do realize that without patents large companies have FAR less incentive to buyout novel startups right?


"It is common to argue that intellectual property in the form of copyright and patent is necessary for the innovation and creation of ideas and inventions such as machines, drugs, computer software, books, music, literature and movies. In fact intellectual property is a government grant of a costly and dangerous private monopoly over ideas. We show through theory and example that intellectual monopoly is not necessary for innovation and as a practical matter is damaging to growth, prosperity and liberty." - Boldrin and Levine, Against Intellectual Monopoly

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.


I think people lose sight of just what patents are for; they are to encourage innovation.

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.


Agreed. Software patents hinder innovation. Large companies can afford to create and license patents; startups launch products/web services and hope not to trip any of those "landmines" when they become successful.


It has been said that what the current patents issue creates is a landscape where you can only be the one winner or among the many losers.

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.


I don't know. I don't think it's black and white. I suppose my concern with software patents is this, why are software engineers in another category of intellectual from mechanical engineers, chemical engineers, and civil engineers?

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?


The common complaints about software patents rely on mistakes and shortcomings of the book-keeping: obvious inventions sneaking through, prior art missed, terms too long, etc.

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.


The solution then, it appears, would be to hold software patents to the same standard. Put the code in there. Patent the source code. Forget the legal stuff. If you use unpatented closed source patents, be clear about which product it is and which version you are using. Hold corporations responsible for using version control on their software and everything falls into place.

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. :)


Source code is already covered by copyright law. Why must it be covered by patent law as well?


A patent for a physical invention lays out, in its claims, precisely how an invention works. A lever-arm here, a catch there

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


Sounds like innovation to join a market, rather than innovation to create a market. Why not just patent an improvement on an existing product?

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.


You're arguing one simplified example while having ignored the thrust of the argument.

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".


"For example, almost every computer system can be represented by a physical equivalent."

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.


You're mistaken. Every algorithm used in software can be created as a specific integrated circuit. Software is a means of controlling a general processor that performs sets of operations based on instructions it receives. No matter what level of programming you are doing (from interpreted web dev down to assembly) it gets translated and passed to the processor the same way. The problem isn't that it's too difficult to be specific enough in the patents due to the complexity. The problem is that there isn't a REQUIREMENT to be that specific in software patents.

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.


I think we're talking past each other in that I'm focusing on the macro level of an entire system with N (where N is large) algorithms whereas you're focusing on the concept of an individual one.

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.


We have our common ground in that the current system is broken. My example of a single algorithm was based on the premise that for any algorithm, others can(are) incorporated into it (the algorithm can become synonymous with a cog, which would itself be patentable as well). Therefore, by my viewpoint, the macro level is identical to the micro level. The level of detail in patent applications for physical devices are mindnumbing. A key method of overcoming this problem is by using references to other patents. In this way, you could hold patents X, Y and Z and apply for a third patent A that combined the patents into a macro system without having to detail X, Y and Z all over again. My opinions on how to fix it are based on a blank slate system, all software patents should be of this level of detail, etc. rather than a just "going forward they should be". With that level of detail in a patent, resolving unintentional infringement is trivial while still providing the same output by simply referring to the patent and adjusting your implementation accordingly. This also means that prior art is easier to assess. The difficult part would be obviousness, but given the proper staff and training can be dealt with.

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.


So this adds even more to the argument that software should retain its patentability. If it's even more complex than the old stuff we thought was so complex it deserved special protection.

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


No, the point here is that no one can build a software system of any complexity without infringing on many patents. Tracking that and even paying RAND fees without the need for negotiation makes this impossible, not just difficult or impractical.

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.


The legal system, unfortunately, is where patents are disputed. If there is prior art, the patent will be thrown out.


Unless of course it's litigated in a jurisdiction like the Rocket Docket AKA the Eastern District of Texas, in which case the plaintiff generally wins. And it's very expensive to litigate this, to defend yourself you'd have to retain one or more very expensive expert witnesses. While I like the idea of putting money in the pockets of MIT professors, this is not the best way ^_^.

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.


Okay, I agree for sure that the system is messed up. But my real question is, "Is the solution deleting software patents?"

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.


1. Originally, the biggest issue was "you can't patent math", i.e. where do you draw the line between discovering a rule of the universe vs. an "invention". Square roots are not an invention per se. A method for finding them...???

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).


1. It's all math. You can't patent english either, but patents are english -- at least in the united states.

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!


Minor quibble: patent prosecution is the process of getting a patent from the PTO. Patent enforcement is suing a startup for infringement.


Can anyone think of or refer to any single case where a software patent had actually and demonstrably advanced the field?

Just for reference, this is not entirely rhetorical; I would like to know about such, too.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: