Live data from Hacker News

Linus Torvalds: Software and Process Patents Don't Make Sense

muktware.com

21–30 of 92 posts

Re: Linus Torvalds: Software and Process Patents Don't Make Sense

#21
> I think patents probably work better in certain areas than they do in ours. Software patents? No. Process patents? No. They just don't make sense.

Only if you ignore the fact that congress is composed of lawyers, who have a large self-interest in preserving the current Byzantine system.

Re: Linus Torvalds: Software and Process Patents Don't Make Sense

#23
post #20
post #13

Everything we create and think of is based on experiences (sight, smell, feelings....). Therefore it's very strange to have patents. A patent is just a smart mix of things that already exist. Software is always mixing existing things using existing tools. So it's very difficult to have a 'smartness' value for a software patent. Fortunately Harrison Gray Dyar and Samuel Morse don't have all rights for binary code...

Patents are about ideas and inventions which must be "novel", "useful" and "non-obvious". A smart mix of things that already exist would not be patentable unless it is "inventive", "novel", useful" and "non-obvious". If it is all of these, it should be patentable whether it is software or hardware. (Note however that laws of physics, mathematical formulas, etc. are not patentable.) What's broken is not the concept of…

It would seem that one of the main arguments against software patents that is thrown around is that "software is mathematics". As a software engineer currently knee deep in learning Haskell, I believe that this argument carries plenty of weight. However, when judging software patents, we shouldn't overlook the reason for which patents themselves were originally invented.

I think the best description of a patent that I ever heard was:

   "A government granted use monopoly in exchange for full disclosure of how the invention works."
This is, in my opinion, not a bad idea. It promotes the sharing of knowledge, whilst not depriving the inventor from the spoils of their work, but only if a full, formal design of a working system is disclosed.

In software, patents are granted based upon a technical description of the concept. But the requirement of a formal definition - which in the case of software boils down to either a proven mathematical model, or some code that implements the concept - is absent. Since written language is full of ambiguity and uncertainty, it is very possible and regularly the case that patents are granted on an idea that provides no concrete specification. As a result, the disclosure part of the agreement is not satisfied.

Re: Linus Torvalds: Software and Process Patents Don't Make Sense

#24
post #20
post #13

Everything we create and think of is based on experiences (sight, smell, feelings....). Therefore it's very strange to have patents. A patent is just a smart mix of things that already exist. Software is always mixing existing things using existing tools. So it's very difficult to have a 'smartness' value for a software patent. Fortunately Harrison Gray Dyar and Samuel Morse don't have all rights for binary code...

Patents are about ideas and inventions which must be "novel", "useful" and "non-obvious". A smart mix of things that already exist would not be patentable unless it is "inventive", "novel", useful" and "non-obvious". If it is all of these, it should be patentable whether it is software or hardware. (Note however that laws of physics, mathematical formulas, etc. are not patentable.) What's broken is not the concept of…

> What needs fixing is the implementation, not the idea itself of the patents, be it software or hardware.

There are two issues here:

1. You assume the implementation is fixable, I have seen no sign of it so far, especially for software and method patents. Even more so as the number of patents applications is skyrocketing worldwide and intellectual propriety offices have neither the resources nor the qualifications (at least in software) to do a good job at it. This is not helped by

2. Patents themselves have little value if there is low risk and investment in what is being patented. That's the case for software (relatively). Even more so because reinventions are very common in software, if you have a given problem there will be converging solutions independently devised. Patents were originally thought of to grant a short-term monopoly to a creator in exchange for that knowledge being public. The goal was twofolds, to encourage potentially costly innovations and to ensure that knowledge gets into public domain at one point, to benefit all.

  The second goal is broken by the duration of patents, especially in domains with high rates of innovation (hello software) and the first one is likewise broken in domains with high rates of innovation because patents hinder reinvention (this is made even worse with the new hare-brained schemes of first-to-file as it starts breaking even *pre*invention) or synchronous invention by making them far riskier.
I submit that not only is the implementation broken, but the concept itself is broken for any domain with low investment costs and high innovation rates: for patents to "work" their duration would have to be so low (months, or even weeks) as to make them not worth the time.

Re: Linus Torvalds: Software and Process Patents Don't Make Sense

#25
post #12

Don't you just love this quote: "I mean Java I really don't care about. What a horrible language. What a horrible VM. So, I am like whatever, you are barking about all this crap, go away. I don't care."

[deleted]

Possibly because it's duplicated content. They were both posted about the same time, so it's arbitrary which gets voted up and which gets voted down. But ideally only one would exist; voting one into oblivion is the easiest way to approximate that situation. I'm just speculating though.

Re: Linus Torvalds: Software and Process Patents Don't Make Sense

#27
post #22

I recommend reading the whole interview, not just the patent part. They cover a lot of topics and it's very good stuff.

Here are the links:

http://www.muktware.com/blogs/1721 (an older interview in full)

This one:

http://www.muktware.com/news/2855

http://www.muktware.com/news/2857

http://www.muktware.com/news/2859

http://www.muktware.com/news/2860

http://www.muktware.com/news/2861

http://www.muktware.com/news/2862

http://www.muktware.com/news/2863

http://www.muktware.com/news/2864

http://www.muktware.com/news/2865

Also, interesting portmanteau domain name - muktware means free (soft)ware in Indian languages.

Re: Linus Torvalds: Software and Process Patents Don't Make Sense

#30
post #18
post #10

Earlier quoted context omitted.

The Java VM is quite bad. There just isn't an alternative that meets these criteria: 1. cross platform (windows, mac, linux, mobile devices, embedded) 2. kinda fast 3. reasonably mature 4. bunch of libraries If you want to create a new programming language today Java is the only viable platform. .NET and Mono isn't quite mature enough (and it's very similar to Java anyway). If you bootstrap from C it'll be fast and p…

Correct me if I'm wrong, but aren't you confusing Java the language with the actual JVM? On your last paragraph, you pretty much described what the JVM is in my perspective.

There is no proper separation of concerns in the JVM. The JVM instruction set has instructions like `invokevirtual` and `invokestatic`, `invokeinterface`, which are Java specific features. The JVM also knows the concept of classes and methods and fields, even though those abstractions should be defined at the language level, not at the VM level (a Lisp or Forth-like stack machine needs different abstractions).

The datatypes in the JVM are pretty weird. You have chars, but not unsigned chars, some integer types (but not all). You have no support for unicode. There is a low-level struct for arrays and multidimensional arrays (of a specific type), but for nothing else. It supports exceptions, but only Java like exceptions. (You can't make an exception system where execution can be retried or resumed; it's just not supported). It also has a java-specific thread model (want to create lightweight threads with lockfree data structures? nope, not gonna work).

What you want is a low-level platform with different modules that can be picked by the people who implement the programming language. Pick a parser module, a garbage collection module, a JIT compilation module, and so forth. This is really difficult, because you have to have a good understanding what kind of primitives different programming languages need. When all these things are fixed and non-interchangeable you end up with a virtual machine that is suitable only for a specific kind of language. It's turing complete, so of course you can make any language on the JVM, but it's just not a good fit.

Post reply on HN