Thursday, February 5, 2009

Holy Wars

If there's one thing I've thought weird about my particular field of expertise, it is the tendency of experts in computer science to engage in "holy wars," in which a particular practice is irrationally touted as "the one true way," and all opposing tendencies are denounced as evil.

Holy wars emerge on all kinds of matters. Long ago there were editor wars, in which people argued about the one-true-way(tm) to edit text. There were two competing programs in mainframes, vi and emacs. Vi was super-minimalistic, designed for low-bandwidth connections. Every byte counted, so it avoided sending extraneous information. Emacs was a highly detailed editor that allowed you to do all kinds of tasks to the text while you edited it. This was helpful because much of the text being edited was program-code, and emacs could compile it for you, show you the results, and bring you back to the code. With a keystroke. Emacs could also debug, spell check, and if you were feeling depressed about your code not working, it had "ELIZA," an imitation psychologist based on a school of psychology that rephrased your questions to give you a new perspective.

In the editor wars, the opposite tendencies of each side were routinely mocked. Vi fanatics ridiculed emacs's complexity ("Escape-Meta-Alt-Ctrl-Shift," because emacs editing often involved hitting chords of keys to trigger particular tasks), the code size, ("Eight Megabytes And Constantly Swapping". Eight megabytes was a lot of memory back then.) and the tendency to do everything within the editor. ("It's not an editor, it's an OPERATING SYSTEM.") Emacs fans found Vi oversimplified, and therefore stupid. But rather than see it as a matter of preference (which it was), the other faction was "evil" for not accepting your assumptions as true.

Celebrities in the field also promote holy wars. Let us take the case of Edsger Dijkstra. Mr. Dijkstra is a brilliant programmer who invented the shuttling yard algorithm, taught at Texas A&M, and seriously caused a revolution in networking. He also has an utter hatred of unconditional jumps as a programming technique. Most languages use the keyword "goto" to do unconditional jump, and Mr. Dijkstra wrote an essay denouncing it as "Goto considered harmful." He also despises COBOL, although to be fair, so do most people who have used it.

These little quibbles are called "Holy wars" after their resemblance to "religious" fights in the past -- the stakes are small, the fighting is vicious, and after all is said and done, little is gained. The practitioners are convinced of the superiority of their own way of doing things and offended by the very existence of alternatives.

Currently running holy wars in computer science include Windows vs. Macs, GPL vs. BSD, proper tabbing for programming (in which tabs often suggest which loops belong where, but how many spaces per tab is hotly contested), GUI vs CLI, KDE vs. Gnome, and scripting vs. compiling.

The strange thing is, I really don't see much of this in other fields. I don't see Jungian psychologists having a slap-fight against the Freudians. I don't see vicious, insult-riddled debates between architects, even among the many schools of design with conflicting ideas. I've yet to hear of the Cubist painters swearing that Pointillism was eviler than eating babies. Is this because I talk to more Computer Scientists than other majors, or does CS just inherently attract mostly insufferably picky people?


Cairnarvon said...

The problem with a field like computer science is that it's possible to say someone is wrong, unambiguously and without a doubt, so disagreement on things of substance rarely happens. And since people like to disagree, it's nice to find a relatively trivial thing to disagree on once in a while.

That said, I don't think Windows vs. any other operating system or GUI vs. CLI is really that big a controversy. On the one hand you have dumb people who are wrong, and on the other you have Unix users.

(Though dadaism could be seen as a holy war among artists. The fact that psychologists don't really have them is more a reflection on the fact that nearly all of psychology is pseudo-scientific.)

themadengineer said...

Chemistry and Physics also have quite a lot of certainty where some disputes are just erroneous, but the closest I've ever seen to a holy war in either is the quantum physics slapfight of the 1920's.

Quantum physicists won that one, last I checked.

And as for psychology, the most qualified psychologist I know predicts that psychology will eventually be superseded by neurology, with all useful discoveries "folded in."

Cairnarvon said...

Dude, string theory.
There's more string theory drama among laymorons at Slashdot than there is among actual physicists, but it's easily the equal of the emacs/vi wars.

themadengineer said...

Since I posted this article, I have come across an art holy war. I couldn't tell for sure, being unfamiliar with the field, but it seemed to be about as stupid as the comptuer science ones.

Related Posts Plugin for WordPress, Blogger...