The terms “ terminal ,” “ shell ,” “ tty ,” and “ console ” get used interchangeably. They shouldn’t be, but the fact that they are tells you something interesting: these concepts are so tightly coupled in practice that generations of developers have gotten by without separating them. The useful question isn’t just “what do these words mean” but “why does knowing the difference change how you think?”
Most developers use a terminal for years before realizing they don’t actually know what a terminal is. They know how to use one. They couldn’t define one. This is fine, in the same way that most people drive cars without understanding combustion. But every so often, something breaks in a way that makes the distinction matter, and then you’re stuck.
i'm building, a coding agent that continuously learns your coding taste. helps me code 10x faster with lot less AI slop.
This piece covers the full stack: from the vocabulary that trips people up, all the way down to building a TUI (Text User Interface) app from scratch. If you’ve ever wondered what vim is actually doing when it takes over your screen, or why Raw Mode exists, or what ANSI escape sequences are, this is the piece.
They used to be the same thing#
This is the key insight. All four words originally described the same physical object.
In the 1960s, you interacted with a computer by sitting at a machine with a keyboard and a printer. That machine had three names depending on who was talking about it:
┌───────────────────────────────────── │ ┌─────────────────────────────── │ │ $ hello world_ │ <-- "Console" (physical device) │ │ │ <-- "Terminal" (end of a wire) │ │ │ <-- "TTY" (it's a teletypewriter) │ └─────────────────────────────── │ ┌─────────────────────────────── │ │ ┌───┐┌───┐┌───┐┌───┐┌───┐ │ │ │ Q ││ W ││ E ││ R ││ T │... │ │ └───┘└───┘└───┘└───┘└───┘ │ └─────────────────────────────── └───────────────────────────────────── │ │ wire │ ┌───────┴──────── │ MAINFRAME │ COMPUTER └────────────────
Three names, one thing. That’s why they blur together. As hardware evolved into software, each word drifted toward its own meaning. But they drifted slowly.
Part 1: The Vocabulary#
... continue reading