You would've really hated software in the early 90's -- every single thing had an aesthetic of its own. It was actually quite wonderful, and a lot of style/"personality" embedded in these design choices.
Are you thinking here of pre-multitasking desktop usage, stuff like DeluxePaint, Scream Tracker, that kind of thing?
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.
It is my recollection as well. Most applications used VB, Delphi, MFC etc. that all had the "native" OS look and feel. There were some exceptions like WinAmp and others, but from what I can remember most applications were more consistent than today.
Those toolkits would usually reimplement the "native" look and feel from scratch, or nearly so. It was uncommon to rely directly on the basic OS widgets.
MFC was Microsoft, so that was definitely native, and I think a lot of stuff used native even just for performance reasons. I remember getting very frustrated around then when something would want me to install the JVM and I knew I was in for a laggy mess of an application that would have bad font rendering, strange little buttons, and its own file picker.
Don't modern versions of Windows contain at least 5 different widget frameworks? Like, Win32, Ribbon (I think engineered for Office as you said), WinForms, WPF, WinUI 1/2/3... I think Apple just has Cocoa (Carbon is long gone), AppKit, UIKit, and SwiftUI.
MFC is a thin wrapper around Win32. Delphi's VCL is a much thicker wrapper but still using (mostly) native widgets; ditto for VB6.
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.
Early 90's, especially on Amiga -- where a proper windowing desktop env ("workbench") coexisted with the wildest custom UIs. Maybe it was the roots of the machine, heavily used as a games console and a demoscene workhorse? It seems like at that time there was so much creative design effort put into UX -- and it didn't seem to get in the way, maybe because each genre of software was kind of on the cutting edge back then, establishing what would eventually evolve into conventions. Mod trackers, image editing, disk copying, etc. Maybe it's a bit of nostalgia, but it felt really immersive to pull up a piece of software you were familiar with; each UI was so distinct and purpose-built, but it also had.. flourish? style? soul? Not so much now.
Nah, the Windows ecosystem never even got close to being consistent.
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
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.
It was still much more consistent than things are today, though.
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.
IIRC most of these controls only shipped in comctl32 much later than they launched, and comctl32 came with the OS which had many-year upgrade cycles. So in practice everyone invented their own because they didn't want to wait.
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.
Yes, it’s wonderful having to figure out 50 different UIs designed by 50 different artists with 50 different ideas of what a drop-down should look like and how it should work.
The mental overhead from having slightly different drop shadows and button sizes is minimal, and I think pretty overblown by people who prefer identical UIs for everything regardless of form factor (which is of course a valid take).
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.
Predictability is a feature. That does include button sizes. To me that's where the asymmetry is. The "boring artist with no creativity" complaint is aesthetic, whereas predictability is a functional concern.
It’s more like I have to actually think about where the program options are. Or that on firefox nowadays I have to snipe a tiny small spot on the title bar to move the window, instead of clicking some button that doesn’t look like one.
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+,
Do you have a solution in mind? While a platform (OS) can provide a UI toolkit and provide a HIG, one cannot stop language and programming tools vendors or programmers from doing whatever they like.
I'm starting to think that it would take replacing basically everything that's happened on Web frontend development since XMLHttpRequest with an alternative system that's still standards-based, platform-agnostic and Web-centric, but designed from the ground up as a GUI toolkit instead of a markup language for hypermedia formatting.
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.
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.
There are also some classes of apps where the platform UI kit is insufficient. Immediate examples that come to mind are kiosk software, trading software, games, etc.