If there is no free lunch why should we have free software??

I have always been skeptical of open source software, if Microsoft and all of their highly paid programmers can’t get it right, how can a bunch of guys who work on projects for free in their spare time do any better? As a recent convert to Linux I now realize how wrong I was. In fact I now have absolutely no use for any Microsoft products.

As an economist I believe that there will always be a role for propriety software though. To see why I think it is useful to examine what proponents of free software are striving for. With that in mind I have pulled the definition of “free” software off of the Free Software Foundation website:

  • The freedom to run the program, for any purpose (freedom 0).

  • The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.

  • The freedom to redistribute copies so you can help your neighbor (freedom 2).

  • The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.

As you can see they are referring to free as in freedom to modify and redistribute rather than free as in price. However this implicitly means that the software will be available for free as even if a price is charged for the software, the person who buys it is free to give it to all his friends for free and they can give it to their friends and so on.

When I put my economist hat on (let’s be honest, I never take it off) I think that if all software was free the quality of software would suffer. What does a developer of free software get for the time he puts into writing a new piece of software? Not really much more than kudos from the community. So there is a big trade off here, with free software the people are working on software use it themselves so they are able to detect problems and add new features very easily, but at the same time if there is no financial reward from developing software then people have the incentive to put their effort elsewhere. This problem is particularly bad for software that is extremely complicated or requires a lot of time to develop. In this case we either get a software that is no where near as good as the proprietary version or the amount of time required to develop the software means progress is very slow.

As an example I use a mathematical program called Mathematica for a lot of my work and haven’t been able to find anything anywhere near as good that is “free”. I am also an avid gamer and have noticed that the standard of open source games is pretty terrible which makes sense given the amount of time required to develop a game.

So while I am huge fan of Linux and open source software , I think that aiming for all software to be free isn’t a good idea as there are certain cases where this provides the wrong incentives.

  • Matt Nolan

    Good call man, I completely agree.

  • Kimble

    It never will be free for the reasons you point out, but also because the hardware will never be free.

    People will always want to do things faster and better, and, as I see it, there is a symbiotic demand between hardware and software. Hardware design and manufacture isnt the sort of boutique industry that software design is. There will be real world competition and incentives to improve the hardware. If the hardware is there, people demand the software to make most use of it. If the software is there, people demand the hardware to run it.

  • Matt Nolan

    Dirty old complements aye. However, I don’t think that the fact hardware costs money would prevent software from being free.

    The more hardware costs, the lower the demand for software, and as a result a lower price will exist for software. As the price of software is lower software developers have less incentive to spend time on their products, and the quality of software falls. In this case, the quality of a substitute to free software falls, so the demand for free software will rise.

    If hardware was free, then demand for software would rise, leading a higher price for software. This leads to higher entry and better quality products.

  • agnitio

    I’ve had massive issues with graphics card drivers so I can see what you mean about hardware. However, I think that an interesting counter example is 64bit processors. Linux and open source seam to be miles ahead in development of 64bit native software which suggests that new hardware has come out and people have want to be able to utilize it so they have adapted or written their own software in order to do so

  • Falafulu Fisi

    As an example I use a mathematical program called Mathematica for a lot of my work and haven’t been able to find anything anywhere near as good that is “free”

    William, the best out there for numerical modeling is Matlab, particularly in application domain such as economics. Nothing can beat Matlab. It has a huge built-in library (no need to re-invent anything), plus a huge worldwide users . I used Mathematica when I was at varsity purely for symbolic calculations, ie, calculations that you require to solve an equation and the solution is a closed-form solution (another equation). I use Matlab mostly for proto-typing and testing my numerical model, then I code it in Java for deployment.

  • William Taylor

    Matlab is far from free and I did look at using it. I love mathematica because it is so good for symbolic stuff. My thesis supervisor used to use both matlab and mathematica but right before I started he convinced himself that anything he can do in matlab he can do in mathematica so I use mathematica for all my numerical stuff and haven’t had any issues with it. I also really like setting up all my numerical stuff in a good symbolic environment.

  • Kimble

    Matt if the hardware was free, there would be little innovation. If there is little innovation, the software will quickly hit its physical boundary. The marginal improvements of the software will be close enough to zero that no one would want to pay for it.

    With technology “stuck” at a constant level, the programming for that level would become easier and easier. “New” software will abound as small innovations are made, existing software is replicated, but without much obselesence of older software. Eventually free-ware would catch up to pay-ware in its sophistication.

    Without very strict IP protection people will eventually find the software sophistication level they are happy with and stop purchasing “new” software.

    In the short to medium run the relationship may be as you describe, with free hardware leading to a large increase in demand for software, and its price, but not in the long run.

  • Matt Nolan

    I agree that higher prices lead to more innovation for hardware, which will in turn increase demand for more technical hardware. However, I was pointing out that this was not the only relationship between software and hardware.

    You said “It never will be free for the reasons you point out, but also because the hardware will never be free.”

    However, hypothetically, if hardware was free demand for software would be greater, leading to higher prices. I don’t think software development would stop if no new hardware came out, it would just be more costly to make a better product, reinforcing the fact that a price must exist for the product.

    The fundamental difference in what we believe depends on how we view the evolution of software. I think that improving software has a long-run increasing marginal cost.

    I do completely agree that hardware innovation makes software development more profitable, but that comes from the fact they are complementary goods, and improving the quality of one good increases the value of the other good. However, if hardware was hypothetically free I don’t think it would lead to software becoming free.

  • I think you’ll find the open source developers are more often than not financially compensated – either by their employer or as implementation consultants (service). Plus a programmer’s reputation and experience is also tied to future earning potential.

    They also gain through positive externalities that the open source community as a whole produces. The entire internet revolution wouldn’t have occured without a multitude of open source projects that are intertwined, for example, Linux, OpenBSD (and OpenSSH), iptables, sendmail were all used by early ISPs that spurned larger and larger ISPs that in turn spurned the development of very large internet hardware manufacturers.

  • Kimble

    The entire internet revolution wouldn’t have occured without… AL GORE.

  • Matt Nolan

    Hahaha, good old Al Gore, he knows how to talk some crack.

  • A debate is raging on the ‘net these days as to whether all software, music and digital content should be free.


  • While she may insist…