Of course, with that analogy…. MAD stopped working, the big companies launched their arsenals (perhaps fearing an ‘existential threat’. Maybe we should stop this analogy now, as harmful as these patent wars are to technology innovation (very very), nobody actually gets killed).

Oracle v. Google, in which Oracle claimed they had a patent on symbolic references in compilers, basically. And then in a copyright claim, basically said that you could copyright an API’s structure itself, making anyone writing a product API-compatible with a competitors a criminal. Fortunately Oracle lost big time.

Of course it’s not just the big guys suing each other — we’ve also got ‘patent trolls‘, which were never part of the “Mutually Assured Destruction” analogy, they exist solely to launch their patent missiles.

What are the patents they claim violated? The first two are both about, well, hash values to summarize data: 5,978,791 (thanks Google patent search) “Data Processing System Using Substantially Unique Identifiers to Identify Data Items, Whereby Data Items Have the Same Identifiers.” 6,415,280 “Identifying and Requesting Data in Network Using Identifiers Which Are Based On Contents of Data.”.

It’s confusing reading patents, I’ll stop at those first two — there are several more. But it looks like the patent trolls are claiming they own the idea of…. well a hash function in a ‘data processing system’. And using a hash value to retrieve data over a network.

The non-programmers may have no idea what this means, but the programmers know this is a common, obvious, frequently used thing to do. Heck, there’s a wikipedia article that says it’s a common thing to do.

In fact, there’s nothing special github as an organization is doing with hash functions as lookup values — it’s intrinsic to the operation of git, which even without a web UI is inherently a network-based application which “identifies and requests data in a network using identifiers which are based on contents of data.” That’s pretty fundamental to how git works (and probably most other DCVS too, and lots and lots of other software too. Dropbox for one; wonder if Dropbox has already settled with these trolls?).

Now, I’m no patent lawyer; perhaps the patents, the trolls would argue in their defense, don’t actually cover any use of hashes to identify data, just particular ones that github (meaning, that git as software) does. The patent is surely very confusing. Like most software patents. It’s intrinsic to software patents that nobody can figure out what they cover and where their boundaries are. And it’ll be decided in court (if it gets there) by a jury of ordinary people; if it’s confusing for us software developers, what are they going to do? Oh, the patent doesn’t cover all hashing maybe, just the hashing of whatever company the trolls decide have deep enough pockets to be worth threatening. There’s nothing special about the hashing used by git, it’s a pretty ordinary use of a hash value to identify data.

We’re at a tipping point. Patent nuclear war. It is quickly becoming impossible to develop any software without infringing on someone’s (vague, over-reaching) patent (of obvious non-novel things). Seriously, we’re getting to the point that software development will be impossible.

But software patent reform seems pretty unlikely (what just happened didn’t change nothing), there’s too much capital invested in patent portfolios that would be disappeared if they were all declared unenforceable. In fact, maybe our only chance is if ‘mutually assured destruction’ does continue to fail, and the Giants keep suing each other and realizing what an awful mess this is; only the Giants have much influence on Congress in such matters.

John Miedema first got me thinking about the idea of a software engineers ethical responsibility with regard to patents. But I think I’d go further then Miedema (I actually disagree with about 50% of the rest of what Miedema has to say about software patents, heh), and suggest that at present, with it being obvious how destructive patents are to the practice of creating software — I’d suggest it is unethical for any software engineer to participate in the acquisition of any software patent, or to aid in the prosecution of any such patent suit.

3 thoughts on “The patent nuclear wars have begun”

You said, “It is quickly becoming impossible to develop any software without infringing on someone’s (vague, over-reaching) patent (of obvious non-novel things). Seriously, we’re getting to the point that software development will be impossible.”

When I do software development for clients for their internal use or on the open web as open source code, I never ever think, “Uh oh, some one might have patented this already, I better stop.” Do you? The only time that would ever matter to anyone, that I can think of, is if they are planning to patent it. The people who are going to keep building software are the ones who don’t care about patents.

But of course my point is that you can’t think “uh oh someone might have patented this already I better stop” — almost anything you do somebody probably DOES have a patent that they plausibly could sue you with, you can’t stop without getting out of the business. So you hope nobody decides you’re worth suing. And, yeah, if you aren’t trying to build a commercial business based on it, you probably won’t be. For now. Unless possibly whatever you are doing is a threat to someone elses commercial business, and they have a patent arsenal too.