Wednesday, January 3, 2007

Open source is important to programmers only

While it is true that the vast majority of users of Linux do not have the skill, nor the motivation, to add anything to the OS, other things being equal, the suitability of a program for a particular user is higher if the source code is available, as the source code is the ultimate documentation to the program. The possibility of making changes is less important especially for a large program. It is simplistic to assume that all open source users are C programmers that are both capable and willing to make changes and/or correct errors in the OS and tools. Most users of Linux use it the same way they use Windows -- they install the ready-made distribution and just apply patches until a new more attractive version arrives. Then the cycle is repeated.

The value of the source code availability extends far beyond the simple ability of a particular user to change something the code. Source availability is an additional form of consumer protection; the user benefits even if he or she does not program in C. It essentially ensures much better survivability of a product in a changing OS environment.

Is open source ideology "utopian balderdash" like communism?

Bob Metcalfe - who expressed this sentiment most clearly - is dead wrong. Bryan Pfaffenberger described the errors in Metcalfe's reasoning in this way:

"For Bob, the Open Source movement resembles communism and he sees it headed for the same, final meltdown at the hands of capitalism. Admittedly, if you listen to Richard Stallman long enough, you start hearing John Lennon's "Imagine". But I don't see any resemblance between open source and communism. Open source reminds me of the university, or more to the point, of the long-standing traditions of open knowledge-creating and sharing that are responsible for the impressive successes of Western science.

When you become a scientist, you give up the quest for great worldly wealth. You get a decent wage, to be sure. But you don't capitalize on your discoveries - you give them away. You publish, and reveal all. You don't get a penny from the journals, either. In fact, some of them make the author pay the typesetting charges!

What's the payoff? There are probably as many motivations as there are scientists. Some are curious; they just can't stop thinking about why the edge of a waterfall curls, or why the Milky Way's arms form those big, elegant spirals. Others are big kids who can't wait to get into the lab for another rewarding day of exquisite, exploratory fun. Still others care very deeply about the value and meaning of science. In a recent series of lectures, physicist Freeman Dyson reveals the source of his commitment to science: a quest for ways that science and technology can contribute to social justice, the elimination of poverty, and the preservation of the Earth's environment.

I've never heard anyone call science communism. It has absolutely nothing to do with communism. In fact, communists don't like scientists very much. Scientists are too hard to control. They care too much about truth.

University scientists aren't the only people doing research, of course. For-profit corporations engage in research and development. But the consequences illustrate precisely whats at stake. Proprietary knowledge doesn't get disseminated unless doing so enhances the corporation's bottom line. That's understandable, but we need an alternative. In that most capitalist of all countries, the U.S., a bipartisan Congressional consensus supports public investment in university research and the creation of knowledge for everyone, including for-profit companies. This isn't communism; it's common sense.

So what's at stake with computer software? Plenty. Computer technology is partly responsible for the longest sustained economic boom in U.S. history. It has helped establish U.S. economic, technological, and political dominance in a fractious and dangerous world. It promises to help solve the most vexing problems now facing us: the demand to create efficient, non-polluting energy sources, to deal with the ravages of world hunger, to unlock the mysteries of cancer. It's vital that computer knowledge remains an open public possession, but that's not what's happening. Right now, for-profit computer firms are falling all over themselves trying to patent even the silliest snippets of code, and an unbelievably myopic U.S. Patent Office is giving away the store. ... Computer systems that are vital to public safety and welfare are operating with closed, commercial code, which is loaded with unknown (and unknowable) bugs. Consider the USS Norfolk lying dead in the water for two hours after the failure of its onboard NT systems, and you'll get the idea.

The Open Source movement won't wipe out commercial software, any more than it will create an important and valuable alternative. Computer software is too important to leave to for-profit corporations. There needs to be a balance between publicly accessible knowledge and proprietary, for-profit knowledge, and the Open Source movement is lighting the way.

