This site will look much better in a browser that supports web standards, but is accessible to any browser or Internet device.
When I originally approached this topic, I wanted to explain to those GUI users why a TUI is more powerful. As I tried to write down my opinions, I realized that once again this was more a case of it depends than I had thought. I really should know better by now.
In order to level the field for this post, I covered two different views of which is better:
I intended each of these positions to be mostly black and white, with no compromise with any position other than the one I was presenting at the time. Neither one of them completely matches my opinions.
Although I use the GUI on every system I touch, I also have at least 2, and sometimes as many as 5 or 6 terminal windows open on a command line at all times. I've always preferred a TUI to a GUI, but I've had trouble explaining why. Many people might argue that it's as simple as I learned computers before GUIs became common.
Many of the really good programmers I've known also have a preference for working from the command line. Many people just assume that it's a power user thing.
Why does using the command line seem to be a power user thing? What do I mean by power user?
Any computer user falls on a range of different levels of expertise for different activities. Let's say that someone who has never touched or seen the activity or software is a novice. Someone who wrote the code or has worked on that system since it's very beginning is a guru.
In between those levels are varying degrees of competence, from able to solve simple tasks to perform feats of magic that dazzle those with less experience. At the low end of the scale, you tend to spend a lot of time trying to satisfy the requirements of the computer or program. At the upper end of the scale, you make the computer work for you.
A power user is someone on the high end of the scale. They may not know as much as the guru, but their skills and knowledge in the activity exceed the norm. These users are the ones that can really make a system do their bidding.
A power user will usually value their time much more than the computer's time and understand that there is a difference. They will learn how to push as much work as possible onto the computer, rather than doing it themselves. If a task takes three steps, they will try to automate them to only need one. If something needs to be done every day, they will work to make the computer schedule the work to start on its own.
To the power user, a text-based or command line interface is a good thing because it is probably scriptable. Instead of typing 3 commands, I can make a script, or macro that does those 3 commands when I make one request. Most GUIs either don't provide this ability or provide just the ability to record a series of actions a replay them.
While some people develop amazing abilities with graphical programs, they are often limited to what the designer of the program thought you might want to do.
The key step forward for me came with the realization that there are basically two very different modes for using a computer: automating work and extending your capabilities.
Automating work is based on the idea of delegating uninteresting or repetitive work to the computer. Anything that can be done with minimal or no input from you is open for automation. A TUI is great for this kind of work. Its killer feature of scripting makes automating work relatively easy. Part of what makes a power user is the ability to recognie what can be automated and the skills for putting those tasks into a form that can be done by the computer.
This form of automation can make you much more effective by delegating the boring parts of your work to the computer. Automated data collection and manipulation has allowed businesses and the sciences to do amazing things. Once upon a time, those processes were limited by the people you had collecting and manipulating the data. There would inevitably be errors caused by people becoming bored and not being as precise as needed. Computers don't become bored.
GUIs really shine in places where human input is indispensable. In this case, the computer becomes more of an instrument for extending our capabilities. Behind the scenes, there may be a lot of the other kind of automation. But, the key is putting data in front of a human to make a decision or change.
Drawing programs, music creation software, imaging software, and many similar tools all work to control complexity and put the information that the user needs to know at her fingertips. This allows the user to focus on the evaluation or creative aspects of the task.
Sometimes a huge amount of effort is applied to allow the user to visualize data that isn't inherently visible (or, at least with our built-in visual system). Once the data is in a form that we can interpret, a skilled human is much more effective at recognizing surprising aspects of the visualization.
This kind of work is not necessarily repeatable, but humans aren't really good at repeatable. If it's repeatable, let the computer do it and give us the result to work from.
Neither GUIs or TUIs are more powerful in all cases and activities. A person's preference for one or the other is likely due to a combination of what they learned first and what kinds of problems they solve.
That's why even us old command line users normally use GUI desktop systems, even if we cover them with terminal windows for doing real work<grin/>.
Posted by GWade at December 16, 2013 06:47 PM. Email comments