> "all algorithms are math" is an irrelevant reason for making software not patentable
Not so, the statutes themselves are a bit unclear, but they say that processes are patentable but math is not. Unfortunately, the courts have not fully realized the fact that algorithms are mathematical processes nor are they overly clear about what is and is not math, as they have clever lawyers crafting arguments that go against what mathematicians have considered as math for millennia.
al-Khwārizmī may be responsible for the world algorithm, but they've been used by mathematicians since at least Euclid in ~300 BC.
You are right that the method for deciding on what parts of math are subject to patent can be wholly external to maths and not pay any attention to mathematics whatsoever, however what Knuth is saying, and I would tend to agree with him, is that this would be folly.
So it's true, they can create an arbitrary distinction. The problem with that is that it can be made to mean anything and, for that reason, is inherently meaningless.
I understand this to be the sort of vague law they, quite reasonably, normally attempt to avoid. I cannot see any reasonable justification for adopting that here, though I suppose that those in the patent bar have a monetary interest in saying otherwise.
Big corporations see an advantage in it.
That is all about it. That's the reason, they started with this and that is the reason, why nobody changes this system, although anybody with a clear mind can see what harm is being done. The corporations pay hundreds of lobbyists and lawyers to ensure, they can protect their support-system.
All the other reasons told, are just gibberish.
Algorithms are mathematical structures, and they're also machines. Both of these claims are true in the plainest, most common meanings of the words possible. An attempt to create a distinction between classes of algorithms has to be based on something. Again: what could that be?
EDITED to add: just so it's clear where I'm coming from -- I think algorithms are clearly patentable subject matter. The problem we have with software patents is that the obviousness bar is far, far too low.
Sorry, but you can kick a machine. You can not kick an algorithm, exactly like can you can not kick any kind of mathematical construction.
Now consider a physical general-purpose computer with your program loaded into it. Can you really argue that this is fundamentally a different kind of object than the special-purpose machine? They behave, let's suppose, identically.
Okay, maybe you would say, the program considered abstractly is still an object I can't kick, so it's not patentable; the only thing that's patentable is a physical computer with the program loaded into it. But that doesn't help you, because no one can actually use the program without loading it into a computer anyway. So if you get a patent on a computer with your program loaded, that has the same practical effect as a patent on the program itself. No?
> To a computer scientist, this makes no sense, because every algorithm is as mathematical as anything could be.
But there is no reason for definitions in the law to mirror precisely the definitions of computer science. After all, a patentable drug formula is, to a chemist, just a description of a chemical system under the laws of chemistry. A patentable mechanical invention is, to a physicist, just a description of a physical system under the laws of physics.
The law very often makes distinctions between things that cannot be distinguished by their fundamental nature, on the basis of external policy reasons. The difference between murder and self-defense cannot be described by fundamental differences in the physical mechanics of the two actions. Now, that is not to say that software should be patentable, but rather that "all algorithms are math" is an irrelevant reason for making software not patentable. It's an interesting philosophical and theoretical point (not to mention, obviously true), but has no relation to the purposes of patent law.