I've spoken and written enough about free software for audiences unfamiliar with the concept that I've probably heard and answered this question at least 1000 times. The stock answer goes like this:
Most software isn't the shrink-wrapped, off-the-shelf stuff sold at your local computer retailer, but custom programs written (or highly customized) for commercial users. Think of software as a service, not a product, and you will see how it is easy to make a living writing software even if underlying programs like operating systems and middleware are developed by programing cooperatives and given away, free of charge.
Then we go on to talk about how so-and-so makes a good living doing custom Apache installations or setting up ecommerce Web sites based on free software. There are plenty of people and companies making money with free software one way or another. (We write about some of them on NewsForge from time to time, as regular readers well know.)
But when you trot out this line of thinking in front of a group whose members have spent most of their working lives writing or selling proprietary software, they tend to be skeptical. When they listen to a free software advocate, what they hear inside their heads goes like this:
Bye-bye, software sales
Bye-bye, sweet success
I think I'm going to cry
Bye bye, my money, goodbye
This may sound like a parody of an old Everly Brothers song, but there is some truth to the thought, especially if you start comparing programmers to artists. Or songwriters.
Most musicians never make a living at it
I've written and played a few songs. My friend Matt Rothenberg, an online editor for Ziff Davis, also writes and plays a little music. Note that neither of us writes music for a living; we cover IT industry news, which is fun most of the time but certainly isn't as glamorous as being a songwriter.
Are we "good enough" to be full-time, professional musicians? Probably -- if we were willing to practice like mad and tour and put up with all the indignities faced by aspiring musicians. But we obviously have other ways to earn our livings, so music has become something we do purely out of love.
Note that we still make music. The fact that we don't do it for a living means that we don't make as much music as we would if we did it full-time, but removal of financial pressure also means that we are free to write the songs we want, when we want, instead of coming up with enough material to fill an album on a record company's schedule, and this means the songs we do write are probably better than ones we would write for purely commercial purposes.
Free software is often created the same way: On the creator's schedule, with the same level of inspiration behind it. But we don't necessarily think about software as art, since it is a new art compared to sculpture, music or poetry.
Until very recently the market demand for anyone who could write semi-coherent code was growing so fast that almost anyone who took a couple of programming classes could earn a living in the computer field. Now computer literacy is widespread enough, and basic programming tools have gotten easy enough to use, that the ability "to write a program" is no longer in short supply, and with the Internet at our fingertips we all have the combined output of the whole world's supply of programming talent available to us, not just programmers in our own city, state or country.
You can trace art and music's current ubiquity in our lives -- and the fact that nowadays only a few "stars" make a good living in either field -- to the development of technologies that allow easy duplication and distribution. And, without question, software is easier to distribute worldwide -- at virtually no cost -- than either music or visual arts.
Star programmers will still make money
The pattern in many arts-oriented fields is that the top people get big money while everyone else scrapes by. You might say this is already happening in the software business, with Bill Gates and 100 other top earners (who are not necessarily developers themselves) taking in more than 10,000 (possibly even 100,000) "average" software developers. Indeed, I think many people are drawn to the software industry, including some with no noticeable talent for it, because they believe it can make them rich. And since the world is not necessarily fair, some of the no-talents probably will accumulate wealth from their software activities -- which may be marketing rather than programming -- while developers who do truly innovative work may be forced to work at RadioShack to make ends meet.
You, of course, will be a star, right?
I was born in Los Angeles, surrounded by people who had come there to be movie stars. Every one of them was certain that, with the right break, he or she would be a major box office draw. Some of them managed to maintain this optimism though their entire adult lives, even if the only movie parts they ever got were tiny, and they earned most of their living waiting tables or selling mutual funds.
Surely you've heard people tell musicians who have more hope than talent, "Don't quit your day job." We may start hearing that phrase thrown at programmers. The reality is, in any field where only 1 out of 100 makes it big, 99 won't.
Is free software to blame?
This is a question Steve Ballmer would probably answer "Yes!" and Richard Stallman would answer "No!"
Personally, I believe the most insidious effect of free software is that it puts development tools into the hands of people who might not otherwise be able to afford them, thereby increasing the number of potential programmers. If it takes $20,000 worth of hardware and specialized software to program for a particular operating system or language, obviously there won't be as many programmers working with that operating system or language as with ones that can be obtained for free.
From a software user's viewpoint, the more competition we have, the better. Commercial software writers and marketers, like people in any business, would like to have less competition, not more, and they certainly don't like competition from people who are willing to give software away for free.
"But isn't 90% of all software custom-created for business or government use?" you ask.
Yes, it is. But companies that now charge high prices by writing a piece of custom software for one business, then write a nearly identical piece of custom software for another -- and sell it for as much as the first piece -- are going to have trouble competing in a software world where anyone can use base packages for free and modify them to meet a customer's requirements for far less than the cost of a custom, proprietary package. Suddenly the game of charging for a custom package that is really a modification of work the software vendor has already done for another client is over.
In the commercial/government software marketplace, where even most COTS (Commercial Off The Shelf) software is modified heavily for each customer, free software's popularity is growing rapidly, and the "software as service" business model will inevitably displace the current, "Sell them a software license, then charge for customization and support," sales track. There is no reason to buy a cow if the milk is free, but the cow must still be fed and milked, and the milk must still be put into containers and transported to market.
Customization and support are the programming equivalent of commercial art; not glamorous or necessarily creative, but okay for putting food on the table while you work on your personal projects at night. This is work a "99 out of 100" programmer can do. Indeed, a superstar might not be as good at it as someone who is merely competent and plugs away day after day, displaying reliability rather than brilliance.
Still, as computers spread through the world -- and we're talking the whole world, including African countries where the average income is now less than $500 per year -- the competition for customization and support work is going to be fierce.
Note that the competition for graphic design and journalism jobs isn't as great as the competition to become a famous artist or novelist, but it's still a lot harder to get a paying job in these fields than to become an accountant or recreational vehicle salesperson.
I keep reading statistics that say U.S. colleges turn out more journalism graduates every year than the total number of jobs in the field. We may be moving in this direction with computer science -- and just as in journalism, this won't deter those who truly love the work and will do it for nothing, after hours, if they can't find a job in the area where their passion lies.
Writing software is fascinating, even somewhat addictive. People in the writing business are familiar with the phenomenon of "compulsive writers" who write not for money but because that's what they do. I am a compulsive writer. I earn my living as a reporter and editor now, but I wrote heavily even when I didn't, and I'd keep writing even if I went back to driving a limousine for the bulk of my income. I am not unusual in this "writing as compulsion" personality quirk. Look at all those Weblogs out there!
The free software movement is full of compulsive programmers. I have watched Miguel de Icaza -- to name one -- program furiously during conference sessions and on airplanes. The code he writes at any given moment seems to depend on his mood and personal itch-scratching. Enough of his output is commercially viable that he's helped create a software company -- Ximian -- that is now part of Novell, so he is earning a living based on his programming talents, but I'm sure Miguel would write code even if he was doing something else for a living, as would most other dedicated free software people.
Free software is an effect, not a cause
The American Visionary Art Museum (AVAM) in Baltimore, Maryland, is dedicated to "outsider art" created by people who don't conform to mainstream art standards or have any formal art training but work from raw talent.
Sometimes I see freshmeat as the programming equivalent of AVAM. Projects listed there range from fully-realized and mass-market useful to quirky little half-working utilities of interest only to their creators and a few fellow travelers.
The "free software movement" didn't give creative impulses to programmers. Rather, creative programmers gave rise to the idea of free software. The Free Software Foundation and other free software groups and Web sites have simply provided venues where those impulses could be shared with large numbers of people in an organized fashion.
What we are really seeing today isn't "free software ruining the commercial software business," but the inevitable democratization of software development as computers become as common as paint brushes or musical instruments.
I know a man whose pickup truck has signs on its doors that say, "Mr. Tony's Art For Kids - call for class schedules." It is no great mental leap to imagine a truck with signs that say, "Mr. Miguel's Programming For Kids - call for class schedules."
Tony makes his living as a handyman, not as an artist, but art is his passion, and he loves to share that passion; his art class fees barely cover materials, and if a kid shows up whose parents can't afford even that little bit, Tony won't turn that child away. He teaches art out of love, not for money. Few of the kids he teaches are likely to become professional artists, but art doesn't need to have money behind it to make it worth doing. Ideally, art enriches our lives whether we create it or simply enjoy the end product. Ditto music. Ditto sports. And, increasingly, programming.
Imagine a world where basic computer programming skills are as common as basic soccer or writing skills are today, and computers are as common as pens or soccer balls.
What percentage of literate people manage to make their livings as writers? What percentage of people who can kick a soccer ball earn their livings playing soccer? What percentage of all the people who can bang out a few guitar chords earn their livings as musicians?
We're rapidly heading for a world where computers are as common as pens or soccer balls -- and computer skills are as common as basic literacy or ball-kicking ability. And in that world, with or without an organized free software movement, I doubt that even 1/10 of 1% of all the people who "know how to program" will be able to get full-time jobs creating computer software.