29 October 2006

Worse is Better; Getting it Out There

While Brian was in the throes of a compose-o-rama, I mentioned to him the concept of "Worse is Better". Here's a little musing on what the idea, borrowed from Software Town, might mean to the gentle peoples of Musicville.

I am a software hacker (in the original, unperverted sense) and a musician, and I find there are some similarities between the two disciplines. The most important similarity is the necessity of integrating taste and intuition with rigor in order to produce something beautiful -- and usable.

Usability, by normal people, is crucial. Milton Babbit's argument to the contrary is interesting and even tempting, but just plain wrong; for music and software are primarily means of communication and tools of culture.

Availability is the first necessary condition for usability (you can't use it if you can't get it!), and this belated realization is known in the software world as "worse is better" (also at hacker and music lover Jamie Zawinksi's site). Richard Gabriel described two schools of thought in software development:


  • "The Right Thing", which called for completeness and correctness; and

  • "Worse is Better", which called for simplicity above all, even at the cost of completeness and correctness.



It might seem that The Right Thing is obviously the right thing, but unfortunately -- and inevitably -- it entailed (a) extreme difficulty in implementation, (b) unusably poor performance, (c) inflexibility, and (d) great expense. By contrast, the Worse is Better school compromised on completeness and correctness, but produced fast, usable, tweakable, cheap software that ran well on cheap computers.

The core text of Lisp, the preferred programming language of the Right Thing crowd, is Common Lisp: The Language by Guy L. Steele Jr. It is 1029 pages, including all indices. The core text of C, the preferred language of the Worse is Better crew, is The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie: 272 pages all told. The former is a comedy of committee design and obsessive-compulsive disorder, while the latter is a model of simplicity and concision both in English usage and software design.

Gabriel's article was part of a lament and a lesson on understanding why the Right Thing had failed commercially. Lisp Machines were beautiful in concept: the hardware was purpose-built for the Lisp programming language, and they ran all Lisp code, from the operating system to the applications and the user interface. They were expensive and slow, of necessity. Nobody wanted them; Unix machines (the product of the Worse is Better school) were cheap, fast, and flexible -- and ideologically supple, supporting a polyglot user who just wanted to get some work done. You could take any old piece of crap hardware, no matter its architecture, and get Unix working on it pretty quickly.

Like Babbitt, the Right Thing school produced some very beautiful work. One of the finest examples of this is a program called TeX, a text processing system by computing science giant Donald Knuth. Knuth invented TeX in a ten-year (!) side-project (!) while trying to figure out a good way to correctly and beautifully typeset all the mathematical formulae in his magnum opus, The Art of Computer Programming (which itself started as an interdepartmental memo but which grew to a five-volume set which Knuth will probably not finish before he dies). (Volume 4 is on the way! Yay!)

TeX is the beautiful product of a powerful mind. It goes to extreme efforts to typeset text with amazing precision and grace. It is also slow and difficult to use, which is why it is not the language of the Web, although it would have made a superior choice. Instead, the grossly substandard text-description language HTML is used because it is easier to learn and use, and because it can be processed relatively much more quickly. Even a very fast computer like an Intel Core Duo can handle a volume of HTML probably hundreds of times faster than it can an equal volume of TeX -- and the disparity was much worse when the Web was born, in the era of computers than ran at speeds of only tens of megahertz.

It's very sad that The Right Thing is impractical. But the song you can listen to and understand is better than the impenetrable and/or nonexistent song that is perfect. The idea is simply to get something out there. Once you've put something in front of the public, you may even find out that you were mistaken about what perfection is!

Of course, accepting that Worse is Better does not mean that we accept that Total Insanity is Totally Awesome. Knowing the difference requires taste, intuition, and rigor.

Currently listening to: "Terraplane Blues" by Robert Johnson, "Gut Pageant" by Kristin Hersh, and "Pharaoh's Dance" by Miles Davis.

No comments:

Post a Comment