Hacker News new | past | comments | ask | show | jobs | submit login

Software is very clearly on one side of the line and software patents actually depend on that. On some level it comes down to this: does the patent cover a particular representation of an algorithm, or all possible representations? I think the former is very clearly not what software patents cover as it would imply that just compiling your code or using a different programming language would leave you in the clear. If it covers all possible representations, then it really covers only a method or "concept," not any particular apparatus (the hypothetical apparatus you might use is just a detail of the concept that the patent covers; in any case, software patents are almost never specific about what sort of computer you will use, so it is not clear what "apparatus" is being described).



> in any case, software patents are almost never specific about what sort of computer you will use, so it is not clear what "apparatus" is being described

Well yeah, that's what I meant about it being on the line. The patent system was designed before computers, and it clearly was built with the idea that physical things people built, and mathematical ideas people imagined, were two separate categories. With computer software, there's no distinction. I really can build a physical machine that does things using only mathematical ideas. The patent system wasn't designed to see that possibility.


There is absolutely a distinction in the case of software: it is a mathematical idea that people "imagine" (and write down etc.). The fact that we now have tools to automate our mathematics does not change anything.

Consider what I said: software patents necessarily cover all possible representations of an algorithm. It is well known that one representation of an algorithm is a lambda expression, and there is really no doubt that lambda calculus is a field of math. It is also well known that you can convert any other representation into a lambda expression (there are explicitly algorithms i.e. you could write a compiler that does this). In other words, any representation of an algorithm is just a mathematical expression, and when you are writing software you are doing math (maybe expressed in an unusual way compared to other fields of math, but it is math regardless).

The separation is this: you can write your algorithm on paper and you still have a representation of your algorithm. Only when you represent it in a particular way that a particular computer can evaluate will you be able to automatically run the algorithm. There is no requirement that you do so; you can also evaluate your algorithm by hand with pen and paper, or in your head (as most programmers do while they are writing code). You probably evaluated sorting, addition, subtraction, multiplication, and division algorithms by hand at some point in your life (you may have also done square roots, sines and cosines, etc., depending on your age and interests); you could have also used a computer to evaluate the same algorithms (even if they are not what most programming libraries would include). In principle you could evaluate any software by hand; in practice it would be too tedious and less accurate.


I'm getting the feeling that I think we're agreeing and you think we're disagreeing. But in any case -- I hear you, I see the distinction you're making, and I agree with all of what you said. I think it's weird that math isn't patentable and software is. There was a time when that made more sense, but I think today it no longer makes sense.

That said, the line I'm talking about isn't the representational line, it's the physical line. Math can be written down in multiple representations too. The reason that math was deemed not patentable isn't because I can or can't write it multiple ways, nor whether I can solve the math problem by hand.

Patents were just designed around products made out of physical devices and physical processes. If I had to figure out how to build a machine using gears and hydraulics, or wires and chemicals, then it was patentable. If I used math to design a better airplane wing, and built the wing, then the wing was patentable along with the methods to design the wing. If I came up with a better Laplace transform, then it's pure concept and not physical product, so it was decided not patentable. I believe the distinction is mainly about you having to build & sell the product you invented, because the patent is a business protection and not a copyright. If you invent something in theory but don't build it or try to sell it, then you don't get patent protection.


My understanding is that the reason math is considered unpatentable is that mathematical statements are considered facts. This is somewhat motivated by a "religious" idea that math is discovered; there is a very ancient philosophical debate about math as a "discovery" versus as an "invention." I am squarely on the "discovery" side, but there is a legitimate question of "where" the math is prior to its being "discovered." It is kind of hard to think about "discovering" something by applying your imagination; of course, "inventing" math is a bit odd as well since truth cannot be "invented."

Anyhow, glad we agree :)


Yeah, math might have been considered facts. But now we know better, now our improved understanding is showing that software and math are two different representations of the same thing.

> there is a very ancient philosophical debate about math as a "discovery" versus as an "invention."

Yes, and it's a super interesting idea & debate too. Not to get too far off topic, but I'm a little bit more of a mind that representations are invented, while many fundamental truths are discovered (and can only be expressed through representation).

One math example that for me relates to software just a tiny bit, and illustrates why this is a debate is the 0^0 problem. We've mostly figured out how to better classify and represent that, but not before having big arguments where smart people say 1 and other smart people say 0. Mathematicians and programmers have mostly picked a convention, even though both answers are right depending on context. I would call that picking of a convention part of the "invention" side of math, as is calling it indeterminate.

But yeah, agreed, invention and discovery are both weird and problematic when you talk about math.




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

Search: