TCS Daily

The Programming Soviet

By Arnold Kling - June 24, 2002 12:00 AM

I had an aunt and uncle who were Communists until the end. They saw any flaw in the capitalist sytem as fatal, and they saw hope in the most tired and discredited leaders and systems (my uncle wrote an exultant pamphlet about Yugoslavia under Tito).

I am reminded of my aunt and uncle whenever I read an anti-Microsoft tirade from Doc Searls or Eric Raymond or another card-carrying command-line zealot from the programming Soviet. To these true believers, any Microsoft imperfection spells imminent collapse for the Redmond bourgeoisie. Comes the revolution, it will be from each according to his Open Source and to each according to his Unix.

Microsoft's latest problem could be that its software actually is too good. In a recent TCS column, Glenn Harlan Reynolds raised the issue of Version Fatigue. He expressed a concern that new versions of software, such as Microsoft Windows™ or Microsoft Word™, bring costs as well as benefits to users.

The cost is learning how to perform an old operation in a new way. The benefit is a feature that makes it possible to do something more easily than before. The incremental benefits of the newest versions tend to be less and less compelling. Version fatigue might be defined as the point where the incremental benefits do not match the incremental costs. When the existing software has nearly every feature you want, it is hard to get motivated to upgrade.

Eric Raymond read Reynolds' lament, and he saw an opportunity to recruit a new party member.
Want to beat software version fatigue? It's easy, Glenn. Take control; dump the closed-source monopolists; get off the treadmill. OpenOffice will let you keep your MS-Word documents and your Excel spreadsheets and PowerPoint presentations. Join the Linux revolution, and never see a Blue Screen of Death again.

Reynolds says that his problem is that he needs software to be intuitive, because he does not have any patience to read manuals or undergo training. Raymond's solution is to recommend Emacs, a command-line text editor that requires keystroke sequences that are so esoteric that it would take a beginner an hour just to learn how to edit a three-line memo.

If your job is to write computer code all day, then it pays to learn Emacs. It also may pay to learn Linux, Perl, and all the other wonderful Open Source tools for programmers.

What the command-line zealots cannot seem to grasp is that there are people who use computers who are not programmers! Teachers, lawyers, accountants, and secretaries get no benefit whatsoever from being able to tweak the source code or contact a user's group.

User-Driven Innovation

End-users have absolutely no influence over Unix or Open Source software. In the Unix world, all of the innovation is driven by the needs of programmers.

From 1980-1995, when the Hegelian spirit was inside the personal computer, the following were important innovations for end-users:
  • low-cost personal printing

  • scanning and faxing

  • photo-editing and other graphics applications

  • word processing

  • spreadsheets

  • graphics-intensive games

  • presentation software

Unix was on the leading edge of exactly none of these phenomena. The Unix and Open Source worlds excel at improving life for programmers, not for users. Only now, after the applications have been stable for several years, are we starting to see credible Unix implementations of word processing, spreadsheets, and so on.

Unix preserved its stability because it stayed safely behind the curve during the entire Personal Computer revolution. Unix stayed cleaner than Windows because it was comfortably insulated from the dizzying combinatorics of innovation in microprocessors, storage media, software applications, and peripherals.

The Internet Age

The Internet revived Unix. The requirements for an Internet server lean more toward stability and less toward flexibility. And the ability to distribute applications reduces the burden on the personal computer to be a Swiss Army Knife that can do it all. You can run all sorts of applications the way that Raymond publishes his rants -- using a browser and a web-based application (Blogger).

(Of course, Raymond could dump the closed-source Blogger for an open-source alternative. Or he could run his blog the way I run mine, using a text editor and ftp. But sometimes even fanatics would rather not live according to their ideology.)

But the Internet became a mass phenomenon only when it was de-Unixified. For example, AOL surrounded the simple email protocol with layers of "unnecessary" code --and increased the adoption of email by millions.

Recently, I set up a wireless network in my house. When I bought a new laptop, I reluctantly accepted Windows XP (because of Version Fatigue, I thought I would have preferred Windows 98). I got ready to configure the laptop to recognize the network, and then -- I didn't have to. The machine turned on, and I was on the Net! Let the programmers configure their Linux boxes. As a user, I'll take proprietary software. It's the command-line zealots that give me the worst fatigue.



TCS Daily Archives