1. Companies will always want to brand their apps with their particular UI styles.
2. In order to prevent the above, the OS would have to deliberately NOT expose the ability for apps to control their own pixels.
Doing 2 means you are making it impossible to support many application types (photo editors, games, etc.).
NOT doing 2 means that app companies will eventually use the same APIs that the photo editor and game applications use.
But realistically, you’re never going to stop a motivated app designer who is dead set on making their app an unique snowflake art project rather than a tool that users need to use.
Because with the current status quo, the platform that dominates everyone's mindshare is HTML/JavaScript/CSS. Which has a really rudimentary concept of UI controls, and human interface guidelines that spend 90% of their effort on begging people to manually implement usability features that we used to get for free with native GUI toolkits. And I think that we might need to get away from that mess before it's possible for anyone to have any energy left over for worrying about HCI on the level that we used to in the late '90s and early '00s.
The only solution is heavy moderation. But very few players have market share to force developers to do what they say.
But someone could just as easily respond to today's UIs with "Yes, it's wonderful that every single app looks identical, as if it was all designed by one pretty boring artist with no creativity whatsoever" and that would also be a perfectly valid take.
When I first used MacOS I was surprised about tute consistency to access the settings of every program, even third party, with the same shortcut cmd+,
Media software and game launchers were usually the worst offenders.
Certainly the late 90s was the heyday of desktop consistency on Windows, in the 95/98/ME era, I think driven largely by the conventions Microsoft established in Office. And I believe Mac OS gave pretty good platform-level guidance then too, so things were generally okay with a few exceptions— stuff like media players that have always been more on the fanciful side.
Microsoft reimplemented this stuff from scratch all the time. Not just in MFC itself but Office too.
So, no, it was quite the opposite - it was uncommon to not rely directly on the basic OS widgets. Off the top of my head, the two toolkits that I remember that didn't do that were Borland's OWL (which quickly died out in post-Win16 era, since Delphi/VCL was strictly better), and Qt, which while not using native widgets tried to approximate that look and feel as much as possible.
Even in Java land, their first take - AWT - wrapped native widgets. It wasn't until Swing that they moved on to rendering their own, and it was widely derided as looking inconsistent with other apps as a result of that.
MS Office had its own UI toolkit and routinely invented new UI paradigms that weren't exposed in any Windows API, leaving people who wanted to look native scrambling to reimplement. This was particularly the case for toolbars. MS Office first invented the so-called "coolbar" and then the ribbon. Internet Explorer also rolled its own toolbar styles in ways not supported in the base Windows API e.g. toolbars with large icons and sliding sub-sections. Inventing custom toolbars was practically a sport on Windows; Netscape also did it.
At the time the most popular media players were WinAmp (totally custom and themeable to boot), RealPlayer (custom UI https://andrewnile.co.uk/blog/remembering-realplayer/), Quicktime (custom UI) and Windows Media Player (mostly but not entirely native).
Even the base utilities that came with Windows weren't consistent with each other. It wasn't uncommon in the Win 9x era to find programs still using Win3.1 style file dialogs ... a few are still buried in Windows today!
The problem got worse when you examined the artwork. The stock icon library in Windows was anemic, so dev platforms frequently had to expand the core library with their own. Delphi apps could be easily identified by the distinctive icons in their buttons (https://zarko-gajic.iz.hr/wp/wp-content/uploads/2017/02/delp...).
Restyling window decorations was also very common. Microsoft themselves did it routinely, for example their flagship Encarta encyclopedia app had totally custom widgets and window styling: https://winworldpc.com/product/encarta/1999
To get online most users were running something like CompuServe (custom web-style main UI https://thedayintech.wordpress.com/wp-content/uploads/2013/0...), or AOL (custom UI https://www.reddit.com/r/nostalgia/comments/ehxb1g/the_aol_h...), or MSN (custom UI https://cdn.prod.website-files.com/6179a66d5f9cc70024c61878/...)
Windows apps of this era were much like web apps are today: they shared some common code for things like rendering menus, buttons or widgets in their settings screens, but the main UI users interacted with were almost always custom widgets that were extremely varied between apps. Win32 was nearly impossible to style compared to HTML so this represented a large investment of developer time, but a custom branded UI was believed to be worth nearly any cost. This is something fundamental to how humans work and is pointless to fight, a lesson the web platform fully embraced giving it an advantage over other UI toolkits of the era.
With respect to toolbars / coolbars specifically, one thing to remember was that those weren't kept for Office/IE use only, but rather shipped as reusable components ("common controls" etc), and so other apps could and did pick them up. Indeed, well into late 00s, the common fashion for Windows apps was to try to look like the most recent version of Office wrt menus / toolbars.
Also, I do recall that those apps which tried to look flashy with fancy custom styles etc were often perceived as unprofessional, and quite a few people (myself included) deliberately avoided them where possible - and it wasn't difficult to do, with natively styled alternatives readily available. I distinctly recall my own late-90s Windows desktop, and it was very consistent.
I'm sure people who care could make a consistent desktop, but our memories differ on how popular that was. The theming craze was a 90s thing, so even when apps didn't roll their own brand like MS themselves did, apps often let you apply custom themes to change the look.
In theory it's easier than ever to do that. You could create a browser extension that used user stylesheets to restyle websites to have a consistent look and feel. People make that effort to build ad blockers but not to build consistent looks, so I guess there isn't that much demand.
And a lot of people have to use the applications as supplied, e.g. Slack or Microsoft Teams. Which can be accessed via a web browser, sure, but dedicated apps for these are also nice because they have a dedicated spot in the app switchers.
Nobody forces you to install and use apps made of a different toolkit (or version of said toolkit) from the one shipped with the desktop.
You can use only Cocoa apps on MacosX, qt6 apps on a kde plasma 6, gnome/gtk4 apps on a gnome3 desktop or whatever is the equivalent in the windows 11 world.
Slow animations are a way to hide latency, they are essentially loading screens. Apple is really good at it, or at least it was with the early iPhones, and a reason why iPhones felt so smooth compared to their Android counterparts while not being actually faster. For me, it is an impressive technical feat and it took years for Android to catch up (see: "project butter"), and in the end, it was mostly by brute force, i.e. putting ridiculously overpowered hardware in smartphones.
Remove the animations or make them faster (you can do that sometimes), and the lag may become apparent.
Why you have latency to hide in the first place is another problem. There may also be some clueless designers who put slow animations for no good reason, maybe because they are just copying Apple, not understanding why Apple did it in the first place.
For example the animation associated with minimizing windows in most desktop environments makes it crystal clear where your window went after you press the minimize button, even for novices. Removing that animation makes the interaction significantly more confusing.
This is my number one trick on Android phones. Enable developer options and change the animation speeds from 1x to 0.5x. It makes your old phone feel new.
I worked on an app in the iPhone 4S and Galaxy S II era and we wanted to use the same trick on both: smoothly animate the view switch between user interaction event and the API response. It worked super smooth on iPhone, and it was jittery as hell on Android. In the end we left the animation on the former, and move the users straight into the loading screen on the latter.
Except that most of the time there really isn't any latency to be hidden, the action becomes effectively instant once you remove the animation. Starting a new app (or switching to an app that was evicted from memory) is the main exception and that's quite rare.
Is that why iOS animations always feel so slow to me? Modern phone hardware can do things so much faster, but the animations are still utterly sluggish in my opinion. Worse, there's no way to speed them up; even with reduced motion, slow movements are simply translated into just-as-slow fades, which are somehow even more obnoxious.
Now it got flipped. I turned off animations on my Android phone, and it's great. And now every time I have to use iOS (for app development), everything seems to be moving in slow motion.
And you can not turn it off! Apple in their infinite wisdom doesn't provide ways for app developers to disable animated transitions.
I’m also perplexed why the mail developers would allow such a thing or what kind of bug causes such behavior.
I work in MacOS VSCode frequently, and whenever I open a large repo with a huge number of files, it's PIA to find the scrollbar. I have to hover the mouse above it to make it appear, but how can I hover above it without knowing where it is?
BTW if you share the same frustration with VSCode, please vote this ticket: https://github.com/microsoft/vscode/issues/244123
Yet in iOS you can swipe vertically some pixels and you will see the scrollbar telling you this exact information.
My alternative to the menu bar would be a search bar that allowed me to search in a Google style everything related to that program: functions, features, shortcuts, and documentation.
File | Edit | View | etc. is not the right choice for every program.
Most would be better served by surfacing the most commonly used screens as tabs and most commonly used functions within those tabs. Ideally 2-4 taps is all it should take to get anywhere, and there should only ever be a tiny handful of niche things that take 5+ taps to access.
1. Replace the menubar with a hamburger menu; in some cases the hamburger menu then contains file/edit/&c. so it's just a spurious extra click
2. Require a click to see the contents of a submenu and a click to go back
Fortunately my most-used GNOME application (Evolution) has an option to restore the old behavior for both of those, but I literally cannot think of the motivation for these two changes that clearly make things worse. The only halfway plausible idea I have heard for #2 is that the GNOME UX designers think that submenus are bad, so if you make them hard enough to use, developers will stop putting them in their applications. #1 is probably partly a looks thing, and partly a "too many people have fewer horizontal lines on their screens than I did in 2004[1]" thing.
1: That's when I got a 1600x1200 monitor; people today with 1080p screens have only 56 more lines than the 1280x1024 monitor I had been using since the previous millennium
It’s unfortunate because in other ways I find GNOME/GTK more agreeable than KDE/Qt (layout of controls within windows is consistently better in GTK environments/apps for example, Qt apps have a tendency to feel slapdash/haphazard/“engineery”) but I don’t like the increasingly strong mobile influence.
This is what drives me crazy on macOS. Specifically, the animation for switching between virtual desktops. When I hit Ctrl+1/2/3/etc I want it to switch instantly, no animation - not slide into place. It's even unresponsive until the animation finishes.
Most animations can be disabled using the defaults system.
I think the desktop animation option is called workspaces-swoosh-animation-off or similar.
I also recall that Settings > Accessibility has a reduce motion option that disables lots of things.
My "solution" is to use Aerospace [0], which reimplements window management. That's the only way I found to not have animations. Unfortunately i still feel some delay when switching windows compared to i3wm/sway in Linux.
My pet peeve: Animations are a crutch used by designers who think they need them when in fact they should just have improved the UI so users don't get confused about the origin of a popup or window. The only justified use of animations in UIs that make sense is in scrolling, everything else is just adding latency to hide your incompetence.
If you're using Android there's also a "visible touches" option you can turn on in the Developer settings. It's a big UX enhancement of its own and IMHO should be promoted to the Accessibility settings (together with the options for speeding up or disabling animations).
A large part of the charm of these 90s UI recreations is precisely the lack of antialiasing and other niceties we expect of modern UIs. There was another project recently on HN that uses modern font rendering with a Windows 9x look, and it's just not the same, IMO. SerenityOS comes closer to what I remember, though it still doesn't quite match the look of MS Sans Serif(?).
I still use chrome sometimes for example just because it seems to have a better font rendering (on Linux but also on Windows) than Firefox. It's completely irrational in a way but it does matter sometimes
I get it, and I agree. But what I personally hate the most on modern UIs is hiding things. Why aren't my scroll bars visible when I'm not interacting with them (and even when visible, are ridiculously small and low-contrast)? Why does IntelliJ hide the buttons for interacting with tool windows until I mouse over where they should be? Why does MacOS hide my application launcher bar by default? Stop hiding things!