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.