← Back to context

Comment by BoppreH

1 day ago

We also lost clearly identifiable buttons, loading bars (replaced with throbbers), status bars that tell you what you're hovering over and what the program is doing, stable UIs to develop muscle memory, etc.

But we did gain some nice things!

- Tabs.

- Titlebar buttons and other space-saving measures.

- Document editors remembering unsaved changes.

- Forms that validate on focus lost, instead of submission.

- Ctrl+P menus to fuzzy-search all actions and settings (we need more of those).

- Easy syncing (if I open Spotify on any device I'll see the same playlists, my clipboard is shared between phone/desktop/notebook, Immich integrates local and remote media, etc).

- Program-specific URL protocols, so that you can click on a link and have it open in a separate program (like `steam://open/games`).

- Map widgets, a small miracle we take for granted.

- Package managers/app stores that cleanly install and uninstall applications.

Titlebar buttons are actually bad. The titlebar exists (or existed) for a reason, so you'd have somewhere you could grab to manipulate the window. Now it's kind of a guessing game with every app on where you can grab without causing the app to do something you didn't want.

  • If that's a problem for you, you have much to gain with better window management shortcuts. On KDE I have the Windows key + left click set to drag a window from anywhere, and win + right click to resize depending on the quadrant the cursor is on. It's incredibly satisfying not having to hunt titlebar empty spaces or thin edges.

    • My main interaction tool with the system is the pointer. Reaching out for the keyboard is something I do when I want to type, but for example when I am consuming content on my computer I just keep a single hand on the mouse or the trackpad. In that case shortcuts are just plain annoying.

      On KDE, something nice is that if you have a maximized window and a panel on the top of the screen, I can drag that panel to grab the window (or maybe it was a setting of Latte dock or something). And since window titlebars nowadays can be cluttered with buttons, it is a predictable way to grab those windows only using the mouse.

    • But do you see that title bar buttons are bad explicitly because you have to hunt for title bar edges?

      That you were more or less forced to adopt these KDE shortcuts so that you could work around the fact that they had cannibalized the title bar for a purpose it was not designed for.

      You were forced to change your workflow and everybody else is having to be forced to adapt because they changed a metaphor that has remained stable on the desktop for over 40 years

      5 replies →

    • The reason they have to put all that crap in the title bar is because of all the other bad UI decisions that used up all the screen space.

    • There's a lot of mouse centric workflows, where you don't want to keep switching between mouse and keyboard all the time.

    • fwiw, when I'm on an OpenBSD desktop, I use cwm which doesn't supply titlebars, and I use Meta+click to move windows. That's great...On OpenBSD. But sometimes I'm using a Windows computer. Sometimes I'm using a Mac.

      ...And sometimes I'm using OpenBSD, so titlebar buttons introduce a titlebar I didn't want, and didn't need, which doesn't match the rest of my desktop customizations.

      It's just a bad paradigm.

  • If they do it correctly there's plenty of free space in the titlebar for grabbing. That's how it works in GTK+3 and later for example.

    • But it causes cognitive overhead: you need to think about which bits of the title-cum-button bar are safe to grab, as opposed to which overloaded and do other things, which are possibly useful.

      I use Firefox. I also use macOS a lot. Firefox assumes your tabs are horizontal. Mine are not (using a built in feature).

      So it doesn't use the title bar much. So there's an option to turn it off. It's off by default. Result, the actual top bar is a cluttered toolbar and it's hard to move the Firefox window.

> Titlebar buttons and other space-saving measures.

This has been net negative. Now everyone thinks it’s ok to shove every control up there and there’s nowhere to grab a window to move it that isn’t also a button. But the OS interprets button click and mouse drag as cancel the button click.

I wish people would stop doing this.

We HAVE HI DPI screens with large resolutions and even 640x480 had title bars!!!!!

What space could possibly need saving?

> Forms that validate on focus lost, instead of submission.

Not always positive. The form briefly loses focus for two seconds (while you open your password manager or whatever) and you are shouted at to “PLEASE ENTER A VALID USERNAME” in red.

> - Tabs.

Tabs aren't really new: look at BeOS which could "tab" windows..

That said I agree with you that tab are really nice, especially the way VSCode manage them with the vertical list of opened files (I switched from vim to VSCode due to this feature).

> loading bars (replaced with throbbers)

There is a very practical reason for this; most GUI apps are webapps (whether local or not is irrelevant), and the fetch API was so poorly thought out that it was not possible to get an indicate of progress - all if gives you is inprogress or done (nothing in between).

As a result the loading indicator can only indicate in-progress or done.

There might have been worse ways to design the fetch API, but off-hand, I can't think of any - what came before it was immensely better for a user experience.

  • With a better API we could have a progress bar that goes through the TCP/IP stack: advance when the domain is resolved, when a handshake is finished, when the request is sent, when the response starts streaming back, when the response finishes.

    It'd be a very jumpy bar, but it helps develop intuitions. "The first part is always slower on this machine", "when it gets stuck on this spot I need to reset my router", "this part will be slow because the request is large", etc.

  • Most of the time you're fetching multiple things in parallel and you could show a progress of how many of those are done (perhaps weighted by estimated size). That's essentially the way many progress bars work.

  • > As a result the loading indicator can only indicate in-progress or done.

    We used to have the cursor indicating this in the good old days.

  • As a result the loading indicator can only indicate in-progress or done.

    This is a failure of whatever framework the web dev is leaning on instead of actually programming the computer.

    It is perfectly possible to get real progress information other than yes/no. Web sites had it for years before lazy spinners took over.

    • >> the fetch API was so poorly thought out that it was not possible to get an indicate of progress - all if gives you is inprogress or done (nothing in between).

      >> As a result the loading indicator can only indicate in-progress or done.

      > This is a failure of whatever framework the web dev is leaning on instead of actually programming the computer.

      No, it's a failure of fetch.

I appreciate this balanced take! Let's hope one day we'll get the best of today's and yesterday's era.

I don't miss the loading bar. The progress in the bar never seems to correlate well with the actual time taken. It's not uncommon to have a progress bar breeze through the first half in seconds and spend minutes on the later half or vice versa. It's misleading to the point I recall "progress bar stuck on 99%" became a meme before people started calling them memes.

Just give me the option to view a log of what is happening under the hood. Tell me which step of the process you are at, what files are you copying etc.

There was a brief moment in history where we had the best of both worlds.

I grew up with Windows XP. We had most of these (except the titlebar buttons — although on second thought some custom Windows Media Player skins did have that, haha).

We all carried USB sticks around. So you always had your files with you. The computer itself was interchangeable, for the most part. (Which also led to my interest in portable apps.)

> - Tabs.

Should have been a generic window manager feature.

  • Apparently Cosmic will even let you combine different apps in the same tab group. I read that but haven't confirmed.

    Web browsers had to innovate because OSes, DEs and GUI toolkits stagnated. Tabs and better sandboxing came from web the browser.

"- Document editors remembering unsaved changes."

This can be really annoying when I don't want to save these changes

But we did gain some nice things!

None of the gains you list have anything to do with user interfaces. They would all or mostly be possible in any of the older desktop environments shown.

  • The screenshots in the post include many old applications, sometimes jarring to modern sensibilities. I think it's fair to have a discussion here about the evolution of application UI too, no?

> Ctrl+P menus to fuzzy-search all actions and settings

Wasn’t that in Emacs for decades?

  • Yes. The macOS menu bar is also searchable, which is cool. Unity on Ubuntu also had this back in the day.

    Most people haven't experienced "addressable interfaces" like Emacs and don't know what they're missing when they only have visuospatial navigability. I would like to see searching and jumping make bigger impacts in mainstream UX design.

  • Probably! To quote William Gibson, "the future is already here — it's just not very evenly distributed". I'm sure you can find some of these features all the way back in The Mother of All Demos, the difference now is that they're more common.