COMMENTARY--Sometimes changing the terms of a logical argument can give one a better perspective as to whether that argument makes sense. This is the essence of an analogy.
Analogies have a long heritage. The "cave" analogy found in Plato's "The Republic" was dreamed up 2,500 years ago in ancient Greece. Since this isn't a freshman philosophy class, I'll not spend much time discussing Plato (though the notion that our understanding of what is true is based on the equivalent of shadows cast on a cave wall is worth remembering).
Instead I'll talk about something far more important: Cake.
Stallman the cake maker
Richard likes cake. In fact, he likes it so much that he wants to make the cakes he finds in the stores for himself. Unfortunately, the companies that make them won't tell him how it is done.
Therefore, Richard starts to advocate that people get together to make their OWN cakes, all of which are provided with complete and detailed recipes. In fact, he starts to talk as if failure to get the recipe with cakes is a fundamental restriction on your freedom. It prevents you from fixing the taste-eroding errors that might exist in the cake. Recipes help you to avoid cakes that have "strychnine" in them. You can't build a community around people who don’t share cake recipes, so keeping cake recipes proprietary is bad for social cohesion.
Proprietary cakes are a form of dominance, and the only way to break free of its tyranny is to build, and buy, only cakes made by cake makers who give detailed recipes with every cake they give you. Furthermore, you have the freedom to pass the cake recipe around to whomever you want, and if you make a cake with that recipe, start up a store and sell (or try to sell) cakes, too.
Groups of activists attempt to duplicate popular proprietary cakes. As a defense, the proprietary cake industry turns increasingly towards recipe patents, such as the following:
"A culinary mechanism which involves holding a device composed of bound filaments of stainless steel and vibrating one's hand violently, causing perturbations to pass through the chicken ovum internal plasma and generating an amalgamate substance that is even in color, smooth in consistency and filled with billions of oxygen-rich microbubbles" (whipping eggs, to those who hadn't guessed, though that gives you a flavor of the language of patents, which is why I discount the notion that patents are a great means by which to disseminate innovations).
Some caveats
The analogy isn't perfect. First, it costs time and money to make cakes from a recipe, whereas it takes (almost) no time or money to compile source code and post it on your Web server. In other words, you won't get "free cake" booths lining the roads leading towards the local "fee-based" bakery, whereas there are plenty of locations that give away free compiled software, simply because there is no (or at least, very little) cost in doing so.
Second, software is obviously more important to businesses and consumers than cake, or access to cake recipes. But then again, we aren't people strapped to chairs looking at shadows on a wall, either (Plato's cave analogy), so that's beside the point.
MOST people would have little use for recipes, simply because they don't cook, or just don't want to cook their own cake. Similarly, MOST people have little use for source code. This makes convincing non-programmers that they MUST have access to source code critical to the open source sales pitch, given that few but programmers would find access to source code useful.
The open source sales pitch
Open source advocacy pieces often sound like they are channeling the spirits of Benjamin Franklin, Thomas Jefferson and John Adams, all of whom would ONLY do open source if programming had been a discipline in the 18th century.
Admittedly, this is a good way to spin the argument for Americans, since America's founding fathers hold special importance to Americans. It is also an implicit admission, even if unconscious, that MOST people wouldn't find access to source code particularly interesting.
On the ZDNet UK site, an anonymous Talkback post made a statement which I found to be characteristic of the standard manner open source software is sold to the non-programming public:
...the entire goal of the Free Software Movement is to ensure that the needs of users are elevated to equivalent to the rights of developers in the software social contract. (Click to see full post)
In my response, I called this "Doublespeak," a characterization he resisted. To explain myself in a subsequent post, I created the following analogy (slightly paraphrased).
Imagine you have a bunch of people living on the coast who believe they have a right to government-provided boats. It's harder to convince everyone that they NEED boats, particularly if they live in Des Moines, Iowa, where there isn't much need for such a thing. A good way to phrase a special-interest demand, therefore, is as follows:
"The entire goal of the Free Boat movement is to ensure the needs of average citizens are elevated in the social contract to the equivalent of the rights of people who live on the coast"
Such recasting of the discussion is a way of making a special-interest desire seem more generally applicable, and makes the advocate a champion of the god-given rights of all. It doesn't make the right any more important to those who don't need boats, or access to source code. It just makes it appear that it's important. Belief equals demand, in this case, and thus the cultivation of belief in the importance of access to source code is part of the way open source advocates build demand for open source products.
Some parting thoughts
Some confuse my criticism of open source as indicative of a dislike of open source software. That simply isn't true.
I use open source software all the time in my projects. It saves me days / weeks / months / years of development effort (depending on the product), and I owe a special debt to every developer around the world who took the time to write that free software.
Furthermore, there are situations where access to source code is very important. I fully understand why universities use Linux as an educational tool, and why hardware vendors enjoy the flexibility afforded by access to source code. Even Microsoft admits this, as embedded developers can gain access to the full source code to Windows CE.Net under Microsoft's "shared source" program.
Lastly, it would seem rather odd for me to claim that "open source is evil" while I offer a free open source product from my Web site, and continue to write articles without getting paid for them. I can't say that I will ALWAYS write articles for free, but then again, I bet most programmers wouldn't say that they will ALWAYS write free software.
And that, my friends and enemies, is the point. Open source software is WONDERFUL stuff that adds lots of value to the computing ecosystem. That does not mean, however, that all software should be open source. That was the essence of my criticism to Richard Stallman's recent article. Furthermore, the fact that open source is "super cool" does not require that we believe that open source, BY ITSELF, is going to provide the revenue that would serve as the foundation for a decent software development business.
What I have ALWAYS opposed is the notion that all software must be open source, or that it is right to dictate procurement practices that disadvantage proprietary software. Figure out where open source is important, and balance it against the revenue generating possibilities of closed-source software.
People who like macaroni and cheese don't tend to eat it exclusively (though they might get sick from ALL THIS ANALOGY). Don't get carried away by your enthusiasm for open source.
biography
John Carroll is a software engineer now living in Geneva, Switzerland. He specializes in the design and development of distributed systems using Java and .Net. He is also the founder of Turtleneck Software.





