GUI vs Command Line — a Unified Design

By Xah Lee. Date: ,

Problems of Graphics User Interface

GUI is great, especially for new users. Though, there are many problems with GUI. Example:

Instruction on using it becomes elaborate and imprecise. Also, the GUI changes overtime (just consider how to turn off cookies in web browser), so instruction becomes ineffective. When in a programing environment, GUI apps can't be precisely controlled, as API.

For example, try to tell a newbie how to change mouse settings. It goes like this: go to the menu at lower left, then you should see a Control Panel menu somewhere, open it, click on upper right to list all items, then you should see the one with mouse icon, double click it, then there should be a tab named xyz, in there, left panel, there's a sub tab, click that, then there's a slider….

Problems of Command Line Interface

Command line is great, efficient, precise, but it suffers for many inherent problems in textual interface. Typically, it's incomprehensible, even if a well designed one. You really have to be a programer and read most of its manuals and have significant experience with it to be able to use it. (For example, consider unix's shell commands) Even then, many things it just falls short. For example: in GUI, you can list things, and scroll, or see CPU usage graphs. The use of infographic or other visual elements are a order of magnitude beyond what command line tools can offer. (best example is trying to understand statistical data, by numbers, or by a graph.)

For example, let's say the Linux package system dpkg or apt-get. 〔➤see Linux: Package System {dpkg, apt-get} Notes〕 With command line, you are completely lost on what to do. You need to read a tutorial first. But if you use a GUI such as Synaptic, you don't need to spend a few hours to study it. You can use it fruitfully right away. When you consider the millions of software out there, it's clear that graphical interface is a order of magnitude superior in general.

A Unified Solution

So, i just came up with one unified grand scheme of user interface design.

Here's a very quick sketch. To resolve this, the GUI tool, will basically be like Microsoft Windows 95's GUI system, of windows menu plus Alt key mechanism. Every command is tied to a sequence of key press, starting with a key such as Alt. Also, EVERY command correspond to a menu item. Also, the key sequence will be unique, and NEVER change. This way, the key sequence serves as a ID for the command.

So, we have 3 set of things: {① commands, ② key sequence, ③ Menu}. And there's a one-to-one map between them (or, something similar. One-to-one map between all three may be too strong. We might just require a one-to-one map between key and menu, and these will map to command space, like a function.)

And, when Alt is pressed, the menu should be invoked visually, unless the complete key sequence is pressed very fast, in that case the key sequence function as keyboard shortcut.

This is a quick sketch of the idea. Will have to expand on this later.


Google Plus discussion


discovered Archy UI by Jef Raskin (1943 – 2005). In many ways, the ideas are similar.

Archy is a software system whose user interface poses a radically different approach for interacting with computers with respect to traditional graphical user interfaces. Designed by human-computer interface expert Jef Raskin, it embodies his ideas and established results about human-centered design described in his book The Humane Interface. These ideas include content persistence, modelessness, a nucleus with commands instead of applications, navigation using incremental text search, and a zooming user interface (ZUI). The system was being implemented at the Raskin Center for Humane Interfaces under Raskin's leadership. Since his death in February 2005 the project was continued by his team, which later shifted focus to the Ubiquity extension for the Firefox browser.

Archy in large part builds on Raskin's earlier work with the Apple Macintosh, Canon Cat, SwyftWare, and Ken Perlin's Pad ZUI system. It can be described as a combination of Canon Cat's text processing functions with a modern ZUI. Archy is more radically different from established systems than are Sun Microsystems' Project Looking Glass and Microsoft Research's “Task Gallery” prototype. While these systems build upon the WIMP desktop paradigm, Archy has been compared as similar to the Emacs text editor, although its design begins from a clean slate.

Archy used to be called The Humane Environment (“THE”). On January 1, 2005, Raskin announced the new name, and that Archy would be further developed by the non-profit Raskin Center for Humane Interfaces. The name “Archy” is a play on the Center's acronym, R-CHI. It is also an allusion to Don Marquis' archy and mehitabel poetry. Jef Raskin jokingly stated: “Yes, we named our software after a bug.”[1] (a cockroach), further playing with the meaning of bugs in software.