Thursday, January 12, 2012

Software Patents: Please Die

Here's why we software developers hate the patent system. We write software for a living. We write tens of thousands of lines of computer code, including some algorithms and techniques that we think are clever and that we are rightly proud of. We go through all the work of testing it, fixing the bugs in it, writing documentation for it, and packaging it up for our users.

Then we find out later that some shmuck wrote several pages of legalese and submitted it to the patent office. This "patent" describes a similar technique to something we did in our software. The shmuck that wrote it didn't have to write tens of thousands of lines of code, didn't have to test it or fix bugs in it, didn't have to package it up for anyone else to use, and only wrote documentation in language that is not intended for the rest of us to understand. But, because he merely described something that we did (as long as he wrote his description before we wrote and packaged up our software), he's entitled to enormous legal damages against us.

Software developers work their asses off to think of ideas and make them reality. But the patent system says it's illegal for me to use the same idea that one single shmuck (among hundreds of millions of other shmucks in this world!) thought of first, as long as that other person earned the name "shmuck" by submitting a patent application. The patent system says I am liable for huge amounts for doing so. And even if you wrote your software before the shmuck wrote his description of it, it might be very costly to prove that in court.

I am proud to have never submitted a patent application, although I don't blame companies for doing so or for buying patents from other companies at great cost. When a company like Apple accuses another company of patent infringement, naturally that other company would like to have their own portfolio of patents with which to fight back. The best defense is a good offense, as they say, which is why all the tech giants are stockpiling patents like never before. The hope is that if one large company accuses you of patent infringement, you can search through your portfolio looking for an idea you "own" that your opponent has also used, and then countersue them.

But then there's the patent trolls, especially non-practising entities. These are companies that buy and own patents and launch lawsuits, but do not make any actual products. They exist specifically to make money from the patent system without contributing anything whatsoever to society. Since they have no products, nobody can countersue them.

Both patent trolls and tech giants like Microsoft often employ a "protection racket" approach to making money on patents. Actually suing someone in court for patent infringement can be risky, since a court battle is expensive to wage, you might lose the case, and if you are a big company, you risk harm to your reputation by trying to make money through lawsuits instead of by making products and innovating. So instead, they seek out companies that make software and basically tell them: you are infringing one or more of our patents. If you pay us, we'll sign this agreement not to sue you.

But if you're a patent troll, there is generally no need to identify a specific patent that the other company is infringing. In fact, it's better if you don't tell them which patent they are infringing! If you tell them, they may simply change their software so that it doesn't infringe the patent. Or worse, they may examine their software and realise that the patent covers something slightly different than what their software actually does, so there never was any infringement, so there is no way you could win a lawsuit against them. That would destroy any possibility of taking their money. So instead, the patent troll or big company will say: we have a giant patent portfolio. For a monthly fee, we will let you use any of the ideas in our patents! Great deal, huh? Of course, if you don't pay us... we can't be held responsible for what will happen to you.

Even better, if you take this approach, you don't even have to figure out whether a target company is infringing your patents or not! You can simply deliver your veiled threats and if they pay you, great! If not, THEN you can do a search through their products and your patents looking for a match. If you find a match, you can pursue them more aggressively. But in any case, you don't legally have to reveal which patent is infringed until you actually file a lawsuit.

This approach need not be limited to software. And the patent system isn't only broken for software. It's just that software is the most obvious field where patents aren't necessary. Software is already protected by strong copyright laws. And the behavior of most software is difficult to analyze and modify because companies (at least the ones that make money selling software) typically use compilers, and possibly obfuscation systems, to transform code from a human-readable code to a merely machine-readable code that is very difficult for anyone to understand. Meanwhile, the original source code is kept secret behind company firewalls. Finally, companies that really don't want their software copied can employ "DRM" copy-protection schemes or (in extreme cases) hardware dongles.

Because we have all these legal and practical protections in place, the most practical way for company A to make software that does the same thing as company B's is to re-implement the software from scratch: company A makes its engineers actually put in the effort to create a totally separate software system. Often the new "software A" is better than the "software B" against which it is competing; or in the case of China it's a low-quality knockoff that isn't very good. The point is, patents simply aren't necessary at all in the software industry. Our intellectual property is protected more than adequately already. The patent system only adds overhead costs, strikes fear into the hearts of individual developers and companies too, and impedes innovation.

