This posting at Slashdot points to the text of a condescending letter one apparently wizened software developer wrote to a younger developer after a discussion at a conference about the philosophy of free software. The younger programmer was idealistic about free software and the older developer somewhat less optimistic.
The argument against free software is essentially that giving your code away earns you neither money nor fame among anyone but other coder geeks. And the assumption the older programmer makes is that a task performed for neither money nor far-reaching fame isn’t worthwhile. He also seems to characterize the creation of free software as a form of altruism. He’s wrong on both points.
There’s more to some tasks than money or fame. For example, if I write a tool that makes my life easier, even if I make no money directly from writing the tool, my writing it has been rewarding and is worth the effort. If I provide this tool free of charge to other developers, I’m contributing to an environment — a sort of marketplace — wherein the free exchange of such tools is embraced. By writing software and making it free, I’m generating for myself a sort of capital within that marketplace. The nifty thing is that in order to take advantage of that marketplace, I don’t even have to have any capital. But the fact that some people do have such capital is what makes the marketplace thrive, and the more capital there is, the more it thrives, which makes it easier for people to write their own better free software, which they pump back into the system, and so on, ad infinitum. If nobody contributed free software to the development community, life would be a lot harder for developers and thus for the business world. Further, free software drives innovation within the free software community and within the business world, and innovation is good for everybody in the longrun. Not all developers of free software become millionaires or find themselves famous, but it’s a stretch to say that there’s no other good reason for performing a task, especially if it’s one, as it tends to be with those who develop free software, that you absolutely love doing.
I don’t get paid to read books and to share my impressions of them with friends; nor am I famous for doing so. But I love doing so, and that’s worth plenty.
Which brings me to the second point on which the author of that condescending letter was wrong. Some people may consider the deployment of free software to be an act of altruism. In fact, many who write free software probably pat themselves on the back for performing such a selfless act. I don’t believe there’s such a thing as selflessness, though, in software development or in any other field. There is a “me” motivation in everything we do. In my case, I write tools that I’m willing to make available for free, but I write them first for myself, to ease my work load. Giving them away is an afterthought. And even then, there’s a selfish motivation: What if somebody runs across my tool and likes it? There’s always the possibility that I’ll either be paid for further development or that I’ll get a compliment, at least. There’s nothing selfless about it.