This site will look much better in a browser that supports web standards, but is accessible to any browser or Internet device.

Anomaly ~ G. Wade Johnson Anomaly Home G. Wade Home

December 11, 2013

Why Textual User Interfaces are Better than Graphic User Interfaces

One of the ways that you can separate groups of computer users into groups is by their preferences in user interfaces. A few decades ago, most computer interfaces were simple text. The display hardware didn't support fancy graphics, and the processors weren't fast enough to do the calculations needed for reasonable graphics. As computers and display technology improved, a few companies pushed for graphical user interfaces (GUIs) because they were more user friendly.

Since the text user interfaces (TUIs) are older than the graphical user interfaces (GUIs), some people believe that the TUI is obviously inferior to the GUI. Nothing could be further from the truth. If graphical approaches are obviously superior to text-based approaches, why do humans use language instead of pictures and miming for most of our communication?

Obviously, in some circumstances, a text-based approach must be better than a graphical approach.

A Short History of Early Computer Interfaces

The original computer interfaces were wire. You connected up wires to the appropriate components and made the functionality you wanted. Eventually, people figured out that they could program the computer in terms of binary, 1s and 0s. This was a huge step forward. You didn't need a soldering iron to make changes to the program.

Unfortunately, remembering strings of 1s and 0s is not easy for us humans. Eventually, someone realized that the computer could convert short strings into the appropriate binary code. This gave us an assembler and our first text-based interface.

Attributes of Textual Interfaces

TUIs have many advantages, including

  • precise
  • flexible
  • repeatable
  • can be generated by code
  • expert friendly
  • input by speech recognition

Some of these advantages explain why TUIs are usually regarded as not user friendly. Most TUIs also have some disadvantages, including

  • not easily discoverable
  • requires keyboard/speech input skill
  • often requires some form of grammar
  • novice hostile

Why Text?

A text interface gets its power from the fact that language is one of humanity's most powerful tools. By defining a number of carefully chosen verbs, we can very precisely specify what we want done. Declaring a number of nouns or a protocol for naming nouns allows us to apply these verbs to many different objects.

We can even add attributes that modify the verbs and nouns in arbitrary ways to gain more precision. When the TUI uses a well-defined grammar for combining these verbs, nouns, and other attributes, you can make powerful commands after learning a few short rules.


One complaint that many people have about a TUI is the weird terms that get used. While you might easily be able to understand what copy means, grep doesn't make sense until you learn the lingo. But, this is actually no different from human languages.

Human languages accumulate new terms and jargon all the time. If people don't have a precise enough word for a concept they use a lot, they create a new word. Every human activity that reaches a certain level of complexity causes us to create a special vocabulary for that activity.

Whether you are talking medicine, engineering, football, or music, any field develops its own special language. This language starts out as jargon for a particular group, but in some cases, it eventually becomes part of the mainstream language.

This leads to the biggest disadvantage of TUIs, the need to learn a new language to deal with the interface. To some people, this is a major barrier. But, it shouldn't be, we learn new words all the time.

The Killer Feature

The real killer feature of the TUI, is the ability to save and repeat a set of commands. A well-designed TUI makes repeating commands relatively easy. The ability to get commands either from the keyboard or from a file allows the user to do something remarkable. By giving a name to a set of commands that you want to run, you can now create commands that do what you want to do. You can extend the computer's abilities.

Maybe you do the same 5 things every morning when you come in to work. Wouldn't it be wonderful to type a short command and have those 5 things started for you? Even if those things required that you do something explicitly for each one, the ability to run them with a simple command means that you don't have to do the repetitive work of starting them.

Now imagine that you have a different handful of tasks for each day of the week. Wouldn't it be better to execute the Monday Tasks than to think about which tasks you did last week at this time?

This is the feature that allows expert users of a TUI to do amazing things with a computer in relatively short order.

Command shells usually do more than just allow you to repeat commands. Adding the ability to conditionally execute commands or loop to execute a command multiple times with different arguments moves a simple TUI up to the point of real power use.

Programs Driving Programs

A still more advanced ability of TUIs is the ability to drive them with the output of a program. Since the input is just text, anything that can generate text can potentially serve as input to the TUI. Early dynamic web pages worked this way: take input from a user, format the text as input to a program, return HTML to the user.

Unix systems are famous (or notorious) for their ability to pipe the output of one command to the input of another. This allows a series of simple tools to do quite complex work by chaining them together.

Comparison to GUIs

The ability to easily store and repeat commands is a main reason why a TUI is more powerful than a GUI. With relatively little training, someone can learn to customize their system by adding special purpose commands. All that's needed is an appropriately formatted file of other commands. This file contains commands very similar or identical to ones you are already using.

In general, you can't add features to a GUI by just adding a new gesture or way of clicking. At the minimum, you need access to something like the TUI or a programming language to make your commands, then you can put that somewhere that you can click. There usually isn't an easy way to duplicate the steps you go through each day to make a new command that combines them.

Making the Computer Work for You

To me, the TUI is a tool that allows me to make the computer work for me. I can easily create a command or sequence of commands that will tell the computer to go off and do work for me, without requiring me to babysit it waiting for each step.

One of my favorite examples of this is really simple. Years ago I was working on an MS Windows system and talking with a big fan of GUIs. We were having a good-natured argument about UIs before I noticed that he was doing a lot of clicking. I asked what he was doing and he said he was cleaning backup files out of a directory. He had been selecting individual files and was going to delete them in one go.

I took the keyboard and typed the following in a command window:

del *.bak *.bck

This caused the computer to find all of the files that he was trying to select by hand and deleted them. Later, I realized that I could have changed the explorer window to sort by extension and selected the files more easily. But, the one line command seemed much more obvious to me.

More importantly, there is no way to repeat his steps in another directory to delete the backup files there. You would need to open the directory in explorer and select the right files again by hand. My command could be easily repeated anywhere you want and it would do the right thing in each directory.

That is the power of a TUI.

Posted by GWade at December 11, 2013 03:40 PM. Email comments