Top
Best
New

Posted by underdeserver 2 days ago

Stop Making TUIs(sockpuppet.org)
386 points | 509 commentspage 16
frou_dh 22 hours ago|
The typical TUI fan is a nerd with no clue about typography so therefore they don't notice any problem with being shown elements that have no reason to be monospaced in monospace.

i.e. ignorance is bliss in the world of typography.

Gormo 11 hours ago|
Perhaps the average TUI fan is someone who correctly recognizes the negligible relevance of typography in optimizing their computing workflows, and prefers monospace fonts for purely functional reasons, which naturally take precedence over merely aesthetic concerns when working with functional tools.

The total abandonment of the form-follows-function principle on the part of purely visual designers, who worry about what software looks like without considering what it's for, has led to 10-15 years of cumulative usability degradation in almost all categories of software. TUI and CLI software remains one of the last bastions of people actually designing interfaces for functionality and usability.

frou_dh 9 hours ago||
You can't dismiss typography as irrelevant and trivial aesthetics. It's a whole field encompassing many things including legibility to humans. There's nothing more "functional" than principled crafting of legibility for each UI element. And no, a crude "Just use the same font in a single size for everything" approach is not the endgame for legibility.

Just because there have been some crappy industry trends doesn't mean the answer is to turn away and permanently regress to the confines of a terminal emulator.

tptacek 13 hours ago||
I don't like TUIs. And, having built several, and then having the experience of building meaningfully complex native UI for the first time in my career, I couldn't help noticing how much of the tedious work of putting a TUI together, even with a good framework, is already solved (and solved well) by the native framework. TUIs force you to implement things native UI developers aren't supposed to fuck with at all. That was radicalizing for me.

So one reason to write this post is just to send a bulletin to developers like me, for whom it wouldn't have even occurred to build native UI before. Native UI is now a thoroughly solved problem. All "off the rack" user interface is solved now.

But that's not the biggest thing happening here.

What's really going to destabilize us is what this says about computer usage and computer programming. When I was a little kid, in the mid-1980s, I imagined all sorts of new different things I could do with a computer, if we ever got one besides the ZX81 clone that plugged into our TV.

I had to grow up to become a computer programmer to learn that one doesn't simply tell a computer to do new things, that there's an elaborate ritual to build anything useful, and it takes years to get comfortable with those rituals. And like most other programmers, and really craftspeople of all stripes, I came to appreciate the rituals and the specialized knowledge. They're part of my identity, so I tend not to question them.

But there's always been this dividing line between computer users and computer programmers. It's rarely disrupted. It happened once with spreadsheets (our profession has a sort of Kubler-Ross thing going on with the fact that Excel formulae are the world's most important programming language), and maybe just a little bit with HTML in the early web. Other than that, we've all been pretty siloed.

That's obviously about to change, in a more significant way than it ever has before. Computers are going to work the way I assumed they did when I was 7. The line between programmer and power user is going to dissolve.

I'm not interested in what that does to our profession or the question of whether or not there will always be a need for serious software craft or engineering or whatnot. Totally valid question, but not where I'm coming from.

I'm interested in what systems look like in this new world we're heading into. What is an operating system in a world where most applications are summoned by the person who's going to use them? What even is an application at that point? What are the interface idioms when we're truly no longer constrained by text inputs to compilers and program building tools? Does everything look more like Smalltalk? Like a Lisp Machine? Or like something weirder? It's gotta be something. It can't possibly be the case that the shape of computing we all count on today is going to survive the next 15 years; it'd be like driving steam-powered automobiles.

That's the fun question.

scythe 7 hours ago||
>Finally, I can think of one strong argument for TUIs: they’re cross-platform.

>[...]

>But remember: I’m not really building applications for other people to use. I’m building them for me.

Giant caveat to the whole argument and it's buried 80% of the way down. Granted, he alludes to that a little earlier, but if other people using your application are a completely irrelevant outcome, you're an unusual case.

I mean, sure, I make tiny one-offs, but those barely even have something you could call a CLI. I push as much complexity into command-line options and config files as possible.

ewy1 17 hours ago||
this blog post is mostly shadowboxing and showing off their llm-made software; kind of disappointing
z3c0 17 hours ago|
Yeah, the holier-than-thou vibe-coder is a new cliche I'm not enjoying.
Hizonner 1 day ago||
"Stop liking things I don't like!!"
newtonianrules 1 day ago||
No.
rrr_oh_man 12 hours ago||
This reeks of AI slop.

> Our field has a weird relationship with terminal and command line interfaces. The time has come to re-evaluate it.

Why? Why is infatuation weird? Why should we reevaluate it? The whole premise sounds like a "give me a hot take on XYZ".

(I built itter.sh so I'm biased)

stego-tech 18 hours ago||
Just adding in my perspective:

TUIs, at least to me and some friends in my circles, do something that native applications don’t: demand focus from the user.

Sure, modern terminals and TTY environments have visual tabs and virtual terminals that let you quickly toggle between multiple apps, and you can of course manually code your screen to split apps across a single “window” if you really want to get into the guts of things.

But for several folks in my close circles (myself included), the fact that each TUI occupies an entire screen by default, forces us to focus on what’s going on and what tasks we’re trying to accomplish in a way native UIs don’t. On the desktop I can flit between Discord and Telegram and multiple games and several Firefox windows full of tabs and the video encode I’m working on and hey did that bank transaction go through let’s check my email except UGH music streaming went off the rails so let me go back to my client and-

You get the idea. For folks who lack the neurotransmitters to maintain consistent focus or wave off distractions, a terminal environment acts as an accessibility device in and of itself. btop on 1, irssi on 2, Hermes (Qwen 35B) on 3, with 4 as my primary workspace and 5 as a fallback. Simple. Clean. Efficient. Lightweight.

I generally concur with the author that we should be “summoning” (I love that word for reasons that deserve their own essay/comment) more native UI apps that are as information-dense as, well, Bloomberg Terminal. There’s no reason we can’t build something as powerful and focused for the everyman for, say, inventory collections, or K8s constructs, or network architecture, all in a native UI. There’s nothing wrong with the GUI, only that at some point we let ourselves get suckered for the narrative that GUIs have to be easy, simple, and opaque, as opposed to transparent and (logically) complex. We can and should build GUIs that flow logically like the commands they’re executing behind the scenes; hell, we should be able to open a console log of every action we took in the GUI and the associated command(s) it executed, so we can better learn to transpose from GUI to CLI ourselves and build more capable or complex automations.

GUI isn’t bad. TUI isn’t bad. What’s bad is presuming one or the other is superior to everything (or for everyone) else, or worse, assuming one cannot function in a given way comparable or equivalent to the other.

rvz 23 hours ago||
Old man yells at terminal.

Who tf cares about what the author who appears to be new to building native desktop apps (and vibe codes them) says about terminal apps?

I am not writing my code 3 times for each native platform even for agents and then dealing with signing keys just for it to break on a OS update. Terminal apps for developers survive all of this.

The entire article is just a massive rant with woefully weak points. I guess agents really does amplifies both Gell-Mann Amnesia and Dunning-Kruger in others.

mkayokay 22 hours ago|
[dead]
More comments...