>We've ended up in a world where power users have been forgotten.
I think its more like the OS vendors have stopped being operating system vendors, and are now - instead - vendors of eyeballs to advertisers.
The less the user is GUI'ing, the more they are just watching, placid, whatever else is on their screen.
For native apps to survive, they need to not be platform-specific - i.e. web apps, which require a browser and all its responsibilities - but rather cross-platform, reliable, predictable on all platforms - i.e. dissuaded from using native, but rather bespoke, UI frameworks.
This is attainable and there are many great examples of apps which are in fact, old wheels not re-invented, which still work for their particular user market.
I have the most respect for apps I can use on MacOS, Windows, and Linux - with the same hotkey/user experience on all platforms, equitably - and the least respect for apps which 'only run on one of them', since that is of course nonsense in this day and age.
The cognitive load of doing a web app that can do all the things a native app can do, is equivalent to the load required to build a cross-platform app using native frameworks, so ..
It seems you fumbled your starmenue click, the start menue will be right back, right after these messages.
>i.e. dissuaded from using native, but rather bespoke, UI frameworks.
Based on my experience, I would be quite reluctant to rely on any non-native cross-platform desktop UI framework that is not web-based. These tend to be either less performant, look outdated or are bug-ridden.
What about Qt? It is the gold standard for cross-platform desktop UI frameworks.
It is (1) performant (C++-based), (2) does not look outdated, and (3) not bug-ridden.
Qt apps don't feel great on macOS, though it's by far the best for mac-ish UI. Dropbox was Qt for a long time and I'd argue it worked well for them. Its easy to fall into "uncanny valley".
On Linux, Qt apps feel a bit off in GNOME, though you can never satisfy everyone as its the wild west.
I think Qt also suffers from not really being anyone's favourite.
On the one hand, you have web developers who tend to not really appreciate the nuance of the desktop as a platform. They're not going to advocate for Qt, it's not CSS/HTML/JS.
On the other hand, you have native Mac developers who love Apple's toolkits (AppKit, maybe SwiftUI). They're not going to advocate for Qt either.
Lastly, you have native Windows developers who have been burned so many times they don't advocate for anything in life anymore.
I think Qt is only missing well-written, feature-complete bindings for a major JS runtime, including support for hot reload.
Developing UIs without hot reloading is too painful.
I think what you're asking for has existed for a long, long time. QML.
QML doesn't have a way to define interfaces with JSX and doesn't integrate with the wider JS tooling. From my very limited experience, it still feels too close to the C++ world.
In my experience:
- Qt Widgets worked fine, but looked like a piece of software made in 2013;
- QML looks stylish and is a very nice language, but had a lot of weird bugs.
Neither of these are issues I'd run with if I were to make a web app.
> - Qt Widgets worked fine, but looked like a piece of software made in 2013;
That's too bad, because I prefer software which looks like it was made in 1999.
Widgets looks like whatever you want them to look like, if the feel like they're from the 2010s its because the implementer made that choice, not because of a limitation in qtwidgets.
Could be, but I am mostly speaking about the fact that making a web app looks stylish feels infinitely easier to me.
That's your prerogative, but web-based UI's have their hard limits, and native cross-platform desktop UI's are no more/less problematic than the browser.
> I have the most respect for apps I can use on MacOS, Windows, and Linux - with the same hotkey/user experience on all platforms, equitably - and the least respect for apps which 'only run on one of them', since that is of course nonsense in this day and age.
No. I want things like keyboard shortcuts to reflect the platform norms of where the app is running (macOS in my case). A shared core is fine, but the UI framework must be native to be acceptable. Ghostty is a "gold standard" there.
This is why most web apps are lowest-common-denominator annoyances that I will not use.
Indeed, if the framework is sensible, keyboard shortcuts reflecting platform norms is entirely attainable in a manner that developers don't have to bother with it, much, if they don't want to.
There are plenty of examples of cross-platform UI's surviving the hotkey dance and attaining user satisfaction. There are of course poor examples too, but that's a reflection of care, not effort.