Twenty years ago, most of us thought TUI applications were going to disappear. TUI were just a vestige of low capabilities computers. There was no reason for TUI not to die with the rise of the personal computer.
This didn't happen. We still love to use TUI applications.
Why can be kind of mysterious.
The question I'm interested in is Why are TUI applications (still) attractive to users?.
I've sill not made my mind clear on this. So this blog post is still a draft and you'd be welcome on my chat to explain me how I'm stupid, or blind, or give me your personal insights.
First, let's assert some facts, so that they don't come in the way:
- GUI capabilities are far more important than TUI. Just think about mouse hovering, pixel precise drawing, precise reliable colors, etc.
- for people not used to it, the terminal looks weird and alien
- TUI applications are often a first step to help draft a new thing without building a GUI
I'm not trying to determine which is better, but to understand why TUI applications didn't disappear, and don't seem to be declining in use.
The question arised when I wondered why I like and want and make TUI applications.
So I'll try to gather and understand the reasons here.
And I may also keep this blog post as a place to send people to when they ask me why I still make terminal applications while there's been GUI for decades.
Let's put away some very unsuffisant reasons:
- it's not about automation. You almost never use
lsor other console applications because you automated something, but you still use them
- it's not mainly about availability. You have GUI alternatives everywhere
TUI applications, as their name implies, are extensions of the terminal usage, and they make sense because we're often in the terminal.
So the first step in the explanation is why we're in the terminal to start with.
Here, in my mind, are the best advantages of the terminal:
- terminal commands are easy to describe (meaning they're made of the same atoms as your description: words). Words are also how we evolve to memorize and combine things. So terminal commands are easy to remember in a precise way (at least the parts that aren't
- the access is uniform. You may have two computers, or just reinstalled, typing the command is done the same way
- the representation is uniform, you don't have to scan the screen, then to adapt your vision to the shapes and decipher the set of symbols by which the application communicates
- it's fast to read because your eyes are already on the letters you type, then on the command output
- a command is launched with just hitting a few keys then enter, without a complex hand gymnastic
- there's the continuity with operations on remote computers. Even when those servers could be connected with a remote desktop connection, it would be a different computer, with icons at different places, GUI applications with different versions and organizations. While the terminal doesn't change at all when using a ssh connection (only the prompt will change). TUI applications can easily be used on your remote server. Windowless servers didn't disappear. It's even "remote desktop" which feels incredibly stupid today.
Most importantly IMO, console applications don't break your flow.
There are several ways a GUI makes you adapt to a whole environment, make you lose time and focus for a big context switch.
Meanwhile an application in your console
- is launched with just hitting a few keys then enter, without a complex hand gymnastic
- appears immediately
- appears in the exact area you expect it to, the area you're looking at
- appears with characters you can read without adaptation: the same size and font
- is ready to take your input without asking you to move your hands
- use movements you're used to
- disappears cleanly and without a fuss
- lets you where you expect to be, with the log of previous actions
Those advantages are very important for very short tasks and when you already "live" in your terminal.
Most of those arguments apply to TUI applications. And I'll argue that the appeal of a terminal application is decreased when you part from those arguments, which leads me to a practical list of possible errors a TUI application can die of:
- not communicating with text
- not appearing and disappearing instantly (more than 100 ms doesn't feel instant)
- not being responsive and instant during its use
- not letting the terminal clean after its end (i.e. same than before with just a few useful lines if needed)
- using colors or shapes which make the user takes too much time to adapt to
- having the information spread everywhere in small spots and requiring your eyes to scan and jump too much
- asking you to click or do manipulations before you can type what matters for control
The TUI application must not break your flow.
There's no conclusion here... yet