One thought that often crosses my mind when I think of the competing realities of open source and private software development: does this resemble communism versus capitalism? At the root of both these methods lie those two differing ideologies.
Capitalism comes from the theme of healthy competition, laissez-faire. The legacy of Adam Smith has brought about tremendous prosperity and progress. One could say that capitalistic processes drove each new technology forward: from international trade (East India Co.), to transportation (railroads and transportation), and of course consumer goods (Wal-Mart, strip malls, and all the rest).
Communism, in the Marxian sense, revolves around equality of goods and services, a homogeneous economy of sorts. In the world of software, where code itself is the product, open source parallels this equality very well. Anyone contributes, all benefit.
I think the vital difference doesn’t lie in the ideologies themselves, but in the Transparency of Transaction. Here’s what I mean.
In the past, harvesting natural resources created goods. The transformation required labor, time, intelligence and money. This created value. And of course, the individual or company who put in X amount of resources expected to reap Y gross, and hopefully Y > X. Simple economics. Competition provides choice for the buyers, creates more risk, and catalyzes growth, development and progress. These are the capitalistic ideals.
Lets put aside monopolies and government subsidies and whatever else has come into play to distort the original “rules” of capitalism.
Of course Communism was deduced from differing principles. Socialistic aims concern individuals, not economic movements. The economic philosophy of the left states that if the needs of all are met, then most everything else will work itself out. In practice, however, the choice of people is eliminated, which is as vital as food and shelter. Couple in the limited natural resources thing, and you have a big problem (U.S.S.R, Cuba).
Now lets take software development. Not counting man-hours, resources required are very small (a few PCs, internet connection). Of course, software can be extremely useful and powerful, so Y > X. This is not always the case – and software can fail (vaporware anyone?) or be extremely buggy.
But if a grocery store goes bottom up, the whole thing wasn’t a waste. It just means that for a certain amount of time X > Y. And there can still be marginal Y (sales and clearances). In software, if a company can’t release anything and goes bankrupt, Y is ZERO. And there’s no way to utilize X (most code is scrapped).
Open source steps out of this model. Because there is no drive to acquire profit, and virtually no transportation or natural resource costs, X is never really lost. It keeps growing and growing, creating a product that rivals any corporate creation – companies burdened by the pressure to attain Y and keep X