When procrastinating on slashdot earlier today I stumbled upon an interesting comment regarding programmers behind Free Software movement left by another reader. The guy posted a question that I found interesting precisely because until recently I'd been asking the exact same thing myself. Quoting:
... But how could you think that [Free Software] this is better for programmers? I always ask this of my fellow IT professionals and they *always* respond with some vague argument about how participating in Open Source projects will get you "recognized"... Well, in the sarcastic words of Homer Simpson "Look at me: I'm making people happy". Someone please enlighten me. Explain to me how we, as programmers, are better off when the fruits of our labor are surrendered for free...
I haven't done any significant contributions to free software myself: I've helped some dudes to fix bugs in one of the first .NET drivers for MySQL once but that's about it. I've been curious about thousands of free software authors and their motives just like the slashdot guy.
Until one day I lost one of my backup CDs with some code I've been accumulating since high school, through college and the first couple of years of commercial work. Suddenly I realized how much software I've written for free. It never occurred to me that I could have made it available for anyone to use.
What kid of code was it? Turns out, the kind I couldn't get anyone to pay me for at that time. I coded whatever I was interested in using languages I liked the most. I also realized that most of my college programming friends did the same: one guy was designing his own programming language, another was playing with neural networks, I even knew two folks who started working on their own mini-OS, we just didn't know it was called Free Software. Mind you, this is not about 70s and PDP-11, I'm not that old. I am talking about middle to late 90s.
I am surprised I haven't figured this out earlier. Where else will you go to work on a PC operating system if Microsoft is not hiring? Have an idea for a new optimization for a compiler? Love hacking Lisp? Fascinated by AI and have an idea for new planning algorithm? Good luck finding job that will offer such luxuries.
Thing is, most of programming jobs suck. Even some ex-googlers called their duties there stupid, now imagine lives of poor souls at Home Depot or Wall-Mart. Lots of companies will hire you to pump their precious data from one DB table into another, but very few will hire you to design the next Perl or build a new distributed file system. This is why you'd want to code something yourself. This is why I hack Pikluk in my free time, it will be free when it's ready.
Programming is an art. Many famous composers and painters had boring "day jobs" painting kings and their fat kids. This is not what we know them for. We know them for what they did at night for free.
Programmers make free software because most software they can get paid for isn't interesting to work on.
Got it, the curious slashdot guy?