76
submitted 3 days ago* (last edited 3 days ago) by onlinepersona@programming.dev to c/programming@programming.dev

Desktop web-apps won. Simply because native UI libraries never evolved past their 90s days. Either the UI is defined in some DSL, that's loaded (or compiled) and then you spend most of the time writing getElement(pathToElement) and wiring it up, or you have to boilerplate create each element and parent.addChild(element).

And wiring it up is also a pain. Send a signal or event, add a listener or slot, or whatever fancy name each framework comes up with, and if you have to modify another element, it means querying for it, or having a singleton, or passing a reference/pointer, or whatever. It's so friggin-old school.

In the meanwhile, the web discovered reactivity, components, declaring the UI and having the logic in the same file, live debugging, tight development loops, and so much more.

Is it just too difficult for native frameworks? Is it a sunken cost issue or fear of breaking backwards compatibility? Why can't native UI development be as easy and approachable as web dev?

Don't get me wrong, I need webdev like a child needs cancer, but I've tried Slint, imGUi, Qt, Gtk, wxWidgets, and more and the experience makes me want to blow my brains out every single time. I dread writing any native GUI that I got desperate enough to try writing a TUI but that's unbelievably worse!

It's gotten so bad, that Tauri and Dioxus are now on the menu. I never wanted to mix web dev into my native applications, but it feels like the abominably anachronistic state of native UI development is just forcing not only me, but anybody who wants to have a good experience writing native UI apps (especially those that are multi-platform), to use a fucking web view! A memory-hogging web view!

you are viewing a single comment's thread
view the rest of the comments
[-] tal@lemmy.today 15 points 3 days ago* (last edited 3 days ago)

I'm pretty sure that most developers that use web UIs do so for portability.

There are non-Web-based cross-platform GUI toolkits, like Java's Swing.

As to why cross-platform desktop toolkits haven't really caught on...I'd say that it's because there are things that you can't really abstract all that well. There are ways that a well-written MacOS app should function, ways that a well-written Windows app should function, ways that a well-written GTK app should function, and so forth.

EDIT:

I dread writing any native GUI that I got desperate enough to try writing a TUI but that’s unbelievably worse!

Honestly, the same is true of TUIs, too. Like, MS-DOS/Windows TUI conventions and Unix TUI conventions aren't really the same. Like, in a typical Unix TUI program, I expect "q" probably quits. At text prompts, I expect that I probably have readline support and likely the vi/emacs key support there. It probably defaults to white-on-black. In an MS-DOS TUI program, Escape probably exits, and I'm probably using white-on-blue. I'm probably using Code Page 437 box-drawing characters.

EDIT2: ncdu on Unix:

WordPerfect for DOS:

this post was submitted on 09 May 2026
76 points (100.0% liked)

Programming

26895 readers
224 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS