Friday, April 14, 2006

Software Patent Myths

I'm been collecting some of the more amusing myths about software patents. Here is what I have so far, with a short argumentation against each one.
  • The patent system exists for the benefit of society.

  • The "broader benefit of society" is sometimes held up as the basis for the patent system, but in reality patent offices and patent law exist for the benefits of their "clients", which means patent owners.

  • Patents are good for innovation in any domain.

  • Every domain has different needs. Would patents help artists, composers, filmmakers, writers, cooks, atheletes? Patents are not a universal panacea. Before we can contemplate their introduction into a domain we need real proof that they are needed to solve serious problems. It's not enough to say, "we're creating a new kind of property, hurrah!"

  • We can measure innovation by counting the number of patents.

  • This is confusion of correlation and causality. In the software industry, the more patents a firm files, the less innovation it does.

  • If you are against software patents, you are against all patents.

  • Just as patents are not a universal panacea, they are not a universal plague. In some domains they can work very well. The term "the anti-patent crowd" is a slander.

  • If you are against software patents, you are against all intellectual property.

  • Yes, naturally. Except that copyrights and trademarks are still "intellectual property", last time I checked, and I've not seen anyone sane take an anti-copyright or anti-trademark stance. Even the GPL is fully based on copyright. Let's get this straight: anti-software patent means literally, "anti-software patent", or alternatively, "pro-copyright". OK, we have that clear.

  • Software is an industrial material like steel or plastic.

  • The day I can get abundant free steel or plastic from total strangers, please tell me and order me a few thousand tonnes. Software is a cultural product, not an industrial product. Software factories work about as well as art factories.

  • Software innovators need patents to get investment and to compete.

  • You are reading this thanks to an Internet built by people who largely had no investment, let alone software patents. Software innovation needs only cheaper communications, good open standards, and larger markets.

  • Software patents are good for large software firms.

  • Big Software has been conned into thinking it wants software patents. They are starting to regret this. The only people who really think software patents are a good idea are NPEs (non-producing entities) and their friends. And NPEs mostly use their patents to attack the Big Software firms that lobbied for them in the first place. Nice irony, unless you own MSFT stock.

  • A portfolio of software patents is a good defensive measure.

  • No, a portfolio of software patents is a good offensive measure. Only an NPE can attack using patents without risk of counter attack. Software patent portfolios are a waste of money for software firms, though they may look good in the hallway.

  • Copyright is not sufficient protection for software innovators.

  • The software business has never needed protectionism, it needs lower barriers and cheaper communications. Copyright appears to have worked very well so far. The only serious problem with copyright that I'm aware of is that it does not create billable hours for IP specialists.

  • Software innovators can choose between copyright and software patents.

  • Actual quote from the EPO. Nice theory, except that software patents undercut copyright and render it useless.

  • It is the high cost of software patents that is a problem.

  • "It is the high cost of handguns that prevents every household from owning one and thus protecting themselves". Yes, I can see the logic in this statement. Sir, I have this bridge that is for sale, can I interest you?

  • Software patents should be easier to enforce.

  • "Handguns should be easier to use, then we would see safer streets". The idea of cheaper offensive weapons is not very reassuring. Unless you are one of the NPEs that have a nice patent portfolio.

  • The problem is low-quality patents, not software patents as such.

  • The only good software patent is a dead software patent. Even the most original and sophisticated software patent can throttle an entire industry if it claims a fundamental idea.

  • With better peer review and prior art searches, we could guarantee good software patents.

  • If we can't trust the patent offices to grant only high-quality patents, how can we trust them to set-up a real peer-review system? And since software patents are mostly obfusticated, how can prior-art searches help? What happens to the art that stretches from the 1960's to 2000, and never got onto the Internet? Big Software is scared their expensive patent portfolios are getting devalued by all those junk patents, and this myth is an attempt to delay real reform of the patent system. I say, hunt down all the software patents, line them up, and shoot them.

Thursday, April 13, 2006

Unpatent 1 - A Method for Software Optimisation

