Saturday, January 06, 2007

The Fall of the Command Line and The Rise of the Graphic User Interface

I been fortunate to work with some very good computer programmers in my time. There seem to be less of them about these days. Not that there is a shortage of programmers, there is a shortage of good ones. There are many reasons for this, and I'm sure I'll blog about many of them before I shuffle off this mortal coil. But today, gentle reader.....

Reason One: The Fall of the Command Line and The Rise of the Graphic User Interface

In 1979, after I'd finished my degree and just before I started working, I bought a copy of the Bell System Technical Journal (in fact July-August 1978, Vol. 57, No. 6, Part 2) about the "UNIX Time-Sharing System". In the foreward (by McIlroy, Pinson and Tague) they say "a number of maxims have gained currency among the builders and users of the UNIX system", number four of which is "Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them away after you've finished useing them". This is excellent advice and one sign of a good programming is that they are lazy - at least in the sense of making the computer do their work for them. UNIX encouraged this maxim; it was easy to build simple tools and to use them. All you had to do was type the toolname on the command line. And it was easy to automate the application of tools - you just wrote a sequence of tool invocations into a file and type that file name on the command line.

Just how are you supposed to achieve this with a system based around a GUI? How is a programmer brought up on GUIs ever going to learn the practice of maxim number four?

I've prompted into writing this as I've just come across "In the Beginning was The Command Line" which is a very interesting essay about operating systems and much more.

I couldn't find an online version of the BSTJ referenced above; I have to keep mine safe. Also, the view that progammers should be lazy is now common place, probably due to Larry Wall, who goes further and says "A truly great computer programmer is lazy, impatient and full of hubris"

No comments:

Search This Blog