4 ms·
The more you look into these trendy TUIs the worse it gets -- it's like the developers took the accumulation of all the worst practices since the dawn of progra
by btbuildem 5mo ago
The more you look into these trendy TUIs the worse it gets -- it's like the developers took the accumulation of all the worst practices since the dawn of programming, and wrapped it all into one unwieldy, overweight, under-performant gelatinous blob that threatens to collapse under its own weight.
- MBCook 5mo agoThey’re not terminal UIs. They’re attempts at pretending to have Windows (etc.) GUIs in a terminal. Same stuff people made for DOS when Windows wasn’t common or good enough yet. I’m not surprised they’re a disaster. Or built without understanding the abilities of the terminal they’re running on.
- sethaurus 5mo agoIf you don't want people calling these apps TUIs, what would you prefer people call them? And what does the term TUI refer to, if not this?
- bitwize 5mo agoText User Interface.
- ColonelPhantom 5mo agoBut what _is_ a "Text User Interface"? Google Images just returns what is being discussed here: "GUIs" that run in some kind of text mode. And to me, that's also what a TUI is. A more textually oriented environment (like a normal Unix shell) is, in my experience, usually referred to as a CLI: Command Line Interface. I did find an interesting hybrid in the Pi coding agent: it seems to leverage the normal terminal scrollback, while still enhancing it with things like transient input fields and status lines, so that it can display those without cluttering scrollback.
- bitwize 5mo agoThat's pretty much the distinction. A CLI is stream-oriented, may accept user input from standard in and/or write to standard out with buffered I/O; a TUI is full-screen, interactive (responds immediately to keystrokes), and uses text characters to represent visual elements.
- MBCook 5mo agoAnd that’s where my comment came in. I see TUI as a more general term: a program based in a terminal. In my mind it does not imply it has to be an ASCII GUI style thing and not just a stream oriented non-interactive program.
- JamesSwift 5mo agoASCII art (or ASCII art interface)
- kordlessagain 5mo agoA shell is the environmental manager, the terminal is the display device, and the window is the container. Add in tabs, web panes and sticky notes + make it all agentic, you get Hyperia: https://hyperia.nuts.services https://hyperia.nuts.services
- dspillett 5mo ago> They’re not terminal UIs. Actually, I think that is close to a good name for them: Terminal-based GUIs. Some are pretty useful, for instance I like lazygit as a simple dashboard/panel for a small repo (or when making small changes to a larger one), some make me wonder what those who made them were smoking! The less silly ones are handy when you are tinkering with a far away machine and want something a little more interactive than CLI commands and stuff connected by pipes and scripts but don't want to deal with the latency of GUI remoting. Some, though, are so badly thought out that they are slower than using a browser over long-distance X…
- MBCook 5mo agoThere are useful ones. Something like Midnight Commander can be way better than lots of manual copy and move commands. The kernel config one is way nicer than the stream style kernel configuration tool. Some of these newer ones are starting to feel more like “text mode bling” than useful. My objection to TUI is I don’t think it’s clear enough for what’s happening here. I think you could easily argue that applies to most readline style stream CLI programs. Would you call a fully 3D UI in VR, not a planar in the VR world but true 3D, a GUI? It is graphical by definition. But if you talked to someone about a GUI that’s not what they’d think you’re talking about without additional context. That’s my objection. I think TUI implies way less than what these programs are doing. Yeah it can describe them but I don’t think it should be the word for them.
- coldtea 5mo ago>They’re not terminal UIs. They’re attempts at pretending to have Windows (etc.) GUIs in a terminal. That's what a terminal UI is, and has been since Emacs was a thing.
- elch 5mo agoReal UNIX terminal: https://youtu.be/Pr1XXvSaVUQ https://youtu.be/Pr1XXvSaVUQ Also terminal: https://www.youtube.com/watch?v=1gUd8yVZ2kA https://www.youtube.com/watch?v=1gUd8yVZ2kA Terminal: https://youtu.be/frMwsDTjmAs?t=493 https://youtu.be/frMwsDTjmAs?t=493
- em-bee 5mo agothe first and second are graphics terminals which is muddling up the definition. of course they were called terminals back then until we decided to make a distinction. what they are called is not the point. the point is the distinction. for today's discussion terminal means text without graphics, as shown in the third video. the real question is why are we still using text terminals? the short answer is that on remote connections graphics is still a performance issue. in fact the popular solution to making remote graphics performant is webbrowsers. they are the graphical terminals of today. if i want to build a graphical interface to a remote service, then i build a webinterface. locally, the answer is historical tools, and that text interfaces are easier to develop and still more efficient to use. but not easier. especially commandline tools without an actual visual interface. i just had this situation. the dolphin filemanager has a feature to add tags and comments to files. the interface is very clunky. but there is a commandline that lets me set those tags and comments which is much more efficient once you learned how to use that command.
- elch 5mo agoAs for the third example, note that the programs discussed here (arguably TUI) are unlikely to work on this type of terminal. Unless the program has a built-in mode that allows it to run in true command-line mode (arguably CLI). Just like vi/ex. Of course, these were just examples to show that a computer terminal didn’t have to - and doesn’t have to - be like a VT100 or similar. And I realize that nowadays, when we hear the word "terminal," we tend to think of something like a VT100. Especially since the Linux (kernel) includes emulation for something like that. However, historically, the first devices to be called computer terminals (and to enable interactive operation) were typewriters and teletypes. That is why one of the names given to newer CRT terminals was "glass teletypes." To distinguish these terminals from their predecessors, they were also referred as video terminals (VT) or video display units (VDU) etc. Note that in addition to built-in VT102/VT220 emulation, xterm also includes built-in Tektronix 4014 emulation, which, to use your terminology, is a graphics terminal. But on the topic, IMHO those "text terminals" represent the lowest common denominator, and using them as a user interface causes the least friction compared to true GUIs. For example, after booting Linux, I can basically start using those TUI programs right away without having to install or configure a graphical environment (X11 or Wayland). Remote computing also causes less friction and can essentially be used out of the box. And TUI programs, like GUI programs, also make it easier and faster to explore compared to programs that run exclusively in CLI mode. Personally I regret that Plan9-style computing and Oberon/ACME user interfaces didn’t become mainstream...