So much of what people like about terminals isn't really about plain text!
- low latency
- information density
- ability to automate (even copy and paste, not just scripting)
I also like how you create a trail through your actions. You can scroll back to see exactly what command did what, with what parameters, and what was returned. Feels much more "modeless" than most GUIs, where things keep getting stacked on top of your screen.
On a technical level, a CLUI command is conceptually similar to a file path or URL. Since a complete CLUI command is simply a path down the command tree, each potential subcommand is like a portion of a file path or URL. Flags, on the other hand, function like query parameters. CLUI's resemblance to URL paths means you can send someone a complete, executable CLUI command as a URL.
query -> result
The below operation is equivalent to type
(export-image :format "jpeg" :scaling 2)in the console and hit enter.
Strangely, I don't actually know of any APIs that are intentionally designed with autocomplete in mind. I do know many APIs, such as Processing, that are designed for brevity, which is irrelevant in an environment with good autocomplete.
— Bret Victor - Learnable Programming