If you still think this is pie-in-the-sky utopianism, maybe you should go talk to kids in a Mexican school. Without computer literacy, they don't stand a chance in today's global economy. Thanks to GNOME, an open source desktop system for Linux, the Mexican government is saving $124 million that would have otherwise lined Microsoft's coffers, and it's spending the money on computers instead. Call it communism, if you like. I call it progress."

Essentially, open source provides an alternative that one can take or reject.

Moreover even if we (incorrectly) assume that there is a strong connection between open source and Marxism, things are not that bad because Marxism encompasses a very wide spectrum of political movements that includes western social-democratic parties. Let's assume that the political agenda of the open source movement is a kind of Marxism applied to software. This is not true; Metcalfe is definitely wrong equating Marxism and the open source philosophies. However there are definitely some overtones to the open source political agenda that are analogous to Marxist views. So let's for a moment assume that Bob Metcalfe is right. What does this mean? First of all, there is a big difference between the theory of communism (called Marxism) and the practice of communism. Western social democracies, Russian bolshevism (Leninism) and Chinese Maoism are all different. Marxism was a utopian vision created by Karl Marx and his followers. The key component of this vision was that the companies should belong to those who work in them; the simplest way of eliminating unnecessary overhead represented by owners and managers is an equal distribution of wealth between workers. That should be achieved by mean of revolution that should "downgrade" owners into workers, a kind of streamlining of the system to eliminate all middleware. Modified and moderate versions of this theoretical vision are now part of most developed states; radical branches of this version are represented by Russian bolshevism and Chinese Maoism, for example. Each is different from the theoretical model suggested by Marx and each is quite different from each other. Some are successful, some are not. Similar differentiation is happening in the open source movement. Like in the social-democratic movement, the moderate branch, represented by Perl creator Larry Wall and supported by O'Reilly, Red Hat and several other companies, has the most momentum. Much like western social democratic parties, the moderate branch will probably win. But the future is unpredictable by definition.
Technical support for Open Source is inferior in comparison to commercial software

The first problem with this statement is that it assumes that the quality of commercial support is good. Nothing is further from the truth. Here is a more or less typical judgment about the quality of commercial technical support:

"Have you tried to get technical support lately? I have. I can sum up the quality in two words: It sucks. I don't care if you pay for it or if you get it for free as part of your purchase - it sucks."

Jesse Berst describes the situation in this way:

"Many leading companies are reducing what they spend on customer support, as Gateway did recently (while claiming the cuts would help customers. Yeah. Right). Click for more.

The situation will only get worse, I'm sorry to say. In today's overheated Internet economy, vendors rush products to market with only a minimum of quality control, increasing the need for help. And, since they are often forced to give away products for free, they have no budget for tech support. The situation has gotten so bad that companies are springing up to supply the support for a fee. Even Wal-Mart now offers tech support in some of its stores."

Essentially, we have situation very similar to the open source support model. Probably the argument can be made even stronger because if we view the outsourcing of technical support as a progressive business decision then open source has an advantage.
OSS projects are limited to projects that are based on existing protocols

The existence of a standard or prototype can be an important advantage for distributed Internet-based project. It seems that Vinod Valloppillil singled out this important factor in his famous Halloween I memo:

"... commodity protocols actually become the means of integration for open source projects. There is a large amount of IQ being expended in various IETF working groups which are quickly creating the architectural model for integration for these OSS projects."

OSS projects are not completely dependent on standards and prototypes. Corporations have the advantage of being able to collect developers in one place and provide them with management, funds and tools but they have one important disadvantage, too. OSS projects can afford to be simpler than traditional commercial projects because complexity is a commercial advantage. A corporation will usually try to produce a more complex solution than necessary to secure this advantage. This idea was probably first introduced in the decommoditization of protocols:

"For proprietary software to be profitable, it must create a proprietary advantage. Thus, simple software that just gets the job done has one serious disadvantage: a competitor can duplicate it. Given the extremely low marginal cost of software, this inevitably drives the price to near-zero. Thus, all truly profitable software has built-in barriers to competition."