Description of the Invention
This is a method for improving the performance of software. We know that when a program runs, some parts of the code are used more often than others. We call these the hotspots in the code. Experienced programmers try to find, and eliminate these hotspots, because they cause the computer to crash. As the code in the hotspots gets run over and over, the transit of increasing numbers of electrons through those parts of the CPU's memory will encounter molecular resistance, leading to gradual warming of the affected memory locations. PC makers have installed more powerful fans to allow inefficient languages, like .NET and Java, which are full of hotspots, to run better. But even an efficient language like Algol-68 will have some hotspots, which will eventually get very hot. Following the principle of thermodynamic expansion, the memory containing the code hotspots will slowly expand, and the asymmetric expansion will eventually cause the memory chips to come loose in their sockets. If this process goes too far, the CPU will run out of memory, and crash. The key to finding hotspots is to use a code thermometer, which is an instrument that regularly scans the CPU's memory and measures the temperature of each memory zone, with respect to the ambient temperature of the operating system. When the code thermometer detects a zone of increased temperature, it invokes a CPU memory remapper subroutine that remaps the affected zone to an unused memory location.
1. A method for invoking a subroutine.

Thursday, April 06, 2006

Rabbits and Foxes

A couple of weeks ago, at a very large event in Brussels, I sat and watched several government officials, from the US and EU, debate innovation policy. This sounds very grand, but what they actually said, to paraphrase, was "we want to stimulate innovation by spending money and protecting intellectual property".

At an FFII meeting last week, I realised what governments have been thinking. Patents = innovation. This seems obvous but it took me a while to grasp. Governments actually believe that more patents means more innovation. The number of patents has grown tremendously over the last decades. The amount of innovation also appears to have grown tremendously over the last decades. But, I wondered, what is the cause, what is the effect, and what is our perception of the two? Let me tell you what I think.

First, I think innovation has nothing at all to do with how much money is spent or how well IP is protected. Most innovation comes from the simple economic principle of specialisation. That is, as Adam Smith pointed out a long time ago, the basis of all wealth. We specialise, we compete, and we trade. And we innovate in order to do these better.

How can you pay people to specialise, compete, or trade? The concept is ridiculous, and indeed, in my twenty-five years of writing software for money, I've not once seen research grants actually prodding people to do anything except get better at asking for research grants. There is competition for grants, remember.

Paying grants and subsidies for research is like feeding animals. Yes, you can raise a huge herd of tame sheep like that, but the real action happens in the wild, and you cannot feed wild animals without turning them stupid, fat, and lazy.

I'm not suggesting that our (cough cough) government-funded researchers are stupid, fat, or lazy, but... well... it's all relative.

What government can do to promote innovation is to lower the cost of communications, to increase the size of the market, lower taxes, and remove barriers to competition. Then, I believe, you actually have to tie people down and hack their arms off if you want to prevent innovation. And no, I'm definitely not promoting arm-hacking. It is a figure of speech.

So, if patents (software patents in specific but all patents in general) do not promote innovation, what do they do?

As far as I can see, the relationship between innovation and patents would apply to all industries, but software is special for a couple of Very Big Reasons. First the rate of innovation in software is several orders of magnitude greater than in any other industry, because it is a self-hosting technology. Improvements in normal industrial products do not automatically improve the processes that produced them. But if I build a faster compiler, this lets me compile my compiler faster. Secondly. software is the basis for our entire modern service economy. We are all software users and the rate at which we depend on a flourishing and open software industry is increasing all the time.

Any slowdown in the rate of software innovation is a serious threat to our modern economy. So, when I hear, for instance, a large software firm admit that software patents make it impossible to produce new standards today, this does two things. One, it scares me. Two, it tells me that software patents are having a real effect on innovation.

I'll sketch what I believe are the eight stages of the software innovation and patent boom and bust cycle.
  • First stage: software comes into its own as a domain of technology. Up to about 1980, software was still seen as a branch of mathematics. By 1985 this was no longer the case.

  • Second stage: large software manufacturers convince the patent offices to change the definition of "subject matter" so that software becomes patentable. In the USA this happened in the early 1990's. In the EU this happened informally, through half-licit legal interpretation.

  • Third stage: large patent holders push for software patents to be granted more easily, and patent offices start to grant patents on non-software methods, mainly business methods. In the USA this happened from 1999 onwards, and in the EU more or less in parallel with software patents. Governments, seeing the boom in patents, rub their hands with glee, thinking this is the precursor to a new golden age.

  • Fourth stage: specialist patent firms understand that soft patents (software and method patents) are an excellent opportunity, and start to invest massively in these patents. This happened in the USA and EU more or less at the same time, from 2000 onwards. Again, the growth in patents impresses everyone except the engineers and specialists who are actually involved in innovation, who start to get very concerned.

  • Fifth stage: patent holders, who represent a new and wealthy propertied class, lobby for better enforcement of their patents, no matter how trivial or obvious, once granted by the patent offices. The enforcement happens through the courts. In the EU, patent owners lobby for EU-wide standards on enforcement. In the USA, national enforcement was never an issue. In the EU it is the burning issue today.

  • Sixth stage: software patents start to attack the process of innovation and people panic. Discussion starts about whether this was all such a good idea, and how to raise the quality of software patents. The USA has started to enter this debate, and the EU has been wallowing in it, largely thanks to the FFII, for years.

  • Seventh stage: legislators understand, too late, that there is no way to separate the bad software patents from the good. Any filter or gate or barrier that lets through good software patents (if such animals exist), also lets through an infinite horde of bad ones. Industry starts to clamour for a general ban on software patents. In the USA and EU, we are several years away from this.

  • Eighth stage: legislators are faced with the task of undoing everything that has happened since stage two. I don't want to speculate on how this can even be done. Can software patents, once granted, be revoked without creating incredible outcry?

