logoalt Hacker News

bbor • today at 7:04 PM • 3 replies • view on HN

Ok I'd like to bring up something a bit more bold/controversial: why are we building big TUIs at all? Like... ever? Isn't it pretty trivial to make your rust GUI native across the three major operating systems these days, or am I underestimating that?

I prefer a TUI to a heavy Electron app, don't get me wrong. But Helix (& Mitos!) seem like a baffling choice compared to Sublime Text. Not worse: I literally don't understand the appeal.


Replies

saghm • today at 8:16 PM

I think you're underestimating this. I released a GUI app in Rust earlier this year, and I already feel like it was a headache because there was pretty much no way to avoid dynamically linking a bunch of stuff, at which point any confidence of it working across various distros went out the window, so I had to settle for an AppImage as the only binary that I distributed. I wasn't even trying to target Windows or MacOS but I have to assume that would complicate things at least as much.

I'm not saying it's insurmountable, but I don't think it's accurate to call it "trivial". There are comments on this thread mentioning that Helix hasn't released in a while but that it's relatively straightforward to build from source; I'm not confident that would be easy to preserve for a full GUI.

redrobein • today at 8:42 PM

It's a lot easier to write and customize tuis. And it works over ssh. The appeal is probably that it's good, performant, functioning software. As a counterpoint what's the appeal of sublime over vim? What is the gui providing that I don't already have?

schrodinger • today at 7:56 PM

How would you do it? Honestly curious?

If I were to build an editor, I’d want the GUI platform-native so would probably go straight for Xcode and Swift.

If I had a strong aversion to Swift, I might consider a hybrid design where the UI is Swift and write a backend in a modern, fast language I prefer (Go/Rust/C# come to mind, but this isn’t a call-to-arms in the language wars). I believe this could be achieved since LSP works well as a backend server supplying IDE-level niceties, so I could keep most functionality implementations there. I’d have to have a strong reason though since Swift is a fine language, and AI does much of the writing now.

Then again, most devs live on a Mac and deploy to Linux, and are increasingly using Agents which may be better off cloud-hosted or at least sandboxed, so lightweight Swift UI and most logic in a headless cli app could be an interesting design choice.

But the important part to me would be low-bloat and native UI, and I’ve never found cross-platform UI frameworks to hold up in practice — even if only because different OSes necessarily have different ideas of idiomatic design, so you’d either be using least common denominator UI components that feel uncanny, or reimplementing the UI for each platform.

Have you found a language / framework combo that’s fast, fits into the OS well, and is _fun_ to write and use? Or is your idea that separate implementations are now so low cost — who cares — let the AI maintain them?

Legitimately asking in good faith, so please don’t interpret anything as snippy in there — it’s just my understanding of the state of the world. I’d genuinely love to learn about how cross-platform options have expanded if I’m missing something!

➕ show 1 reply