Command Line Bigots and End-User Programming

Arnold Kling has an item commenting on the so-called command line bigots who use Unix and other open-source software. Basically he takes Eric Raymond to task for suggesting that Linux can solve the version fatigue mentioned by Glenn Reynolds.

The gist of Kling’s arugment is:

I wish that Raymond or Doc Searls or any of their command-line bigot friends could spend just one day as an attorney, a secretary, or any other office worker whose job is something other than composing rants or editing computer code. Try producing that inventory chart or sales brochure using emacs and shell scripts.

I agree that doing this kind of work with a simple text editor and a shell script is more complex than most users would be able to manage. But there is something powerful about Linux and Unix that is missing from Windows or the web and that is the ability to easily script or program operations. What we need is a programming system that is usable by end-users. I was reading a book on end-user programming last night A Small Matter of Programming. The author calls for task-specific programming languages that would allow users to have the power to program their own computers for what they need. Her two big examples of where this already occurs are in spreadsheets and CAD systems. On a more theoretical level she convinces me that the claims made by many computer scientists that we are moving toward conversational interactions with our computers are extremely questionable. Conversations are too context sensitive to be easily translated to computers and the domain descibed by natural language too wide to make the tasks descibable.

What I like about the un_x systems is the modularity and small tools that make scripting possible. I was recently trying to edit some web pages using Microsoft tools and couldn’t find any easy way to make global changes, such as removing all the HTML tags. Sed, the stream editor, on un_x solved the problem in a single line. Getting this ease of use and configurability to the end-user is the real challenge and failure to do so the true command-line bigotry.