Software patent rant Mon, Jan 1. 2007
Here's a rant I made some time back about software patents. It's still true:
You think I'm about to start talking about software patents and how they retard the industry. But I think that's been
amply covered. Or I could talk about how they are basically patenting math, but that's been amply covered also. Instead,
I will talk about how they don't even work like patents.
But, first, I'll talk about real patents.
In the real world, companies come up with a patented process that's better than other things. Let's say a company makes
rubber stamps. You know, those things that say 'VOID' or 'Approved' or you can get made up with your name and address.
You press them to an inkpad and then onto paper. Their R&D department, working around the clock, invents a new way to
attach the stamp to the faux-wooden handle.
This new method will cost $200,000 to change the machines, but save the company 8 cents a stamp, and, as the stamps only
cost 43 cents in the first place, that's a pretty good deal. So, they order the switchover, and they have a choice to
make: They can either patent the technology, or they can keep it as a trade secret. That choise is really not relevant
here, so we will just assume they patent it.
When you patent something, of course, you completely reveal how it works. Any company can go look at it. But that's
okay, because you want them to. Because, you see, they can't use it for 20 years, until the patent expires, without
paying you however much you want.
Because you can charge whatever you want, you can do something like charge 50 cents a stamp, and make the process
completely unusable by anyone but you. Because no one would pay 50 cents to save 8. OTOH, maybe you want to charge 5
cents, and make money that way. Then they have a choice to make: Use your patent, and save money, paying you some, or
not use it.
This is further complicated by the fact that anyone who reads your patent can improve it and patent it! And you have to
license it from them to use the improvements. Or they could trade off with you, you get to use theirs if they can use
yours, because they can't use theirs without licensing your base patent anyway. There are whole industries in gigantic
patent-sharing rings, which causes a barrier to competitors entering the market, but that's not important in this
discussion.
Okay, you follow all that? It's vitally important to understand how patents work in the real world. It's a rational
decision by companies to use a discovered improvement or not.
Now, why on earth did I keep talking about 'The Real World' in all that? Because that's not how software patents work: Let's postulate that software is like a machine. It's not, really, but let's pretend. So, there's a program being written. Let's call it...4D ModelMaker and hope that's not actually a real program. This program lets you make a 3D model and animate it. Now, all programs need file formats. So in addition to a few standard ones we can export to, we need to come up with our own. It's called '4MM'. Now, this file format is complicated, and we don't like it. So we wonder if anyone has come up with an easy way to save vector 4D information, which is what we basically have. So we google it, and, sure enough, some professor at Harvard came up with a great method. It's half the size of ours, it's faster to read, and there's even a library written to decode it. So, then we notice it's patented. We're in the same boat boat as other rubber stamp makers in theory, right? We have something better staring us in the face as a patent, and we have a choice. And this is where software 'patents' break down, because you know what happens every single time? We chooses to use the unpatented method. Every single time. Why? Because, frankly, we don't care that files are twice as big, and more complicated. Neither do you! No one cares! No programmer ever chooses to use a patented process and pay royalties. None at all. It's not worth it. It takes an hour to write it differently. It takes ten more CPU cycles. It's the equivalent of patenting 'placing the doorbell four inches from the door'...programmers just move it an inch. In fact, I had to work hard to come up with an example of a situtation where there's even a incentive to use a patent. And now you're thinking...so, who cares about them? If no programmer will use them, why do programmers dislike them? Why does anyone even bother getting them?
Well, first of all, there are the really stupid patents that are obvious and not workaroundable. For example, amazon patented one-click shopping. They didn't patent a method to do that, despite, in theory, all patents being on 'methods', they just patented it. The 'method' is that you're doing the thing. There's no work around. Or Eolas, which has patented 'loading different modules inside a program based on the loaded file' or something equally absurd. But that's not the only stuff that pisses programmers off. That sort of stuff could actually be handled via prior art, if the patent office was on top of things. Or 'obviousness'. So what pisses programmers off? What are called 'submarine patents'. Remember how I said programmers would never use a patented method when they had an unpatented one. Well, I lied. They just don't knowingly do that. You can take my example from the last page, run it back in time 20 years, and you have Compuserve looking for a file format for both Macs and PCs to use. You young-uns don't remember those days, but, I assure you, Macs and PC used to not play well together at all. So, anyway, modems were 300 baud. Compuserve wanted to give out images, and wanted to make their own file format, because the existing ones sucked. So they wrote one, called 'GIF'. It was a great format for its day. It had anywhere from 256 colors down to 2. (This was in the days where Macs had four colors: White, black, gray, and lighter gray.) And, to top it off, it was compressed, which was a big advantage, as it could be transfered at twice or even three times the speed. It's a smash hit in 1987. Fast forward to 1995, and the Internet is now using it. Everyone's using GIF, because Compuserve said we all could. Oh, crap. It's patented by Unisys. A submarine patent that's been around for about 14 years. Specifically, the compression used was LZW compression, and that's patented. (Although, oddly, the decompression is not.) So why did Compuserve use a patented compression? Because they didn't know it was patented. Well, Unisys started suing everyone in sight. An attempt was made to a switch to another format, PNG, but it didn't take incredibly well, mainly due to footdragging by MS. Luckily, the patent expired before much harm was done, although Unisys made a boatload of money because of a patent it had never done anything with.
Don't think that's a unique situation. MP3s, those things you're listening to right now are patented, and it was discovered after everyone was using them. There are unpatented alternatives, but, like PNGs, the installed base is so big, and there are so many MP3s already, they will probably still be around until we stop using lossy compression. (And MP3s have the added issue of hardware that supports them and only them.) So, discounting all dumb-ass patents that shouldn't have been granted, like amazon's one-click, what do we see? We don't see an industry that sits down and chooses to use a patented method because it's better. Because, in software 'better' doesn't mean anything. If two methods give the same result, it doesn't really matter if one is slightly bigger or slower or results in more work. The differences are so minute it doesn't save anyone anything. In other words, software patents are like if someone patents a chair that saves us .04 seconds every time we sit down. No chair manufacturer is going to care about that, no chair purchaser is going to care about that. No one's going to spend the money, so software patents are inherently unuseful for their purported purpose. The only thing they are useful for is hoping someone, later, will infringe them, and start to rely on them. Once they rely on them, then you can go hit them up for money. An addition: Reading this, later, I realize there's another time you can use patents to your advantage: If you're got a software monopoly and end users will use your patented file formats without thinking. Note this business plan usually requires others to independently reinvent them. The less innovative the patent, the better it is. (Remember, you've only got 20 years. You want people to become dependent on it as fast as possible.) So we've got those patents, hoping someone else reinvents them. And we've got absurdly broad patents that are akin to 'powering a vehicle to move people via internal combustion' that patents all cars. And we've got companies handing out software that writes patented-by-them file formats, locking away people's data so they can't get at it using any other program. Now, there are companies that patent software that don't operate with the intent of doing this. They're doing it to fight back in case they get sued for patent infringement. But the need for self-defense is troubling in and of itself. And there you go. That's it. That's all there are. Every software patent is one of those, or, alternately, completely meaningless and never used by anyone but the inventor. (And no one cares about those software patents.) Software patents aren't 'real' patents at all, they are fundamentally different than every other kind of patent, because the processes they protect are not worth any real value, and only get used because people are not aware of your patent. (Either the end user or other companies.) Unlike every other industry with patents. Or they are overly broad, which also sometimes happens in other industries, but with software patents it appears you can put 'over the internet' or 'with a computer' at the end of any process humanity has done since the beginning of time and suddenly it's a novel idea worthy of a patent. Software patents exist solely because certain companies think they are a good idea, and half the time said companies aren't in the software business at all. Real software companies, and independent programmers, know they are a nightmare. But I think a lot of people are having troubling explaining why software patents don't work, and need to grasp the concept that it's because they don't work like real patents.
Additional links: Coding Horror: The Coming Software Patent Apocalypse
Now, why on earth did I keep talking about 'The Real World' in all that? Because that's not how software patents work: Let's postulate that software is like a machine. It's not, really, but let's pretend. So, there's a program being written. Let's call it...4D ModelMaker and hope that's not actually a real program. This program lets you make a 3D model and animate it. Now, all programs need file formats. So in addition to a few standard ones we can export to, we need to come up with our own. It's called '4MM'. Now, this file format is complicated, and we don't like it. So we wonder if anyone has come up with an easy way to save vector 4D information, which is what we basically have. So we google it, and, sure enough, some professor at Harvard came up with a great method. It's half the size of ours, it's faster to read, and there's even a library written to decode it. So, then we notice it's patented. We're in the same boat boat as other rubber stamp makers in theory, right? We have something better staring us in the face as a patent, and we have a choice. And this is where software 'patents' break down, because you know what happens every single time? We chooses to use the unpatented method. Every single time. Why? Because, frankly, we don't care that files are twice as big, and more complicated. Neither do you! No one cares! No programmer ever chooses to use a patented process and pay royalties. None at all. It's not worth it. It takes an hour to write it differently. It takes ten more CPU cycles. It's the equivalent of patenting 'placing the doorbell four inches from the door'...programmers just move it an inch. In fact, I had to work hard to come up with an example of a situtation where there's even a incentive to use a patent. And now you're thinking...so, who cares about them? If no programmer will use them, why do programmers dislike them? Why does anyone even bother getting them?
Well, first of all, there are the really stupid patents that are obvious and not workaroundable. For example, amazon patented one-click shopping. They didn't patent a method to do that, despite, in theory, all patents being on 'methods', they just patented it. The 'method' is that you're doing the thing. There's no work around. Or Eolas, which has patented 'loading different modules inside a program based on the loaded file' or something equally absurd. But that's not the only stuff that pisses programmers off. That sort of stuff could actually be handled via prior art, if the patent office was on top of things. Or 'obviousness'. So what pisses programmers off? What are called 'submarine patents'. Remember how I said programmers would never use a patented method when they had an unpatented one. Well, I lied. They just don't knowingly do that. You can take my example from the last page, run it back in time 20 years, and you have Compuserve looking for a file format for both Macs and PCs to use. You young-uns don't remember those days, but, I assure you, Macs and PC used to not play well together at all. So, anyway, modems were 300 baud. Compuserve wanted to give out images, and wanted to make their own file format, because the existing ones sucked. So they wrote one, called 'GIF'. It was a great format for its day. It had anywhere from 256 colors down to 2. (This was in the days where Macs had four colors: White, black, gray, and lighter gray.) And, to top it off, it was compressed, which was a big advantage, as it could be transfered at twice or even three times the speed. It's a smash hit in 1987. Fast forward to 1995, and the Internet is now using it. Everyone's using GIF, because Compuserve said we all could. Oh, crap. It's patented by Unisys. A submarine patent that's been around for about 14 years. Specifically, the compression used was LZW compression, and that's patented. (Although, oddly, the decompression is not.) So why did Compuserve use a patented compression? Because they didn't know it was patented. Well, Unisys started suing everyone in sight. An attempt was made to a switch to another format, PNG, but it didn't take incredibly well, mainly due to footdragging by MS. Luckily, the patent expired before much harm was done, although Unisys made a boatload of money because of a patent it had never done anything with.
Don't think that's a unique situation. MP3s, those things you're listening to right now are patented, and it was discovered after everyone was using them. There are unpatented alternatives, but, like PNGs, the installed base is so big, and there are so many MP3s already, they will probably still be around until we stop using lossy compression. (And MP3s have the added issue of hardware that supports them and only them.) So, discounting all dumb-ass patents that shouldn't have been granted, like amazon's one-click, what do we see? We don't see an industry that sits down and chooses to use a patented method because it's better. Because, in software 'better' doesn't mean anything. If two methods give the same result, it doesn't really matter if one is slightly bigger or slower or results in more work. The differences are so minute it doesn't save anyone anything. In other words, software patents are like if someone patents a chair that saves us .04 seconds every time we sit down. No chair manufacturer is going to care about that, no chair purchaser is going to care about that. No one's going to spend the money, so software patents are inherently unuseful for their purported purpose. The only thing they are useful for is hoping someone, later, will infringe them, and start to rely on them. Once they rely on them, then you can go hit them up for money. An addition: Reading this, later, I realize there's another time you can use patents to your advantage: If you're got a software monopoly and end users will use your patented file formats without thinking. Note this business plan usually requires others to independently reinvent them. The less innovative the patent, the better it is. (Remember, you've only got 20 years. You want people to become dependent on it as fast as possible.) So we've got those patents, hoping someone else reinvents them. And we've got absurdly broad patents that are akin to 'powering a vehicle to move people via internal combustion' that patents all cars. And we've got companies handing out software that writes patented-by-them file formats, locking away people's data so they can't get at it using any other program. Now, there are companies that patent software that don't operate with the intent of doing this. They're doing it to fight back in case they get sued for patent infringement. But the need for self-defense is troubling in and of itself. And there you go. That's it. That's all there are. Every software patent is one of those, or, alternately, completely meaningless and never used by anyone but the inventor. (And no one cares about those software patents.) Software patents aren't 'real' patents at all, they are fundamentally different than every other kind of patent, because the processes they protect are not worth any real value, and only get used because people are not aware of your patent. (Either the end user or other companies.) Unlike every other industry with patents. Or they are overly broad, which also sometimes happens in other industries, but with software patents it appears you can put 'over the internet' or 'with a computer' at the end of any process humanity has done since the beginning of time and suddenly it's a novel idea worthy of a patent. Software patents exist solely because certain companies think they are a good idea, and half the time said companies aren't in the software business at all. Real software companies, and independent programmers, know they are a nightmare. But I think a lot of people are having troubling explaining why software patents don't work, and need to grasp the concept that it's because they don't work like real patents.
Additional links: Coding Horror: The Coming Software Patent Apocalypse
Trackbacks
Trackback specific URI for this entry
No Trackbacks