Comment by shiandow
13 hours ago
What I find must puzzling is that everyone seems to just be violating basic rules that had been in place for ages.
Things like:
- If you can't respond to a UI event wait until you can
- Menus should be tree structures
- Pressing alt should underline the hotkeys you need to access anything clickable
As well as just basic responsiveness or predictability. A 2000 era windows application may not have been pretty, and may well have several different styles all imitated from office, but at least I knew what everything did and when it was slow at least it did what I expected.
This meant I could start the computer, log in, potentially start and use several applications and only then turn on the screen. Nowadays that has no chance of working because even to log in I need to press enter or click some button (which one depends on how I logged in previously, maybe) before I can even start typing and doing so eats a random amount of keystrokes while the damn log in screen loads to do its one damn job.
It's because we went from the Desktop environment, where rules were well-documented and standardized, to the Web/Mobile environment, where rules had to be reinvented and, for the most part, were not.
We've lost design idioms, which is a huge tax on users everywhere. I've been mad about this for years: https://essays.johnloeber.com/p/4-bring-back-idiomatic-desig...
Over the past year I've started thinking a lot more about design and UI work, and I think it's basically impossible to design things, or create design systems, that appeal broadly to different types of users in a cross-platform way.
I personally love dense UIs and have no expectation of doing certain kinds of work on a phone or low-powered device like a chromebook, phone, or bottom-barrel laptop. But if you're a company trying to sell products to a broad user base, you want to try to design in a way that works for those kinds of users because they still might be end-users of your product. And there's a good chance that those platforms may be where someone first evaluates your product (eg from a link shared and accessed on a mobile device) even for the users who do plan on using more powerful desktop devices to do their work.
So instead we get these information poor, incoherent (because it turns out proper cross-platform, cross-user design is much more difficult than just getting something that works cross-platform for all users on its surface) interfaces. I guess I'm writing this just to add, web/mobile have complicated things partially because more than just requiring their own distinct patterns, they each represent a distinct medium that products try to target with the same kind of design. But because they're different mediums, it's like trying to square a circle.
It is absurd that there is no standardized UI toolkit, or rather that the web browser _is_ the standard with is characteristic _lack_ of user interaction idioms.
The fact that there are multiple platforms for UIs* is a huge failure of the industry as a whole. Apple, Microsoft and Google could have had a sit down together at any point in the last 20+ years to push some kind of standard, but they decided not to in order to protect their gardens.
*: a standardized UI platform doesn't necessarily mean a standardized platform. Just standardization of UI-related APIs and drawing.
1 reply →
I'm not convinced that it's possible to create a UI toolkit that works on both desktop and mobile without one compromising the other. It's a bit like trying to design a vehicle that can serve both as a 2-ton pickup truck and as a golf cart; the needs of the two are just too different.
The rules didn't have to be reinvented - web/mobile devs chose to ignore them.
WinForms - It just works.
Any system that needs a straightforward UI for kicking things off, stopping them, logging them, and dragging data files into them..... WinForms.
Bugfree, hardened by the test of time, works on Windows X, Y and Z.
Everything else is just consumer silver sprinkles, and involves faffing around with multiple config files and obscure layout issues.
- clicking a checkbox's label should select/deselect the checkbox
This is one that I hold my devs accountable for. No, I shouldn't have "put it in the spec", because it is the fucking spec.
Some Microsoft managers started suppressing people who reported internal defects, instead of leveling their teams up
That sounds like Goodhart's Law in action.
Bad metrics. That's why Microsoft cleaned house of midlevel managers a couple years ago. But the culture remained in places.
> basic rules that had been in place for ages. Things like: [...]
I am going to add my favorite here, just to rant into the void. A dialog box's options must never be Ok/Cancel. These are not the same sorts of things. "Cancel" is a verb, "Ok" is a noun (in this context). Even if "Ok" is taken to mean the verb "acknowledge", it is still not an alternative to cancelling.
99% of these dialogs should be "[Verb]/Cancel": Change "Ok" to a verb or short phrase indicating the action that will be taken if you press it. Don't do the action if the user hits "cancel". The verb should be something specific like "Delete file" or "Terminate process" and not something useless like "proceed".
We've ended up in a world where power users have been forgotten. Not out of malice, but out of a misguided aim to reduce complexity and achieve consistency with the web.
I would argue that desktop is the platform for power users, and its future depends on them. The keyboard shortcuts, the micro-interactions, the window management -- this stuff is all important when you're using a system for 8+ hours per day.
Yet we risk desktop experiences becoming less useful due to the UI becoming "dumber" as we keep shoehorning websites onto the desktop. Website UI is dumb. It's mouse driven, keyboard is an afterthought. There's no consistency, and you have to re-invent the wheel every time to get the details right (almost never happens).
>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.
10 replies →
> 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.
1 reply →
Mozilla removed a lot of power-user features and customization from Firefox claiming that their telemetry showed that few users used them. That's the reality now, nobody wants to develop and maintain things for the 1%.
>their telemetry showed that few users used them
I wonder if they ever stopped to think that power users are the ones that disable telemetry immediately upon install.
1 reply →
Sometimes this is a self-fulfilling prophecy. It is the novice users who, over time, become power users through repetitive usage. If there are no user efficiency gains to be had through experience in a UI, then it just prevents the emergence of power users. Users just have to wait until a product manager or designer somewhere notices their pain and create a new feature through 10x the effort it would have taken to simply maintain the lower level shortcuts (e.g. keyboard accelerators, simple step automations).
Was it the same 1% that was using each of the long-tail features? I suspect that by refusing to invest effort in at least some amount of niche features, we essentially alienate _everybody_
Personally, its not so much about customisation as it is consistency, quality, and attention to detail.
Being able to keyboard through menus as standard. Focus being deeply considered and always working as expected.
Compact UI elements -- in the 90s/00s we decided buttons should be about 22px tall. Then suddenly they doubled in size.
Browsers like Vivaldi that cater to power users are gaining in popularity. They are not trying to be the next Chrome, they are just out to serve their niche well.
Firefox has nothing to differentiate itself from Chrome at this point.
7 replies →
This resonates deeply. I build native macOS apps in Swift/AppKit and the difference in keyboard-first design between native and web is night and day.
On macOS, if you use standard NSResponder chain and menu items properly, you get Cmd+Z undo, text field navigation, menu bar keyboard access, and accessibility basically for free. The framework was designed around the assumption that users would become experts.
Web apps actively fight this. Every Electron app I use has broken Cmd+` (window cycling), inconsistent text selection behavior, and that characteristic 50-100ms input lag that you stop noticing until you switch back to a native app and remember what "responsive" feels like.
The sad irony is that making a power-user-friendly desktop app is actually less work if you go native, because the frameworks already handle the hard parts. Going web means you have to manually reimplement every platform convention, and almost nobody does.
> We've ended up in a world where power users have been forgotten. Not out of malice, but out of a misguided aim to reduce complexity and achieve consistency with the web.
Power users are less susceptible to suggestion and therefore less profitable. They have largely moved to OSes that do not interfere with their wishes, allowing them to make their own choices about what they can or can't do/run (Eg. Linux).
I know this isn't really your main point but I don't think they've been trying to reduce complexity but rather increasing ease-of-use for the end-user*. Those things are often completely at odds with each other in software as I'm sure you know.
*well, that seems to have been their goal in the past; nowadays it just seems like they've been trying to funnel windows users to their other products and forcing copilot into everything.
If you become a power user you realize that nothing matches the power of the command line. And at that point you also realize that are better OSes that allow you to fully explode the true computing power that is terribly limited and constrained by a GUI.
>And at that point you also realize that are better OSes
Nothing beats Windows 11+WSL2; literally the best of both worlds.
Nonsense. Do you read and write your email using the command line? I use Mutt and Vim for that, and that’s not the command line. GUI with power-user support is just as efficient as Mutt and Vim. Did you use curl to read this thread and submit your comment? I use Firefox with Vimium C, which allows most web pages to be navigated and operated efficiently by keyboard.
1 reply →
The issue is that everyone wants a full-featured remote with only "on, volume, and channel changing" buttons.
> Not out of malice, but out of a misguided aim to reduce complexity and achieve consistency with the web.
The web is not consistent itself. Lots of sites, and most web apps, invent their own UI.
I'm planning on writing a desktop (I've wrote about some of my goals here before) precisely for this reason
> We've ended up in a world where power users have been forgotten.
I think the world changed. "Power users" in the traditional sense use Linux and BSD now. Microsoft and Apple dropped them when they realized how lucrative it would be to dumb things down and make computers more like cable TV.
This is why, for me, year of the Linux desktop was 2008. It's been atrocious since then.
In the future it will all be done by AI, no need for GUI. Just write or say what you want to do
Hopefully /s
Well, Alt+Tab in Windows is supposed to switch windows. That's unless you're in Microsoft Edge where obviously, it switches tabs. Inconsistent and annoying.
Browser tabs are the fault here and browsers are trying to be OS environment, so Alt+Tab is useful for major task switching. I agree it's inconsistent and annoying, but I like Alt+Tab as a way to try to find the window I'm writing that email to someone.
Android and Chrome worked like this for a hot minute too. I assumed the idea was to promote webapps to look like they're first-class citizens, but in practice it's just bizarre and confusing UX.
I hate this too. You can turn it off. In Settings, go to System->Multitasking and change "Show tabs from apps when snapping or pressing Alt+Tab" to "Don't show tabs."
Or better yet, Settings > Apps > Default apps > select a different browser
Because everything got made for smartphones and touchscreens while desktop users are left to suffer in the mediocrity.
> This meant I could start the computer, log in, potentially start and use several applications and only then turn on the screen.
I mean... well... responsiveness matters to me too, and I am impressed by such inspired productivity, but... I'm also confused. Why not turn on the screen - the monitor, right?
Now thinking about how gui lag might impact the sight-impaired, tangential as that is...
It was meant as an example, not a productivity tip ;-)
Anyway the real point is that it's just easier to use something if you don't need constant visual feedback. Being able to use something blind is more than just an accessibility issue it is just better in general.