After five years of writing online and three years of covering the free-software movement, I've grown accustomed to my share of flames. I've even come to relish the fact that if I so much as look cross-eyed at Linux I'll get reamed as a "Bill Gates propagandist." It's OK; as a reporter, I figure I'm doing something wrong if everybody is happy with every word I write.
But I'm not used to the kind of e-mail I received after I wrote a short speculative piece wondering whether any subset of the extraordinarily diverse group of people who fall under the term "free-software hackers" could have been involved in cracking Microsoft's internal network. I can shrug off the expletives or accusations that I am a Microsoft floozy, but it's a little less easy to be blasé in the face of the "shame on yous" and "you should know betters" that filled up my in box over the weekend. It's as if my mother was pursing her lips, shaking her head and wondering how a boy she raised could ever turn out so wayward. Those who knew my coverage of free software best were most dismayed -- I had betrayed them.
Accusations of betrayal cut pretty deep. And yet, even as I wince every time I check my mail, I am paradoxically heartened by the anger. I originally became obsessed with covering the free-software movement because I was fascinated by the passion that motivated so many free-software developers or advocates. The severity of their response to my article proved to me, once again, that I was playing with a fascinating holy fire.
Alas, if one becomes fascinated by sharp knives, sooner or later, one is likely to cut oneself. And in my haste to view the Microsoft cracking incident from the perspective of the free-software movement, I stabbed myself in the gut pretty good.
I won't retract my words -- I've been personally witness to enough tension between Microsoft and the free-software community that I still believe it is "not inconceivable" that a few misguided free-software adherents could have been involved. But I never meant to slander an entire community, and I'll concede that in the charged atmosphere of the moment, speculating without any evidence at all that free-software hackers might be guilty of a felonious assault on Microsoft was unwise and a little irresponsible. I could blame the 750-plus Slashdot posts I had just read before writing the piece -- some of which discussed the possibility that stolen Microsoft source code could help such open-source projects as WINE, the Windows emulator project that would allow Linux-based systems to run Microsoft applications -- but that would just be passing the buck.
Nor would any excuse address what to me are the really interesting questions raised by my correspondents. How could something as seemingly dry and mechanical as code inspire so much emotion? How could the sharing of software be an ideology? Perhaps most interestingly, many of my correspondents were motivated by a rage born of their assumption that I had impugned the honor of free software. Their position was that free-software/open-source software developers operated by a higher standard: They wouldn't stoop to stealing. Since when did a software development methodology include a code of ethics? What inspires the faith?
Chairman Mao Tse-tung was fond of telling a little fable to illustrate one of his favorite maxims. It was about the old man who lived near a mountain. The mountain happened to be right between him and the nearest town, which caused him no end of trouble. So one day he decided to remove the mountain. He hoisted a mattock and began to hack away. His neighbors thought he was crazy, and came over to make fun of him. You'll never move that mountain, they said, so why bother? The old man shrugged. If I die before the mountain is removed, he declared, my sons will continue digging. And if they die before it's done, their sons will continue. And so on.
The spirit that lived within the mountain heard these words and suddenly became very agitated about his long-term housing situation. So he immediately lifted the entire mountain up and flew it to another, presumably safer, region.
Mao used the story as evidence that pure will could achieve China's transformation from poverty into developed-nation status. The execution of this philosophy had dismal consequences, such as the Great Leap Forward and the consequent starvation of millions of people. But I was reminded of the story recently, when reviewing the e-mail that came in to Salon in response to an article my colleague Janelle Brown wrote analyzing the flaws of Gnutella, an open-sourced file-trading software system that many see as the successor to Napster. In her piece, Brown pointed out several technical shortcomings and possible legal vulnerabilities that could hamper Gnutella's advancement.
The response from letter writers was intriguing. While many correspondents acknowledged some of the problems, they also shrugged them off. Their faith that all technical problems would eventually be worked out was unshakable. It was as if there was a historical inevitability ensuring the success of free software. Never mind that Gnutella did not scale well -- that as more people used it, it performed less efficiently. The next version, it was declared, would incorporate improvements that solved that problem. Never mind that legal authorities would find a point of vulnerability in the developers who actually wrote the software. In the future, the Net would include structures that facilitated the anonymous creation and distribution of code.
There's always a next version. That may sound like a pretty prosaic reason for passion, but it is as much a key to understanding free-software emotion as is Richard Stallman's insistence that sharing source code is a moral imperative. When authors write books or directors film movies, they aim for a complete work, a final edit or final cut. They may even convince themselves that they've delivered the final word on a subject. Not true for software. Every honest software developer knows that software is always incomplete and imperfect. Its creation is a process. The next version, ideally, will always be better, will theoretically fix more bugs than it creates.
Open-source software, at heart, is a method for maximizing the efficiency and speed with which one can create the next version. Release early, release often, is the mantra, meaning get your new code out into the public so millions of eyes can tear it apart and help create a new version even faster. The success of this strategy with Linux, Apache or any other open-source software program seems to have had a psychological effect. One could argue that open-source developers understand the inherent imperfection of software better than anyone: They know that even if they don't move the mountain (or Microsoft) with their code, then the next generation of developers will succeed. As a consequence, they have created what they believe is the strongest system for continuously improving code.
The step from faith to passion is easy. If you believe that your way is the best way to achieve a given end, then that fuels your determination to practice what you preach, to distribute your code freely and frequently. If enough people agree with you, then you have a movement, a self-fulfilling prophecy of software development, a way to will things into being just as the old man willed his mountain to disappear.
Certainly you don't need to steal somebody else's code or crack someone else's internal network to achieve your will. And while plenty of my correspondents assured me that the very idea that they would even want to look at Microsoft's source code was anathema to them -- that, in effect, to break into Microsoft to steal code would be analogous to breaking into a sewer to steal excrement -- I think that particular point of view actually belongs to a juvenile minority. The majority believes in the process, and, understandably, any suggestion that they might seek a shortcut to success impugns that belief -- and their own passionately held values.