Linked by Greg Afinogenov on Wed 3rd Sep 2003 07:19 UTC
Graphics, User Interfaces It is not fashionable nowadays to speak of the merits of the command line, in an age where things like streaming video and Aqua are an integral part of our daily life. However, I do not think that typed-in commands must necessarily be consigned to the dustbin of computer history. Of course, I am not suggesting that we all drop X and Windows and pretend like we are living in the early eighties. The command line interface still has much to offer us, and many of its benefits simply cannot physically be emulated or even replaced by graphical ones.
Permalink for comment
To read all comments associated with this story, please click here.
Use the right tool for the job.
by Arend on Wed 3rd Sep 2003 08:58 UTC

There's a place for the GUI and there's a place for the commandline.

I work as a programmer and I use vim for typing my source code. I can have as much xterms on my screen as I need, some of them running on remote computers for compiling stuff on another Unix platform.

For web-browsing and e-mail I usually use Mozilla and dillo, because web-browsing is much more appealling in graphics mode.
But sometimes I use lynx, too. Mostly when I have to remotely administer a computer and have to download something. I go to the page I need to download from with mozilla on my local PC and copy the url to the CLI on the remote machine starting lynx and download the file on the remote machine.

I think it is good practice that for a certain task both a command-line and a GUI program is available.

I also think it is good practice to program in such a way that you can separate your functionality from the parts that implement the GUI.
If your program can support both a CLI and a GUI, your program is much easier to port to a new GUI in the future, easier to debug, more robust and maintainable because you clearly separate different tasks within your software and more flexible because you can use it's engine under water from other programs through the CLI.