Says who?
> that's essentially all software really is
The implementation of MPEG2 is "business logic"? I wouldn't call it that.
The math/algorithms/whatever are covered by patents.
I could write a totally distinct implementation of mpeg2 called "myvideoencoder" which used the same math, and the patent would make that a violation of their rights.
Math isn't patentable per numerous rulings in the past, but somehow once a computer is doing math really fast it becomes patentable.
As a counterpoint that argues why software patents should exist, I'll point out this. If you build a mechanical feedback mechanism that acts as a controller for some chemical process, no one doubts that said controller meets the patentability criteria. So why should we penalize inventors for emulating that controller in software instead of doing it in hardware? (Note: this scenario is effectively the one that established the patentability of software).
The real problem is that the bar for novelty and obviousness in software ought to be much, much higher, and software, having shorter development cadence, needs shorter patent protection times. The most useful change to patent law would be to have patent times adjust to reflect typical development cadences, as opposed to being fixed across all fields.
I don't have anything against software patents per se, and your example, I think, is a good one, but 20 years in a field moving as fast as software is ridiculous (I'd push for 5 years at most), and the ability to be issued a patent on trivial bullshit is insane.
But, yes: the current system is undoubtedly broken. Terms are way to long (for software, at least), and too many patents are clearly violating the novelty bar.
That makes absolutely zero sense as an argument.
It is absolutely the mathematical principles being patented otherwise how can you possibly prosecute anyone of an independently implemented implementation of the maths?
Does that not seem like a huge leap? mpeg2 sure isn't encoding a mechanical mechanism. Hardly any software these days really is. Software now is mostly focussed on dealing with ætherial information, not physical machines.
The problem is, over the past few years software has been moving way too fast for the standard patent timeframe. Patents on software last longer than it would take for a competitor to re-invent a trade secret: the result being that they actually slow down progression.
Ideally, we would adjust the term of every patent grant to match (or scale with) the difficulty that a competitor would have to go through to re-invent it. An approximation to that is having different patent durations for different fields (shorter for software), and an approximation to that is not having software patents at all.
Two thoughts:
- Why does this mean that they should be eliminated entirely? Why not revise the timeframe?
- Isn't this argument applicable to almost all modern patents, whether software, technological, or otherwise?
Unfortunately making software non-patentable isn't likely to happen anytime soon. Perhaps we should fight for some key changes like reducing the length of software patents to something reasonable like 5 years.
I'd also like to see an "industry standards" exception to patents: Any implementation of an industry standard created by an international standards organization, working group, or similar authority is exempt from patent suits. Royalties are fixed at some rate determined by the board (but no more than x% of sales price or flat $y per item indexed to inflation) and go into a pool. All patents in the pool are paid out of it. If you think your patent covers something in the standard your only option is to submit your patent to the pool, then you get a cut of the royalties corresponding to your contribution (again as determined by an impartial board). Any fights over standards-related patents would be confined to the board of experts, the royalty rate they determine, and the allocation to each patent. The law would specify that changes to royalties (even court-ordered) can only go into effect once per year and only apply to products manufactured after that date.
Such a scheme would encourage everyone to contribute to open standards because it would be the only way to ensure you can avoid patent lawsuits.
The one wrinkle is open-source software. I was trying to come up with a workable system. All I landed on was no royalties required for open-source software or end-users of such software, but if a manufacturer uses such software in a product they sell then they would still be subject to royalties.
As you point out, the lack of patent revenue here isn't going to hurt innovation; I agree that it's laughable that the lack of patent protection would stop or even slow down research here.
Most A/V codec development these days is done at least somewhat out in the open, and there are collaborators between different organizations. The nature of the beast is that you can't release codecs to the public without inherently giving away how it works. Even if you lock things down with NDAs and such, people will reverse-engineer it before too long.
That alone isn't an indictment of patents here (note that drug development suffers from similar issues, at least wrt disclosure), but:
This sort of work will happen regardless of whether or not there are patents covering them (the fact that we have/had things like Vorbis, FLAC, VP8/9, Tarkin, Theora, AV1, etc. is proof of that), so in the end patenting these sorts of things doesn't actually "promote the progress of science and useful arts"; it just encourages rent-seeking behavior. Patent-encumbered codecs out there are not meaningfully better performance-wise than the patent-unencumbered ones (certainly not enough to justify the licensing fees); the patent-encumbered ones are merely better at marketing, so everyone who wants to do anything with video ends up paying a tax for no real benefit.
How often are people really inventing novel things, patenting them, and then licensing them out to other parties or selling the rights? By far the most applied use case of patents is to fabricate or buy bullshit IP to sue anyone even remotely close to your product or service into bankruptcy.
In some ways, yes, patents have created jobs. Except the job is not to be innovative or discover new things, but to manipulate and optimize your language in a patent filing to cover as much existing IP as possible that you can then harass with your patents.
It is only most obvious with software patents because of how insane it is to restrict math like that.
The question always has to be do the benefits outweigh the costs. Are the few and far between actively able to use the patent system as a means to come up with legitimately novel inventions worth all the innovation lost to corporations using patents as weapons to shut down competition and prevent innovation.
If that were true, there'd be no competition in the codec space. Besides, why can't the same argument be applied to machinery? There's "mostly only one way" to poke a thread through a sheet of fabric, so why should the sewing machine be patentable?
What do you believe the difference is? To me, software and algorithms are the same thing.
https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Wel...
Algorithms exist outside of software.
Algorithms are formulas or functions for solving a problem.
Software is usually the implementation of one or more algorithms on a computer.
(1) All computable programs can be expressed as a Universal Turing machine.
(2) There are countably many Universal Turing machines
(3) In an abstract sense, we can thus assign a unique identifier to each possible computer program. I can tell you "run program 383439343" and that will tell you everything you need to run that function.
Most of these programs are of course not correct in the sense that they produce a useful output, or even necessarily terminate. But then, most numbers aren't useful either, it's only because of the emergent properties of our mathematical rules that something like a "prime number" even has a conceptual meaning, and it's only because of our contextual needs that, say, sorting an array would be a useful output.
Distinguishing between algorithms and software is a distinction without a difference. If the two implementations produce a different output, then by definition they must be following a different algorithm. And if they are the same algorithm, then they can be reduced to the same Universal Turing machine.
Second, even for algorithms which can be expressed as Turing Machines, you are giving the computer science equivalent of saying that a house and it's architecture drawing are the same. One is a thing which exists, one is a description of the thing. You cannot run an unimplemented algorithm without first doing the work of implementing it.