The debate over command line vs GUI has been being fought for quite a while now. Putting a pretty front end onto a piece of software can vastly improve productivity at the same time as not frightening off a user by showing them just how complex the application really is.

The GUI appears to be winning out over the command line die hards, and for good reason. GNOME puts an extemely useful and functional desktop environment on top of UNIX, Windows 2000 put (finally) a stable interface on top of the Windows NT kernel. Few people work from a DOS prompt these days and fire applications off with anything but a few clicks.

People argue that typing commands takes too long, and for the most part they are right.

The exception is when you have a GUI on top of a powerful and complex application or suite of applications. To truly harness the power you really need to be at the command line. This is especially true when this application deals with low level operations such as kernel or device management.

Obviously I'm referring to a UNIX system here, I assume the same holds for some aspects of Windows.

Case in point: Veritas Volume Manager. I've spend the best part of 9 hours untangling a mess it made. After giving up on the inflexible GUI I did it the old fashioned way - Reading manpages and typing commands from the command line.

Yes, Vxvm has a nice, Java GUI which lets you do things quickly and easily. It doesn't, however, give you the fine grained control you need in unusual situations. In fact anything you select from the GUI is translated into the appropriate command-line version and issued for you by the applet. It even logs the command it's issuing, if you need proof.

The GUI, even running on a Solaris system is hideously slow as well.

It's not that the GUI is poorly designed, though. It allows you to perform normal operations with speed and ease. The full scope of what Vxvm can do is far too complex to make into a simple GUI.

This is more of a question of flexibility. GUIs are traditionally limited in what is allowed and what is not. A command line usually gives you more freedom to do things. The 'Unix-like' way of doing things (standard commands, shells, scripting), though having a steeper learning curve, lets you solve problems not thought by the designer of your tools; and a GUI won't usually let you that.

Let's say you have got 200 files with a given extension and you want to change them all. Using a graphical file manager, you are probably stuck if you haven't got an specific function to do that; but that's easily done on a command line.

In the Unix world, going to the command line is often necessary when dealing with configuration files, which are usually edited by hand and hard to understand (because humans tend to be sloppy) by programs; which is one of the biggest flaws of these systems, the vast differences between configuration files, but that is another node.

I'm a technical writer, and I believe you've missed an important point in your excellent writeup, Semprini. I think that it goes beyond the command prompt. People will learn what they need to know, and usually stop. That's why a vast majority know how to use the basics of Word and WordPerfect, but don't know how to create macros.

Word processors all have a nice GUI interface. They have rows of buttons at the top of the screen to adjust almost anything you desire. These buttons are, for the most part, used by folks who are not proficient with the software. For those who write the occasional letter or school paper, the GUI is perfect.

For those of us who depend on the word processor for our livelihood, however, the GUI interface is mostly ignored. Anything that removes our hands from the keyboard slows the process. Almost every proficient writer knows the keyboard shortcuts by heart. In Word, if they want to do a spell check, they hit the F7 key. If they need to replace all instances of the word "color" with the UK English "colour", then they just hit the ALT-R combination.

Those who know the keyboard routines for shortcuts or command line inputs are the ones who understand the application. For those of you who know DOS commands, how many times have you rescued someone because their Windows crashed? I helped so many folks with GUI-itus that I now insist that they watch me and learn the process, because I only will do it once per person.

Log in or registerto write something here or to contact authors.