Command Line and Popular Thinking
I remember in the old days when we I learned to use submit and later supersub to do modest programming in CP/M. It was such a great improvement in the CP/M and small OS (TRS-DOS, etc) landscape. I doubt I could copy a file in CP/M now, but I remember that we used the command line because it was the way things were done. There wasn’t a lot of choice.
I moved into dos and even when I had a nice graphical interface (PC-GEOS, Windows, etc) I found that I often used it to open multiple command line windows and text editors. I used to write BASIC programs and dos BAT files to make the basic files work (install, etc). I used command lines for version control, I used them for file copying, and there was always utility there. I even put out some of my own money for tools like 4Dos, which had a much better command line experience than microsoft had ever considered. It was a pretty hot app in the day.
A little later I moved full-time to Unix and was amazed at the power in the Korn shell, C shell, and the like. I eventually settled into Bash after much flirting with alternatives. It’s actually a pretty decent programming environment, though it’s an untyped and ad-hoc “language”. It’s the ability to string cool tools together, the command-line recall and editing, the ability to define functions and command files (bash scripts) and the rest that makes it powerful and useful.
Every time I’ve had to drop back into a version of Windows or OS/2, I always felt hobbled by the lack of a powerful command line tool that would stand toe-to-toe with Bash, but it was never to be. I was told by the popular press that command line interfaces are weak, and lame, and useless, and passe. The cool kids use graphical file managers where they click with a mouse instead of typing with their nine good fingers (and that left thumb nobody uses…?). Somehow it was supposed to be faster, but it never turned out that way. There were even announcements that the next release of windows (or the next release after that) would not even have a command-line tool at all. People touted that idea as if it were the ultimate improvement in operating system philosophy.
When windows users complain about how horrible command lines are, we point them to a better command line. Bash is as far beyond dos command.com as Python is beyond original BASIC. It’s that command-line interfaces are a bad category, it’s just that they’ve only experienced the lamest entry in the catalog. Some of them can be convinced , but to many “command.com” must be the best, because Microsoft makes it. It’s as annoying an attitude as the opposite (everything M$ makes is evil).
Meanwhile sh, bash, zsh, and their ilk gain all new popularity with the Linux crowd, and with MSys and Cygwin and commercial MKS tool even the windows users find themselves stringing together filters and learning the so-called “black art” of simple shell programming.
Now there is a change in public opinion about command lines. Did it come from the Linux and Unix users? From the sudden popularity of Mac OS X? From the DOS people using MKS/MSys/Cygwin? Was it a growing realization that command lines are really useful? Was it a hunger for a command.com replacement that could stand toe-to-toe against the better version in competing operating systems? No. People are beginning to think it’s cool because microsoft released a new command-line interpreter. I guess to many people, if MS does it it’s a good thing.
Now, EWeek was impressed because you can tell the directory to sort by size. I guess they really didn’t pay much attention to the ls manual page, because LS has been able to sort by size, name, age, or anything else you like, in ascending or descending order.
Either way, I am glad to see our Redmond friends realizing that a good command line interface is a good thing, just like a poor command line interface is a bad thing. At least there is some agreement that it isn’t a quaint old idea that needs to be extinguished. It’s just amazing how much announcements from Redmond shape public opinion.
Color me frustrated. I guess this is how the old Smalltalk guys feel all the time.


