Stories
Slash Boxes
Comments

SoylentNews is people

posted by janrinok on Thursday June 07 2018, @01:39PM   Printer-friendly
from the EU-got-something-right dept.

Gervase Markham has a thorough blog post about a case for the total abolition of software patents. He makes his case based on their complete lack of promotion of innovation and aims at identifying the principles involved. The feasibility of eliminating them may be a ways off due to the heavy politics involved so the idea may seem like a very distant policy possibility.

One immediate question is: how does one define a software patent? Where is the boundary? Various suggestions have been made, but actually, this question is not as important as it appears, for two reasons. Firstly, if we can demonstrate that there is a group of clearly identifiable patents which are harmful, or harmful when enforced in particular situations, then we can adopt the principle that such patents should not be granted or should not be enforceable, and where one draws the exact line between them and other patents becomes a secondary, practical, definitional issue beyond the initial principle. Secondly, some methods proposed for dealing with the problem of software patents do not actually require one to define what a software patent is. For example, one proposal is that one could change the law such that no program written to run on a general purpose computer could ever be said to be infringing a patent. In this case, you need a definition of "general purpose computer", but you don't need one for "software patent". Given these two points, I don't intend to spend time on definitional issues.

Currently software patents are a problem affecting the US and prohibited in the EU due to Article 52 of the European Patent Convention in 1973 (EPC). However, they are currently being pushed by the European Patent Office (EPO) in the name of "harmonization" despite being invalid. Many consider the fact that Europe remains unafflicted by software patents to be a moderating influence on the US market, holding back a free for all.


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 1) by exaeta on Saturday June 09 2018, @01:30PM

    by exaeta (6957) on Saturday June 09 2018, @01:30PM (#690785) Homepage Journal

    Well, I kind of agree with you. There are complicated data structures and algorithms that might be patent worthy. The problem is, in practice, software patents almost always apply to the latter case, the stupidly obvious things that get patented astound me.

    Part of the problem, I suppose, it's that it's impossible for a layperson to judge how difficult or complex a software concept is. They don't have the mathematical or computational background to understand these things.
    There's also the issue that a problem can appear complex when viewed from one perspective but simple from another perspective.

    Consider a "hash-radix table" (hadix table) which is rougly speaking a hash table indexed by a varying subset of the hash and key value where the buckets are AVL-trees that can be split and merged using AVL-tree split/merge operations and stored in a deque/monoque container yielding O(1) average for lookup, insert, and delete but O(log n) in the worst case, but with some bucket grouping optimizations for cache line efficiency.

    Describing the intricacies of how it works, though doable, would be complicated. That doesn't make the structure non-obvious from my perspective though, as most of the aspects of the structure are just obvious design choices to satisfy a really niche use case (getting O(1) average case performance while maintaining O(log N) worst case everything, at the cost of bad constant factor to performance in typical workloads).

    But given that it is complicated, I could patent it, because complicated must mean it's novel right? Nobody thought of it before me right? Well the thing is, turns out, nobody actually needs the thing, so that explains why nobody developed it first. But what would happen if I patented it and then in the future some new tech creates a need for a structure with O(1) average unordered lookup/delete/insert and O(log N) worst case lookup/insert/delete? Now all of a sudden even though this structure was obvious from the goal, you can argue it wasn't obvious because nobody figured it out for so long! It also sounds complicated, and a "programmer of ordinary skill" probably couldn't come up with this structure, to be quite honest. That being said, not only could most highly skilled data structure developers create this structure, given the design constraints, they'd probably come up with something extremely similar. And that's a problem.

    The software patent system, even when not used to patent obvious and stupid shit, encourages developing niche algorithms with no practical use case, because no corporation is going to invest money to create a data structure that has properties that aren't currently needed. There's also the problem that there will only be a very small number of abstract methods to accomplish the same goal that are actually efficient at that goal. When necessity comes around there's a submarine patent, and innovation stops since the gain of the invention is usually trivial in comparison to the cost of patent litigation or patent licensing.

    Unfortunately, the costs of software patents go beyond the direct economic costs, which are actually quite minimal when the patents are licensed at a reasonable rate. The real problem, is that even when royalty costs are minimal, the flexibility costs remain burdensome. When software is patentable, you can't just say "I wrote this software from scratch, so it's okay to sell", I have to worry about what patents my software might possibly infringe. There are many different ways to describe the same set of actions using jargon from various programming subfields, and I can't know them all. Software patents can be used not just to extract money as a return for investment, but to shut down competition, source code sharing, and non-profit programming.

    The MP3 patents didn't just provide royalties for MP3 code, they shut non-profits developers out of working with high speed audio. Yes, we ended up with OGG Vorbis thanks to that, but that was wasted development effort that could have went into improving upon the ideas in MP3 instead of creating a completely new audio compression algorithm.

    Non-profits and open source are forced into working on "let's figure out a new way to do X that isn't patented!" instead of "lets improve how society does X!". The end results?

    First, fragmentation. Instead of "audio can be stored in MP3", companies say "well MP3 is great, but we don't want to pay for the patent license, so we'll develop our own audio codec". Hence we got a bazillion audio codecs until OGG Vorbis+FLAC came along (and thus largely eliminated the need to develop a new audio codec to avoid paying patent royalties). We have the same thing going on with video. Instead of improving the same ideas (which mind you, is much more efficient) we have a bunch of programming "redoing" the same thing in a different way so that they don't have to pay patents.

    And lets be honest, the real reason big companies adopt patented video/audio codecs/file formats is to lock out competition with less deep pockets, not because the advantages are super compelling. That's sad. Compatibility breaks are a huge issue that crushes competition. People wont switch products when all their video files wont open in the new product, because the video format is patented and the other competitor doesn't have a license (you might consider this problem trivial, but to people without much technical knowledge, this is the sort of thing that keeps them locked-in to a vendor with terrible products). What about open source, where getting a patent license is basically impossible? Software patents lock people out of industries because they don't have the capability to do "X" and the way software is bundled with hardware now-a-days makes the situation pretty terrible.

    Software Patents are a solution in search of a problem that doesn't exist. This is why they should be eliminated. Unfortunately, it's hard to convey to laypeople that if we just got rid of software patents most technical problems they experience would evaporate within a decade and that they'd have the option of choosing whatever software they want to use instead of being locked into choosing between a couple large corps. A lot of people only understand patents from the innovation side, and don't see or understand the socio-economic harm that occurs due to indirect effects. While software patents do encourage innovation, they also discourage it under different circumstances, and the amount of innovation discouraged is larger than the amount spurred by software patents.

    While I am open to the idea that some sort of software patent might make sense, the way they are now functioning makes me think that the best solution is to eliminate them entirely and figure out if the are areas where copyright and necessity-of-function provide insufficient incentives for the development of new algorithms and systems. But I seriously doubt that such a thing would ever happen, after all history has shown us that even when algorithms are patented, if they are important, free alternatives are usually developed long before the patent expires.

    --
    The Government is a Bird