Sunday, October 22, 2006

Free software

As I'm considering what I'm going to do with the second half of my life (see previous post), I thought it might be useful to review what I'm interested it. My fascination with free software such as Linux probably marks me most as a nerd. But what I find most fascinating about it isn't the obvious. I'm drawn to the ideas, such as that sharing makes something worth more or that real economic value doesn't have to be derived from scarcity.

Free software is a bit like science. Scientists publish. The data is then ripped apart by other scientists. What holds up to scrutiny becomes the foundation for the next discovery. That process is the way, as Isaac Newton put it, that scientists "stand on the shoulders of giants." Few would argue that science lacks value, or that it would be worth more if kept secret.

Software used to work more like science, back when the commercial value was thought to lay purely with the hardware. Software (in source code form, so that you could see how it worked) was freely distributed and shared. It was when the tide was turning toward closed, commercial software that Richard Stallman, a programmer at MIT, formed the Free Software Foundation. His aim was to create everything you need to use computers -- the operating system, the applications, etc. -- in a free and open way. His genius was to use copyright law to ensure that the software stays free. The FSF's General Public License gives you the right to use the software (for any purpose), share it without anyone, view the source code and modify it. The catch is that you can't remove any of those rights. If you modify the software and distribute it, you have to pass on the same rights. That restriction is enforced by copyright law, which gives the creator of the software the ability to dictate the terms of use. In this case, the terms are the opposite of the usual restrictions ("all rights reserved"), hence the GPL's nickname: copyleft. There are several other free software licenses, but the basic concept is usually the same.

One point of confusion comes from the limitations of the English language. One of the rights isn't that the software should be free, as in no cost. Free software means freedom. You're perfectly entitled to sell your modifications, and people do, but the Internet and its easy copying has led nowadays to most free software developers making their money by selling their skills (e.g., getting a job with a company that uses free software) or by offering technical support (such as Red Hat Inc. or Canonical Ltd.). What's interesting about free software is that the economic incentives, plus "copyleft," ensure that the general level of quality rises. If you're looking to sell your skills, you're going to want to make your work (free for anyone to see) as high quality as possible. If you are selling technical support, you better make your software as trouble-free as possible, to lower your costs. And, in both cases, you're obligated to share your work with everyone else. But what I found most interesting is that much of the work, maybe the majority, is done by people who get no economic benefit whatsoever. They do it because they find the work engaging and they believe in freedom.

Whatever the motivation, the system works, and has generated billions of dollars in market value. Every time you use Google or Amazon, you're using free software. The majority of the Internet is built with it. As thousands of developer tweak, twiddle and fix, that work goes back to the community. Everyone benefits.

As an end user, however, benefiting used to be hard. I remember starting with GNU/Linux, a combination of the Free Software Foundation's applications and a free operating system, back in 1993. Hardware support was limited and it was a real effort to learn. Nowadays, it is so easy it's almost boring. I currently use Ubuntu, one of many "distributions" of GNU/Linux, which handle the work of combining the applications and the operating system into a usable package. A new version is due out this week (Oct. 26). You can try it before installing it by running the software from a CD. Wireless networking can still a be bit tricky, but almost anything else I throw at it (digital cameras, iPods, etc.) is handled with aplomb. Today, you don't even need to use a free operating system to try free software: just try Firefox.

I'm not against commercial software. I use Windows for 10 hours a day. It's fine. But I do believe free software will win out in the end, just as open science won out over alchemy, which was also based on secrecy. What holds back most people from using free software is the subject of another post, but basically it's responsibility. People don't want to take it. Using free software when no one else you know is means taking responsibility for your own computer. People would much rather just let Microsoft (or whoever) handle it. It gives them someone to blame. It's why my children's schools all sign expensive contracts with Microsoft Solution Providers. They don't want the responsibility. I can understand that and feel no compunction to "evangelize."

But personally, 25 years of using computers is enough to demonstrate that commercial companies don't give a fig about me. I'm only valuable to them if I keep on buying. Putting important information in their hands -- such as your photos, important documents and music -- is nuts. I've pumped out a lot of information into proprietary applications that is no longer accessible. I've paid a lot of money just to keep what I have. I'm motivated to take responsibility, and to help our where I can. I report bugs, test new software and helping others when asked. It's the least I can do, and in the meantime I get to watch a revolution unfold.