The act of writing software can be summarized as generating ideas and writing down these ideas in a language computers can understand and execute. Software programmers are in the business of writing ideas all day. This combined with the fact that the bar for ideas being patentable is very low means that programmers probably generate and write down multiple patentable ideas per day. From the get go they are inevitably setting up a huge patent minefield.<p>I don’t know if anyone has ever calculated the average density of patentable ideas in code, but if you consider, for example, that performing an online transaction with the last entered customer data (the infamous 1-Click patent) is patentable, I would very roughly estimate that there is a patentable idea every 20 to 50 lines of code.
As an example, the Linux kernel (just the very core of Linux) contains more that 10 millions lines of code. If you consider a complete Linux distribution (by adding the graphical user interface and a bunch of utilities) you get at least ten times that amount, that is more than 100 millions lines of code. Using the rough estimate above, we can calculate that there are more than 2 millions patentable ideas in a consumer operating system. That is an incredible amount of complexity. In fact, it is a testament to human ingenuity that we can (sometimes) get all this code to work together.<p>Now code is not used side by side like an infantry of little computer processes working in parallel to make computers or phones go. It is rather organised and packaged in a huge network of building blocks, a pyramid of hundreds of thousands of libraries, APIs or functions heavily inter-dependent on each other. What’s more, the building blocks are usually not all written by the same people or organisations and their consistent and stable behavior is critical for enabling compatibility (remember, often between millions of parts made by thousands of developers).<p>This hierarchical and networked architecture is inevitable and the best way to organise complex information, however the stability it requires at the bottom of the pyramid means that some building blocks cannot be changed once the pyramid is built. Someone claiming ownership of the shape of a bottom block after the pyramid is built, someone having the power to force a bottom block to be removed and replaced with a different shaped one, no matter how simple and obvious this bloc is, does not have power over just this block but over the whole structure above it and all the components that depend on it. This means patent holders have a disproportionately large amount of power when they target such a bloc. They know that changing it would require tearing down, redesigning and replacing often thousands of dependent projects and probably break compatibility for millions of users of these projects. It is usually simply not an option.