Building for humans versus machines
CLIs have a long history where their interactions were tailored for other programs and machines. Their design was more similar to functions within a program than a graphical interface. Because of this, many Unix programs today still operate under the assumption that they will be interacting with another program.
Today, however, CLIs are more often used by humans than other machines while still carrying an outdated interaction design. It’s time that we built CLIs for their primary user—the human.
In this section, we will compare the machine-first design to the human-first design and learn how to check whether you are outputting to the TTY. As we can recall from Chapter 1, Understanding CLI Standards, TTY is short for TeleTYpewriter, which evolved into the input and output device to interact with large mainframes. In today’s world, desktop environments for operating systems, or OSs for short, provide a terminal window. This...