In the meantime, we have a period of at least ten years in which innovation in the software world is effectively dead. Programmers will, of course, continue to program. But the open market will die. Small numbers of monopolies will replace the current software industry. Open source may well get patent exemption, but this would be as good as a declaration of war on small commercial software firms.

Overall, it is a tragic and bleak picture of the future.

I will now try to give you an analogy for this scenario. In the 1980's, scientists studying the population curves of snowshoe rabbits and foxes (ok, it was lynxes but no-one except Canadians and Scots knows what lynxes are) in the Canadian north, found the populations went up and down in cycles. Basically, rabbits breed faster than foxes, so a rabbit population can grow in one season much faster than the fox population, stopping only when they reach the limit their grassy ecosystem can support. The rabbits have a great first couple of years, but then the fox population catches up, and suddenly there are too many predators for the rabbits. The rabbit population crashes, and a little later, so do the foxes.

What I'm saying is that innovation is rabbits, and soft patents is foxes. Software patents eat innovations. They hunt them down, jump on them, bite through their necks, rip their bodies to shreds, and feed them to their young. It's really like that, but with more violence.

Now, the government official responsible for Rabbit Production, who comes for a couple of months to monitor the rabbit population, sees that the rabbits are breeding wonderfully (he's obviously not an Australian), and the foxes too. He sees that the more foxes, the more rabbits! It's amazing! He goes off and starts a fox farm, releasing even more foxes into the wild, because he's jumped to the conclusion that rabbits generate spontaneously from foxes. Correlation and causation are two entirely different things, but the rabbit man does not understand this.

And our large software firms, who are buying patents as fast as they can. What are they? Well, imagine very large, very juicy, and very, very stupid rabbits, who have found nothing better to do than help the government official breed foxes...

You can hardly be angry with Big Software. The bigger they come, the harder they fall.

What's a blog, Daddy?

I hate the term "blog", it reminds me of the old Scottish term, "bog", which means toilet. The old Scots built their towns and villages on bogs. This is why I left Scotland as soon as they invented public transport (around 1980) and went to England, where I studied ye Olde Arte of Computering and Statistical Calculationes. I graduated, when I finally understood that computers were easy, so long as you had natural talent, twenty hours a day, infinite coffee, and no social life. To forget my sorrows I joined the Belgian foreign legion, then set-up home in Antwerp, city of vice and fritjes. I got a good job, a house, girlfriend, car, and cats, in that order. The cats lasted longest - 17 years before the last one died. I then moved to Brussels, city of cafes, and built a company, iMatix. One day, after the dot-com crash passed us by like a distant motorway accident, I found myself fighting software patents, first philosophically ("that's not credible!"), then in writing (see, then in person (debates in the EU Parliament), and finally with committment (I became president of the FFII).

Let me describe the FFII. You take a big bag, you fill it with ten cats. These are the FFII activists. Nice, friendly, but they have claws and killer instincts. Now you put a dog in the bag. This represents the professional lobbyist. Smelly, subservient, and willing to do anything for a piece of meat. Close bag, listen to the noise, open bag. That is what the FFII does to the normal cosy process in which big business defines laws, lobbyists explain these to politicians, who then wrangle the laws into existence.

There is something about working with brilliant individuals who have a total, unshakeable, systematic conviction that they are on the side of right. You can't buy them, you can't bully them. Every threat just makes them more stubborn. Every underhand manoever makes them more angry. For every one that burns out, five more appear, angrier and better informed than ever.

Anyhow, this is my blog. I can't promise it will only be about software patents. My life is fairly complex and I might sometimes have to explain stuff about my daughter (two and a half, beautiful, and clever), my business (we write software), or other things that happen.

It all comes together, in one way or another. We fight against software patents because they are bad for business and we care about business because building a little wealth, through hard work and investment, is the only way to look after a family.

So, this is my blog. We'll see how it goes.