Free Software is Nuts
March 22, 2007
I attended a talk on free software by Richard Stallman. There are a number of obvious problems with the idea; obvious because they are similar to communism (the theory, not the botched implementations). Communes failed because it believed people are sweet, cooperative egalitarians. Capitalism works because it knows people are greedy, back stabbing scum determined to crush others. Capitalism, with sufficient regulation to curb excesses and maintain competitive markets, works because it somehow manages to squeeze out common goods despite our baser selfish impulses.
Stallman described a scenario where 1000 people might want some specialized software. He suggests they form an association and collect $100 each in dues to hire a developer (only $100K?) to build their software, which I assume would now be available for free. First, there’s the free rider problem, where some people choose not chip in $100 because they can just pick up the software for free after it is written. The only way to stop free riders is to charge for the software and prevent copying. Second, his example is unrealistically small: most popular software will require 10-100 programmer-years, which makes it far more difficult to organize an association. At this scale the association is a software company. Then there’s the issue of continual maintanence: you can’t hire a new dev for every bug; instead, the original devs are the only one that will understand the code and requirements enough to quickly fix bugs and add features. With these issues in mind, the current capitalist system is an inversion of the same idea. Someone believes he can find 1000 customers willing to pay $100 for some specialized software. Now customers can buy the software without having to organize themselves into a collective.
Stallman is rightly concerned about the monopoly power that comes from owning the closed-source platform. When you pick a platform (Windows vs. Solaris, Oracle vs. IBM, C# vs. Java) you are choosing a monopoly to control you. Once you’ve chosen a platform, everything you build depends on that platform. If Oracle raises prices, you have to pay or rewrite your system (which is far more expensive). The solution to this problem is 1) force companies to adhere to standards and 2) write portable software, as best you can. If my software can run equally well on Windows or Solaris, I can force them to lower prices by threatening to switch platforms. This may require some help from the government to prevent collusion and pressure companies to adopt standards.
I’m curious how the concept of free software applies when software is delivered as a service over the web. For example, I don’t have the source code to Google’s Spreadsheet program. Therefore, I can’t fix it or modify it to suit my needs, nor can I trust it. Even if Google released the software, it’s useless without understanding the execution environment in their giant data centers. More importantly, I can’t duplicate their data centers, so I’m still bound to their service. If more software moves to the web, how does the free software movement deal with this? There’s really no difference between software loaded on my machine vs. that running elsewhere. A little searching found some comments from free software advocates that said they don’t mind because the software isn’t loaded on their machine. That’s short-sighted.
Overall I found Stallman’s talk to be messianic and insane. While I acknowledge there are some problems with proprietary software, I think most issues can be resolved within the capitalist framework that’s worked so well for now. He may have a point on software patents, but I haven’t thought about it enough. But the system he imagines would work – software communes – would never produce the mountains of boring, yet vital software that powers our economy.