Linked by Thom Holwerda on Fri 8th Feb 2008 20:46 UTC, submitted by irbis
Graphics, User Interfaces "It's one of the more popular culture wars in the free software community: GUI versus CLI (graphics versus the command-line). Programmers, by selection, inclination, and long experience, understandably are attracted to textual interactions with the computer, but the text interface was imposed originally by technological limitations. The GUI was introduced as a reply to those problems, but has undergone very little evolution from 1973 (when it was invented at Xerox PARC) to today. So why can't we do better than either of these tired old systems?"
Thread beginning with comment 300087
To read all comments associated with this story, please click here.
In the Beginning... was the Command Line
by pinky on Fri 8th Feb 2008 22:54 UTC
pinky
Member since:
2005-07-15

Basically i agree with CrLf.

The book "In the Beginning... was the Command Line" from Neal Stephenson as a really true sentence: "We need a command line for the same cause that only children read picture-books, only the human language is powerfull enough to express complex issues"

The GUI is a really good tool to allow many users to work with the computer. But it will always be limited because you can never put every possible option into an icon or something visual.

Let me try an comparison: If you want to express your thoughts you will always have to write them down. We will never have a "GUI" with all possible words so that you can create yout text by point-and-click (you can't put a "selection-dialog" with all possible word on the screen). If you want to express your thoughts you have to write them down. The same is true for complex tasks in the computer world.

Maybe some day the command line can be replaced by a voice-interface (so that you can talk with your computer) but you will always need a real language to be able to execute complex tasks.

GUIs are a nice simplification for many standard tasks but it can never replace a language based interface for complex tasks.

Reply Score: 6

Doc Pain Member since:
2006-10-08

Maybe some day the command line can be replaced by a voice-interface (so that you can talk with your computer) but you will always need a real language to be able to execute complex tasks.


I agree with you and I'd like to add: The CLI emphasizes the method, the way towards the goal you want to reach. You don't (or cannot) tell the computer what you want to have in the end, instead, you tell the particular steps, their relations and their conditions. Furthermore, there are many ways to realize one task, so it's up to the user to choose which way is the most convenient one to him. (Put into CLI terminology: some like aliases, others like scripts; some like pipes, others like fifos.)

GUIs are a nice simplification for many standard tasks but it can never replace a language based interface for complex tasks.


This is correct. As it has been pointed out before, GUIs map a limited subset of the previously named steps, relations and conditions onto graphical objects that can be read and manipulated, but still, this mapping is incomplete. Most GUI driven applications concentrate on the result of a task, not on the steps to reach it. Please get me right: This is nothing bad! But as I said before, it is limited and may reach the point where an intended and imaginable goal cannot be reached. It's up to the developer to think about what he implements and what he does not implement. It may be seen as taking the ability to choose off the user: He may only choose among a subset of the possibilities.

Reply Parent Score: 4

CrLf Member since:
2006-01-03

I agree with you and I'd like to add: The CLI emphasizes the method, the way towards the goal you want to reach. You don't (or cannot) tell the computer what you want to have in the end, instead, you tell the particular steps, their relations and their conditions.


Actually, I think it's the other way around. The CLI is mostly about stating what you want in the end.

For instance, to produce a list of all MP3 files ordered by time:

- With a CLI, one would say "list me all .mp3 files ordered by time" "ls -lt *.mp3";

- With a GUI, one would say "list all files" (open the folder), "show me all MP3s" (by filtering the view or searching within the current directory), "order by time" (click the time column).

Reply Parent Score: 3