Patents are bad for users, too. The costs of patent lawsuits are ultimately passed on to consumers, either because goods cost more to pay for "patent licensing", or because goods cost more to pay for patent lawsuits and lawyers, or because you decide to pay more so you can use features that are exclusive to one company.

An example is Apple's U.S. patent #7,469,381 on elastic bounce-back. You know how, when you swipe your finger in a list on the iPhone, the list keeps scrolling but slows down? That's called kinetic scrolling; luckily it's rumored that it was done in the 90s or earlier, so Apple can't patent that. But when you reach the end of the list, scrolling doesn't stop abruptly; instead it goes a little way beyond the end of the list and "snaps back", and you can even pull a list beyond the normal limit with your finger. Apple does have a patent on that.

Apple is fully within its legal rights to declare that no other phone or computer can offer this same feature. That way they can sell more iPhones because some people will decide to buy iPhone instead of Android because it has a nicer, more polished user interface. But people should understand that if Android doesn't offer this feature, it's only because Apple has a 20-year patent monopoly. Alternately, Apple can allow other companies to offer the feature... for a price. This approach makes competitors' devices cost more, so they make money both on licensing fees and also because more people will buy iPhones when the price of alternatives is a little higher. At first Apple took the first approach, but now they are switching to the second. Apple has dozens of other user-interface patents, on various little "finishing touches" in the iPhone that make its user interface so nice (e.g. a refinement of pinch-and-zoom), but this patent is one of the most valuable.

Another example is Microsoft's patent on long filenames (that is, file names longer than 8 characters). Now Microsoft doesn't have a patent on the mere idea of long filenames; that would be too obvious and predates Microsoft itself. But Microsoft's first operating system, MS-DOS, only supported 8-character filenames with a 3-character extension (such as .txt, .doc or .exe) and no lowercase letters or spaces. Microsoft found a way to overcome this limitation, while maintaining compatibility with MS-DOS. So if you name your file "Super long name", MS-DOS will see a file called "SUPERL~1" while Windows sees the "real" file name. Microsoft has a patent on this technique in their "FAT16" and "FAT32" file systems. Since most removable media use the FAT32 file system, Microsoft can charge for the "priveledge" of supporting long filenames! So, for example, I used to have a DVD player with a USB port. You could plug in a USB stick into this DVD player and play MP3s or show pictures from the USB stick. But the filenames were all 8 characters or less! I guess the company that made the DVD player just saved a little money by not paying Microsoft for their patent. Or more likely I myself saved some money, as the DVD player was pretty inexpensive.

Why isn't this fair? It's not fair because the company probably cannot "innovate around" this problem. If they want to support USB sticks, they have to support FAT32 because everybody uses it. And if they want to support long filenames, there is no way to do that without dealing with Microsoft's patent*. So if a company wants their DVD player to support USB sticks, their choice is either to pay Microsoft (and raise the price of the DVD player by the licensing fee), or not to support long filenames (so the customer pays less, but wonders why the hell the his filenames are messed up.)

* Today I stumbled upon an interesting fact, though: the Samba people have actually innovated around this problem, although they had to break compatibility with MS-DOS to do it. Sometimes there are ways around these patents, but in principle it is possible to make patents that are inescapable--patents on features that can only be implemented one way.

For example, patents recently expired on the compression methods (to reduce file sizes) in the GIF image format and MP3 sound formats (both developed a little over 20 years ago, whereas patents in the U.S. last 20 years). These formats required a specific, patented algorithm, and the algorithm was not licensed for free. Consequently, if you had a way to make GIF files or MP3 files for free, it meant that either you pirated commercial software, or you used free software that used a patented technique illegally.

The GIF case especially angered a lot of software people. The GIF format was intended to be free for use by the people at CompuServe who developed it, and the developers of GIF didn't realize that they had chosen a patented compression technique. The patent owners remained silent for about 7 years, until the GIF format was well-entrenched and popular on the internet, then suddenly declared that everyone would have to pay license fees to them in order to use the format.

When this happened, some angry developers immediately began work on a new file format to replace GIF, called PNG, that did not use the patented technique. The PNG format has more features than GIF and employs new techniques to improve compression, but its core compression algorithm is slightly inferior.

So, I encourage everyone to be suspicious of the patent system, and especially to oppose software patents. G'day.

No comments: