A place to rant.

Tuesday, November 15, 2005

In defense of proprietary software

Last week, Free Software Foundation President Richard Stallman came to visit Brown University to give a talk about (you guessed it) free software. In it he outlined four freedoms with respect to software which he believes to be central for a just society. I won't detail them here (you can find them described by the GNU project), but I'll give a brief description of them:

Freedom 0: freedom to control one's own computer. One should be able to run any program which they legally obtained, for any purpose, whenever they want, however many times they want, etc.
Freedom 1: freedom to help oneself. One should be able to examine the source code to understand and modify it as necessary to make a program suit his needs.
Freedom 2: freedom to help one's friends. One should be able to distribue a program to friends who also could be served by it.
Freedom 3: freedom to help one's community. One should be able to distribute the modified program to help others.

Stallman claims that these freedoms are essential. Any software obeying them is called free; anything else is called proprietary. He argues that creating, distributing, and even using proprietary software is simply unethical.

I agree that these freedoms are Good Things. I think the world would be a better place if they were always provided. However, there are a lot of practical concerns that get in the way of things, and I'm not convinced that this is an ethical issue. Stallman argues that companies like Microsoft "oppress" their users by not providing these freedoms; while I might agree with that particular example, I don't think proprietary software in general is oppressive.

Here are two major problems with adopting the Free Software ideals: they're not economically sustainable, and they're impractical.

First, there's the question of economic incentives. Why would anybody produce software if they were not to get paid for it? More formally, if we consider the socially optimal amount of software produced, would that level be reached if people were not compensated for their work?

Well, would people be compensated for their work? Who would pay anybody to produce software which they could otherwise get for free? (Note that I'm well aware that free-as-in-speech software isn't by definition monetarily free, but I think that's a necessary condition, which I won't describe here.)

The model Stallman suggests is that a thousand people who want a piece of software get together to contribute $100 each toward the cause. They hire some programmers to create the software, and it gets done.

But he neglects the so-called "free rider" problem. Why would I, a member of this organization, contribute $100 knowing that if I simply chose not to, the project would still get done (and I'd still reap the benefits)? This is a known economic problem; this isn't just me being cynical.

It's possible that people would, in fact, be willing to pay for some software, because it's worth it to them to have it immediately and know that it gets done right. However, it's not clear that this would be the case for all the software that exists today. This problem may be solvable, but that Stallman failed to even address it really hurt the argument.

The other (related) problem with free software is its impracticality in some cases. Now, there are plenty of instances in which free software performs as well or better (in terms of quality as well as efficiency) than proprietary counterparts. Two prime examples are the Apache web server (hosting more than half the sites on the Internet), and the Mozilla Firefox browser. But there are many cases in which free software simply doesn't cut it.

Take the Java platform. There are currently free implementations for the Java 1.4 platform. But Java 1.5 has been out for over a year now. I understand that it's a huge change, and I don't criticize the developers of the free implementations for their efforts. But it's unacceptable for many businesses to use these free implementations because they'd be trading the great improvements of the latest platform for abstract ideals. For example, the 1.5 library contains immensely faster implementations of various collections and primitives in java.util.concurrent which can speed up programs by several times. A company which chose free software over the official Sun implementation would give up this and provide a product which is substantially lesser in quality than it could be. That's not good for anybody.

Now, before I close I want to make it clear that I actually support free software as an ideal. I run GNU/Linux myself, using almost exclusively free software. And I'm often annoyed by the restrictions of proprietary software. What I question is the moral imperative that the FSF seeks to impart, as well as whether such a model can be sustained on a large scale. I'd love to develop a way to make free and open source software a viable mainstream idea, but I think the FSF has yet to do so. I invite your comments.


  • At 11/18/2005 9:05 PM, Anonymous Seb said…

    Hey Dave--you requested a comment. This is, as you know, a topic I'm really interested in. Here's my take:

    (1) Stallman doesn't give a damn about practicality or economics because he believes it's an ethical issue--sort of moral duty. You're already leaping out into consequentialist ethics once you start talking about practicality. That said, he didn't really justify his ethics--he just asserted them. So the economic and practical considerations are, in my opinion, totally valid.

    (2) A lot of my research last summer and spring was on the problem of solving the free-rider problem for non-proprietary intellectual goods. I think there's a way to pull it off that I showed you last Spring.

    There are a couple issues I take with your analysis:

    First, I would say that the zero-cost, or gratis nature of free-as-in-freedom software is not intrinsic to the nature of non-proprietary software, but is a natural consequence of competition for "sales" and its essentially infinite supply. You deliberately didn't discuss this point, so I'm not sure you're position on it. But it's controversial: some economists say that in fact there is a limited supply of copies of non-proprietary intellectual goods so that means there isn't necessarily zero cost.

    Moreover, there is at least one point when supply is limited: when it's solely in the hands of its developer. They also have the benefit of being, for that one time period, monopolists who don't have to worry about others undercutting their prices (which is the case as soon as they make a single sale) and, as a result, slashing prices to zero.

    This costly-now/free-later mix situation is what causes the free rider problem you mention. There is only incentive for people to pay as much as it is worth it for them to have it now minus how much it is worth to have it tomorrow--which, as you say, isn't enough to fund socially optimal software.

    However, the way around it that I would recommend is one where the developer demands a particular amount of money to be raised before they release their good. If they can make this threat (the threat of witholding their product if they don't raise enough cash) credibly, then free-riding doesn't work, and customers might cough up their fair share.

    Can this threat be made credibly? Yes, if either (a) the developer has the option of going proprietary, which isn't the case for open source/free software, or (b) they do some funky things in their selling strategy whereby they actually reward buying early. This last part got pretty complicated in the game theory and all, but I'd be happy to talk about it with you some time.

    I have a regular pipe dream which is all about starting up an amazing company that uses a mechanism like this to funnel money into non-proprietary intellectual goods.

    (3) As far as practicality goes, it sounds like you're saying that one shouldn't commit to non-proprietary software because sometimes proprietary software will do a better job. Sure. That's all cost-benefit analysis. However, if there were a way of getting socially efficient free software production, then that would make it more likely for competitive, practical, and free software to really make it in the market.


Post a Comment

Links to this post:

Create a Link

<< Home