Disclaimer: I work at Microsoft, but not on Windows (and I deal with a SaaS at MSFT). I am a FreeBSD committer and help maintain FreeBSD's GNOME packages and (very recently) the graphics drivers.
The reason why Windows is full of UI inconsistencies is (largely) because of one thing: backwards compatibility.
While backwards compatibility has it's perks, it also means having lots of old code in Windows that can't be touched very easily without breaking compatibility, And that means many old UI elements may stay, that's a side effect.
While desktop Linux/BSD isn't exactly well known for it's UIs, I found GNOME 3/40 to be more consistent UI-wise than Windows 10, being a user of GNOME 3 on FreeBSD at home (which I am typing this comment from), and helping port GNOME 40, while (unsurprisingly) using Windows 10 at $DAYJOB.
But then GNOME, KDE, Apple, et al. is more willing to break things than Windows is. They aren't as bound to legacy compatibility, so old UI elements can be shed easily.
This is the answer. Now it could be done to maintain backwards compat and have everything completely up to date, but the juice is not worth the squeeze and there are more important things to focus on (such as making the OS work/build in such a way that there won’t be inconsistencies in the future).
Asking the obvious question: why aren't the UIs in newer Windows versions not "just" different themes over Win32 widgets? Instead the UI theme seems to be tied to UI frameworks which seem to be created and discarded annually at Microsoft, so each time some genius decides to overhaul the UI, a completely new sediment layer is created instead of letting some UI designers tinker with a theme editor.
I don't get it. Functional UI changes should be different from visual fluff, yet Windows seems to the only OS where the two aren't separated.
This was historically the case, it's why despite the article calling out winver, folder properties, the run dialog as being from the win9x -> win2k period, they didn't look remotely as out of place in win7 as win10.
Of course there are limits. iirc Windows 7 RTM had an obviously 3.1 derived file picker make it into the add fonts dialog until it was replaced in SP1 if my memory has the timing right. Despite using win32 widgets which had the correct theming, that didn't look native at all
FWIW: I consider fixes like the improved environment variable editor in the "old" system control panel in Win10 much more important than the entire new settings panel mess. The same type of improvements would make a lot more sense for the rest of the builtin UIs instead of creating entirely new "construction sites" all the time, which will be left incomplete and outdated in a few years time as the current people are replaced with new people.
There is no such thing as canonical “win32 widgets.” There have always been several different UI libraries even for win32. The original win32 styling you get with CreateWindow doesn’t support modern font rendering, high DPI, doesn’t work well with touch, is only software rendering, doesn’t support latest accessibility features, etc.
The newer stuff sits on top of DirectX.
The latest UI framework (XAML/WinUI) sits on top of a better rendering architecture (compositor) that itself wraps DirectX tech.
There's no reason why the old Win32 window and widget foundation couldn't have been lifted on top of a modern rendering architecture though, there was certainly enough time to achieve this. This would also reduce the need for creating entirely new UI frameworks every year (or even better, higher level UI frameworks could be built on top of a modernized but backward compatible Win32 widget foundation instead of doing all their own rendering directly on top of DirectX).
(TL;DR: the Windows UI mess looks to me like an organizational problem, not a technological problem. From the outside it looks like as the old guard is leaving, the new people coming in discard all the old code and instead prefer to start completely new projects, which of course is destined to fail, because the new people are repeating the same errors which had been identified and fixed decades ago).
If you listed out all the requirements a modern UI framework needs you would find that the original Win32 UI API’s are not viable. Especially if you want to support more than just C and C++.
So much code is required to do things we now take for granted that the resulting patterns became new frameworks.
The Apple APIs date back to NeXTStep at the end of the 80s, yet they managed to mostly keep them fresh.
Win32 is old and unviable because Microsoft hasn't bothered making comprehensive upgrades for it and never laid out a gap-free plan for how to move off it. They could have upgraded it more smoothly but never did.
I guess one challenge with this is that old school Win32 doesn't really support anything resembling automatic / responsive layout. All controls are of a fixed size in a fixed pixel location. This means you can't for example change the default font, add margin or padding or do any other significant changes without essentially breaking all existing applications.
That's not quite true. Win32 apps that use CreateDialog use absolute positioning for widgets, but the "dialog units" used for that purpose are specifically defined to scale with DPI and font size (one DU is defined as "average width and height of characters in the system font").
> Now it could be done to maintain backwards compat and have everything completely up to date, but the juice is not worth the squeeze and there are more important things to focus on
You state that as fact, but I believe the poor UI situation is holding windows back from gaining market share. It’s not just the way things look, but uniformly communicate a single experience. Microsoft used to be very integrated and had an entire ecosystem that was uniform. Letting this go has really hurt the brand IMHO, and creates a very low bar for third parties.
The ecosystem was never uniform. In the 95/2000 days there was a lot of 3.11 UI everywhere, in the 7/8 days a lot of XP UI. Office always had its own UI conventions, often being the playground where new ideas were tested.
It's not so much that microsoft let things go as it was taken from them. When computers became networked we needed ways of easily distributing applications across that network in secure, reliable and always up to date ways. Windows never had a good solution to that (not even today), because every install was fraught with peril, and every app had to roll its own update mechanism. Meanwhile the web was sandboxed and up to date by definition, dramatically lowering the barrier to entry for networked software. Anything that could move to the web did move to the web, which opened the door for chromebooks, which in turn fragmented the OS market, which made it uneconomical for companies to invest in a windows native codebase. Microsoft could have stopped this had they leaned hard into the concept of an app store and sandboxing around 2000, and hadn't stumbled so badly when it came to extending windows to mobile.
I'm pretty sure that modernizing the entire windows UI doesn't change a thing for windows market share. But the reason to do it is not because it makes economic sense, it is because they should have pride in the products they make, and want them to be well-made.
> I believe the poor UI situation is holding windows back from gaining market share.
I'm having a hard time believing that. While some Mac users who are used to a more integrated user experience might be deterred, I'm not sure that the os's ui esthetics really affect windows adoption. My feeling is that most people who use Windows do so because they're either (a) told to use it or (b) they choose to use it because it's the shortest path to doing what they want to do.
I'm sure Microsoft know this and understand the tradeoffs very well
It doesn't always work. I have two machines, one that has issues with a north bridge, which initially prevented shutdown and prohibits, suspend and hibernate. And another where the Bluetooth dies until reboot on an Intel wireless card. Another machine wouldn't upgrade due to a wireless card, that took about three days of troubleshooting. My Linux boxes glitch too. I rarely have stuff that just works.
The exception to this is older hardware. My ATI Radeons are still useful as 1080p graphics adapters under Linux, but they are totally unsupported by Windows. My laser printer is in a similar situation.
Most people use it because most people use it. It's what's compatible and widespread, and comfortable and known. It's the reason that people send docx files.
I send PDFs, but always generated from docx files. I did the Open/Libre Office thing for about 15 years and if you do a lot of work in these you’ll find that MS Office is simply superior. You can still use a mostly compatible version of odt with it. There’s just too many handy things about MSO that I’ve learned it’s worth paying for. One example is opening PDFs with Word and having it do a surprisingly good job at converting it to a Word doc. Very handy stuff.
> I'm sure Microsoft know this and understand the tradeoffs very well
Microsoft understands keeping their customers. That is why backwards compatibility is king with Ms.
Windows is not growing in adoption. It is under attack by Google (Android killed Windows on phones and Chromebooks are eating away the education market), Apple, and on the server, Linux.
Windows user from 3.1 to Win 7 here. Once I saw the MacOS experience in 2012, I never looked back. an engineer might say the juice isn't worth the squeeze, but to a consumer, and a power user, the swath of UI and UX inconsistencies is what keeps me away from Windows.
For the price of the absolute cheapest MacOS running computer (Mac Mini, with a monitor) one can get basically 2 entire Windows computers.
For the cost of the average computer running MacOS, one could buy a TV, a console, a desktop Windows computer, and a laptop. Or whatever it may be. ($1500 on an iMac could be $400 console, $500 TV, $500 computer. Or whatever your break down is. For the lower middle class and working class, trying to 'gear up' their family and make their kids happy and be happy with their home, this is real math they have to do).
While it is true that for those who are wealthy or who can justify the cost, the experience is very nice and justifiable, the cold hard facts of living in the western world is that most people would need to spend irresponsibly to use MacOS regularly.
It is what it is but it's no surprise that the cheapest mass market OS has 90% market share, and anyone who thinks that "UX" is the reason instead of cost doesn't understand the industry fundamentally.
> the cold hard facts of living in the western world is that most people would need to spend irresponsibly to use MacOS regularly.
A $900 MacBook Air would probably have lasted far longer and needed less time troubleshooting than a $500 computer made with subpar components. The amortized costs are far lower with Apple products (or other products using higher quality components) compared to buying the cheapest devices made with the lowest quality components, so there is no point in comparing the two.
And most people only need 1 computer, if that. I would actually bet most people can do everything they need to with iOS and an iPad would suffice. And other than the smaller screen size, I can see people make do with an iPhone even, especially if all you are doing is consuming.
> A $900 MacBook Air would probably have lasted far longer and needed less time troubleshooting than a $500 computer made with subpar components.
I've never seen a more-true statement on this site. Years ago, my wife was using a $500 Acer laptop, which was a cheap plastic POS, which broke after a couple of years. I bit the bullet, and bought a pre-owned Air for $900. She is still using it, 11 years later. I used to have to fix something on her Windows computer every other week. Now I hardly ever have to help her with anything.
A year later, I bought another $900, used Air for my daughter. She is still using that, 10 years later. I bought a new MBP, and gave my son my 7-year-old version. I expect him to get many more years out of it.
People who have never owned a MacBook expect that they "wear out" like a $500 laptop, but they just don't. They cost much less over the long run. It's like hiking boots. You can buy cheap ones every year, or bite the bullet, and pay 3 times more, and have a pair that lasts for 10 years.
For most users who are emailing, reading some web forum, social media, and maybe office that matters very little.
Even fully up to date there is always another zero day, so for individuals doing nothing of particular importance the best bet is good up to date backups of the important files and when your software tools are working well to help you get whatever it is you do done, don’t change them, and don’t update them, because odds are there will be some regression, some feature removed, a change to a subscription model, some functionality now depends on the Internet, or some level of telemetry/spying.
Software has become hostile to users. Everything is nearly malware now. Easily snap shotted and sandboxed VMs are just about the only way to maintain some level of consistency over a 5-10 year span where you are depending on the software to just keep doing what it is doing.
But, not surprisingly, "For most users who are emailing, reading some web forum, social media, and maybe office that matters very little." don't understand or know how to do rolling backups or operate a VM, so keeping their OS up to date is the best option. Denying them that, regardless of how little they use the internet, is reckless at best.
To be fair, every single Acer device I've ever had contact with other than my display was conspicuously unreliable, and their support/service has not been that great, either.
I have good experience with Asus laptops, though, I still have an EeePC from 2008, and it's still working fine. Slow as a snail, of course, but still working. ThinkPads, too, although they can be a bit pricey.
There's the software side, of course, macOS is much more pleasant to use than Windows. But I found after using a Mac Mini for about three years that I actually prefer GNU/Linux on my desktop.
Really? It seems very obvious. This is a discussion of how "UX is why Microsoft is losing market share", which is what you replied to.
I'm reminding some tone-deaf wealthy users that COST is the #1 factor behind OS usage, and the rest is basically irrelevant window dressing except to the upper class.
Is what it is, but you'll struggle to find a more privledged and clueless group of commenters than here. Part of the charm, I suppose.
Cost is not the same as value. Apple hardware routinely runs better, lasts longer, and has longer software support. This is reflected in the incredible demand and higher resale values.
This actually helps makes new devices more affordable as the cost is amortized over a longer and more useful lifespan, while the secondary market serves others very well.
Incredible demand? Are you referring to their stable ~15% market share? And decades of uninspiring market performances? The company which didn't experience its meteoric success and growth until after the computer, with the smartphone?
Interesting. I figured the people here are completely ignoring maybe half of all users, but you seem to be ignoring about 85%!
Billions of people only have a (cheap Android) smartphone as their only computing device, if that. They're not buying consoles, computers and TVs.
So given your example which already excludes most people on the planet, I was replying to the fact that Apple hardware usually has a lower total-cost-of-ownership given the longevity and resale value. Of course not everyone sees it this way, nor can they afford the upfront price, but it is what it is. Anyway, the company certainly didn't get to a $2T market cap from a lack of demand.
Strategically, worrying about the low end “worse” competitor is more worthwhile than the higher end competitor. Eg IBM were not undone by a better mainframe.
In Windows’s case the “worse” competitor is ChromeOS and Chromebook, and Microsoft’s basically thrown in the towel when it comes to native apps, so with time everyone who doesn’t need pro Photoshop or AutoCAD could just use a Chromebook.
Note that you can run Word for Android on Chromebooks full-screen already.
I know stadia is so poorly managed that it is not even a worthy competitor but the concept is sound and nVidia’s GeForce Now and Microsoft’s x cloud will eventually work well enough on Google Chrome that between that and Proton, Windows’ gaming advantage should become a little diminished over time?
I haven’t used android games on chrome os but things like candy crush should work just fine in chrome os by now?
The problem is the massive gulf between "works well enough" and "pleasant experience". Console users would still balk at the terrible performance of Stadia... let alone PC users that are used to being first class citizens in terms of experience and responsiveness.
Assuming you have a really low latency to a Google datacentre, the Stadia experience is not particularly compelling enough to ditch running the game on bare metal.
All of the above is moot though if you are not within a few ms latency of a Google datacentre though... which for most of the world is absolutely the case.
They still have good APIs, but everyone use D3D because it's has larger market share and not because it's superior. Decade ago many developers still used whole DirectX package: input handling, sound, network. Now it's mostly just D3D. It's was possible for Microsoft to grow DirectX mindshare by adding more components: physics engine, particles and effects, advanced networking or server management pathfindding and AI, VoIP, matchmaking, etc...
Instead they were focusing on Xbox and let their PC ecosystem rot. Now Nvidia, Valve, Epic and other middleware vendors consumed this market. They tried with GFWL, but it was a dumpster fire.
They now try again with Game Pass for PC, but again they just want to push Xbox ecosystem instead of Windows gaming as whole.
That would be for the USA or Canada. Everywhere else, macOS is perhaps a rounding error. ChromeOS gains some traction and is probably more popular than macOS in the education market at least. Windows is still king at least in the world we consider as somewhat developed.
I use Apple because their OS is a Unix AND their hardware is nicely built and well integrated with the OS.
I use Linux because it’s a way to run a good Unix-like OS on non-Apple hardware.
The overwhelming majority of people who use Windows (or macOS) is because their computer came with it. As long as it mostly works, people don’t care about which OS they are using.
The overwhelming majority of people on Windows are there because Microsoft bent over backwards to give businesses what they needed so that they could beat out Apple and IBM to win the desktop wars of the 80s and 90s. If businesses had never used Windows, nobody else would have and computers wouldn't come pre-installed with it. Personally, I use all of them for different purposes.
I like Windows because it's more compatible than other OSes with any hardware that I can throw at it. It's also more stable than any other OS. My Macs have been broken multiple times throughout their life by simply upgrading to the next version of macOS, but Windows has always just kept on trucking along year after year. Another reason I love Windows is that it's got a high degree of flexibility. While Apple hides APIs and does everything they can to prevent you from doing things that they don't approve of, Microsoft does the exact opposite and publishes APIs to help you get it done. Mostly though, I just love the Windows UI and the Windows way of doing things. I find it to be very simple and obvious. The things I don't like are largely unseen, like the forced telemetry and updates.
I use my Mac when I need to build or test something for iOS or macOS. Outside of that, I just can't stand the way they do anything. I find the UI and the UX of macOS to be absolutely hideous. The fact that you have to install third party stuff just to get basic features like "decent window management" is simply beyond the pale to me.
For work, I started using a Linux desktop a few years ago because Windows was annoyingly slow when doing anything with npm/yarn/node_modules or Docker and I was doing more and more work with NodeJS and less with .NET/SQL Server/etc. So, I installed Manjaro with XFCE and that's when I found out that XFCE does a minimalist Windows style desktop better than Microsoft does. They have all the Windows features that I want, like Window snapping and none of the Windows features that I don't want. They even have a feature that I usually installed 7+ taskbar tweaker to get: They let you middle-click taskbar items to close the window (also you can drag/drop them), similar to how Chrome treats browser tabs. I've had Manjaro installed on multiple systems (desktops and laptops) for years now and I haven't seen any of the issues that people complain about here, like having to fiddle with their system to get it to work. Everything just worked for me since day one.
Now I just use Windows for entertainment - I've got a NUC style PC at every TV and I have one gaming PC.
You must not have been around for the 80s and 90s' "desktop wars." Microsoft did everything they could to undermine innovation and they didn't help businesses, they locked them into inferior technology that cost more and undermined productivity. The Microsoft you grew up with was not the Microsoft of Gates and Ballmer. Those were dark years.
That Microsoft created new APIs, runtimes, and frameworks not for technical reasons but in order to lock customers in or disadvantage competitors. That's a big reason why Windows is an unmanageable mess of inconsistent interfaces and DLLs--they were short-term tactics, not well considered approaches.
> they didn't help businesses, they locked them into inferior technology that cost more and undermined productivity.
In order to lock people in to something you have to have something of value to offer... so, your argument defeats itself.
> That's a big reason why Windows is an unmanageable mess of inconsistent interfaces and DLLs...blah blah blah
Pfffft. Yeah it's so unmanageable that every single IT department on earth is running Windows all day every day. Even my personal PCs are running perfectly without so much as a hiccup. What a mess!
> The overwhelming majority of people on Windows are there because Microsoft bent over backwards to give businesses what they needed so that they could beat out Apple and IBM to win the desktop wars of the 80s and 90s.
That’s one case of “it came with the computer”.
But Microsoft was really clever at giving all the functionality companies want for their corporate issue computers. In the mid-2000’s very few companies offered Macs as desktops because of that. I only have a work MacBook because it can authenticate against AD and has all the management automation required by my employer. That’s also why a Linux laptop wasn’t an option.
The only way of MAYBE having a consistent experience on linux is to only use applications written for the DE of your choice isn't it? Use firefox on KDE and the consistency is already gone.
Is that any different to Firefox on macOS? In a way Firefox's current UI design aligns with the win 10 modern stuff, but that's more luck for MS than Firefox making a big effort to fit in, since it's mostly the same everywhere
No it hasn't. Just buy a phone from let's say Samsung and install any Google app. Google app will have a different UI look and feel than rest of the system.
> I believe the poor UI situation is holding windows back from gaining market share.
Big companies just love to jack around with Windows, and do things like prevent users from changing their desktop backgrounds (in the name of "security," of course), and Microsoft has always bent over backwards to give them the ability to do any stupid thing some corporate IT drone can think of, so they continue to be loved my companies around the globe.
There's a _fundamental_ difference in the way that Microsoft and Apple have approached making an operating system. One treats it like a layer of software in an entire stack that someone else owns and controls, and the other makes PERSONAL devices. And it shows.
And, of course, the Microsoft-slobbering trade press can't imagine a scenario where they don't try to prove that YOU should be running Windows because the numbers -- inflated by the Fortune 1000 -- says it's what "everyone" is running. Meanwhile, more than half the people I know now run NOT-Windows for their personal computing.
Let's break out the corporate purchases from sales data, and then let's talk about actual, personal market share, and whether better UI/UX would help Microsoft in a heads-up battle against macOS or ChromeOS.
I have been in the corporate environment for more than 6 year more on the administrator/ engineering side of things. Currently, I am about a year at OrgPad - a very small and quite alternative startup. Two extremes so to say. ;-)
In my experience, Windows is still the target for most specialized or business software. Most of these things also demand a Windows Server component. Typical suspects are: "Personalmanagement" timesheet software basically (accounting working hours, vacation, bonuses etc. and making sure the right receipts are printed at the end of each month and more, like when somebody leaves the company, is ill or the is "Kurzarbeit" because the union with the employer settled on this). Another suspect is software for insurance and taxes, energy management (which in a stainless steel foundry is an important piece of software and keeps at least a handful of people fully employed), logistics software (usually also with needle printers that are able to still print "Durchschlag" carbon paper https://en.wikipedia.org/wiki/Carbon_paper which is fast and handy for the drivers). There is special software for measurement and production with complex machines, ovens, mills, spectrometers, microscopes, x-ray machines etc. Oh and then there is the internally developed application, that keeps running the company and will be replaced sometime during the next 10 years with a different Windows native app if it is ever finished.
And there is the MS SQL administration in addition to group policy for all the Windows computers everywhere that also is best done from a Windows computer.
People are used to Windows, older generations in middle and slightly eastern european countries (former east Germany/ DDR included) especially. There just were no Macs in any company besides maybe a top design studio in the capital or regional hub. This is a big factor. In most companies, ordering certain behaviour just doesn't work in practise.
In companies, every purchase is oriented towards "Abschreibung" or the amortisation period that is determined by "Abgabenordnung" if I am not mistaken - basically the tax. To be most efficient on paper, you have to use the device at least for the duration of the period determined by the state tax books, else you will have a bad tax audit etc. Anything that hasn't followed the rule will raise an eyebrow and somebody will have to explain otherwise you will likely pay more in taxes or whatever. I don't understand this stuff at all but I was told it works something like that and therefore you do so much accounting stuff such as inventory of basically everything that costs at least X, every piece of software, where you also get Microsoft and Oracle and other audits from time to time...
If you are not in the business of selling/ writing enterprise or specialized software in some capacity, you don't really have to care. Most things work using a web browser nowadays, even some enterprise software some companies use. Some software is just more performant or can access certain APIs that aren't available in the web browser. Also, it is very hard to support anything for 10+ years in the webbrowser. Stuff just breaks too frequently on the web, even compared to Windows 10.
In the end, people usually buy Windows, because it really is the only platform that actually works for 99,9% of things. You can spend a long time to support the CEO's Mac, because it is the CEO. Of course, most things running a web app or supporting infrastructure can be Linux or UNIX-based without an issue, but the OS on people's desks just is Windows and it will stay like that for a long time. There are few companies that have the resources to support something else on the desktop as well. I bet, these are in the software or hardware development or creative/ design/ art business and not much else.
Education is a very special market, really anything goes there. Simple things tend to win, but what simple is changes school to school. :-) There are schools that it seems don't know what to do with their money and have dedicated IT department, supporting anything Apple, Google, Adobe, AutoDesk and Microsoft is not a problem there. There are schools that cannot even equip one IT classroom and students have to share computers each with a different OS and updates barely work because the internet connection is flaky.
The bar for third parties was always nonexistent. That was precisely the advantage of Windows which permitted the boom of development for it in the 90s–2000s.
> It’s not just the way things look, but uniformly communicate a single experience. Microsoft used to be very integrated and had an entire ecosystem that was uniform
Their Office suite may have been internally consistent, but I did a bit of software for Windows 2000 (back when it was the latest version), and I found the UI of Windows (in general) inconsistent, scrollbars would e.g. have subtle difference between applications.
I ended up using Qt for my own work, as I couldn’t figure out what was the official / dominant style to follow.
All this, plus the fact that Win10 has become increasingly unstable for me in the last 6 months (random restarts, nasty performance problems with WSL2 etc.) that it simply isn't worth the money anymore, unless you have some apps that only run on widows (e.g. games :))
It could be. I only use it on my Lenovo idea pad S540 AMD / Ryzen 5. However, the overall user experience with Win10 just doesn't click with me, compared to e.g. Ubuntu Desktop. The thing feels slow, bloated and unstable. Not to mention the tendency to always stay connected and report telemetry of many kinds (you notice this when you are on a slow / intermittent connection).
I believe the poor UI situation is holding windows back from gaining market share.
I hope you jest. Windows has far bigger problems than the uniformity of their UI - there's the whole forced update thing, the whole "we really need to spy on literally everything you do on our OS" approach, online advertisement built and integrated with the OS (based on the spying) ... these are the major issues that they need to fixed urgently if they wish to retain their userbase. Windows has been a continuing shitshow since Windows 8 ...
I tried win 10 recently on older hardware with 2gb ram. Long story short: totally unusable. Turned on Win 8.1 on machine with 2gb ram. That was pretty usable and almost pleasant by comparison. I used to think that distro was a stinky turd. The UI in 8.1 was very inconsistent and gave me hives. 10 has changed markedly already between big updates.
The juice is absolutely worth the squeeze. Everybody and their grandmas think Windows is a mess, yet theres no real alternative for most people, so there’s no real incentive for MS to make it better (or for a start, stop making it worse with telemetry, forced restarts and adware).
From MS' point of view I doubt it is worth thr squeeze. You have to consider that the average user and their grandma make very little revenue for them. They buy a license with their computer and that's mostly it.
Pro users, companies are a big part of the Windows revenue and for them, backwards-compatibilty is the biggest sales point.
I agree this is super bad and confusing for many users, but the majority of them probably never go past the latest design Win10 screens.
I just don't buy that. Everyone I've ever persuaded to buy a Mac or iOS device comes to prefer it to Windows in a couple of weeks, and I stop needing to fix something for them every other month.
I actually did that for my parents and in-laws and it went as you said. But there’s no alternative to Windows for a lot of professionals and gamers and that’s an issue. There’s no need for Windows to be better because they own that segment. Also, as much as Windows Desktop dominance sucks, Linux just isn’t there yet and I don’t want to see the walled garden dystopia that a majority of Mac desktops would bring us.
Stating that the UI consistency issues are due to backwards compatibility is stretching the truth to the point of outright deception.
Backwards compatibility is not what stops Microsoft from updating the GUIs for their own components. It is not the reason that the components that have been updated failed to carry forward 100% of the features of the components they're replacing, necessitating the ongoing use of the legacy components. It is not the reason reams of GUIs have gone untouched for 20 years. It is not the reason Windows now has at least 4 versions(!) of Performance Monitor, all of which are broken in at least one glaring way. (More on that below.)
The believable reasons for the GUI inconsistencies I've heard are:
1) API churn, because of which the UI teams did not have sufficient time to work on features versus playing catchup.
2) Bad system GUI APIs that are very difficult for even in-house teams to work with.
3) Unwillingness to take ownership of legacy code, with literally noone left at Microsoft willing to touch things like the ODBC connections panel or the Component Services snapin. People prefer to add new things instead of fixing or removing old things because it's "easier".
Actually, let's just stop here for a second. That last point explains the performance monitor views. I mentioned at least 4 copies, written over decades, by different people. Each new team has steadfastly refused to touch (or remove!) the old code, but hasn't replaced the functionality of the old code, so now end-users need 4 different versions to get things done.
These versions are:
1) The performance tab in Task Manager. The only GUI-based view that exposes some metrics such as GPU temperatures. Only shows a small number of fixed metrics.
2) Resource Monitor, which is opened from Task Manager. The only GUI-based view that shows certain per-process metrics, such as the names of files being touched, or per-connection network stats. Has permanent UI issues that will never be fixed, such as not using the system number formatting in some places, making large metrics unreadable as they change faster than users can count the digits. Similarly, the graphs take forever to change their vertical axes, making them useless 90% of the time.
3) The Performance Monitor MMC snapin. Totally legacy, with un-resizable controls that cut off text. Nonetheless, it is absolutely essential because it provides the only live GUI view of 100% of the performance metrics available in the system. It is also the only way to record metrics and view recordings. It is the only GUI for creating metric logging that persists. Etc...
4) The various versions of Server Manager's performance views, which are so useless that I've literally never used it. Nobody can get their job done doing this, we're all still using RDP to connect to servers so that we can simultaneously launch the three tools above. Why RDP? Because 2 of the 3 above do not support remoting.
I could go on and on like this for hours about how bad just this one aspect of Windows is, let alone the hundreds of other GUIs that have been butchered by bad decision making and internal NIH syndrome leaving a trail of half-baked messes behind.
Wait... did I say 4 performance metrics GUIs? I meant 5, because there's also the new Windows Admin Center, which was clearly written by people that have never had to diagnose a performance issue on a server. It's very pretty and utterly useless, which means that: Nobody will use it, and it will be superseded by someone else's half-baked attempt in a few years, 100% guaranteed.
Microsoft Mail is a product from the early 90s for DOS/Classic Mac OS. Microsoft Internet Mail was a logical upgrade, then added support for newsgroups. Eventually, after the success of Outlook in the MS Office world, it rebranded to Outlook Express. You could still see echoes of Microsoft Internet Mail and News if you looked hard at Outlook Express, its executable was called msimn.exe.
Windows Live Mail and Windows Mail were essentially newer, Vista-era versions of Outlook Express. It's the same program rebranded. Mail was bundled with Vista, Live Mail was a way to push the Live branding and get the newer program into the hands of those running older versions of the OS (WinXP).
Microsoft Outlook is a different beast with a different lineage, part of MS Office, and can be thought of the "pro" version of the basic mail clients bundled with Windows.
Yes, Microsoft could probably do with some branding discipline but the technology is quite predictable.
I'm not sure what Mail.app is, I always thought that was Apple's. Entourage was IIRC a native 'designed for Apple' PIM that eventually made its way into Office for Mac, eventually they decided to rationalize and have one client -- Outlook.
Hotmail / Outlook.com - Outlook.com, again despite the confused branding, is Hotmail evolved. Over time, Microsoft slowly merged its consumer (Hotmail, Windows Live) UI with its 'pro' UI (Outlook for desktops, Exchange Web) so that these days they are all pretty similar. These days you also have Outlook's mobile apps for Android and iOS and those too have a familiar look and feel.
I don't see any of these as a bad thing. Microsoft's history is linked to the history of personal computing and the ebbs and flows of market forces that shaped the PC biz and continues to shape today's technology. Given all the churn in this space, it's actually kind of awesome how their technology has evolved -- and will continue evolving, e.g. with all the focus on a web version of Office. But yes, their sudden shifts in branding is pretty sucky and they could do a lot better there.
But "none of them 100% work" is pretty harsh. No mail client is right for every use case (except emacs, naturally -- if it doesn't work for you it's because you haven't written enough elisp yet). But these are very widely deployed products and do work for a good segment of their target market.
Mail.app is what I call the new "modern" app shipped with Windows 10. Mostly garbage. Spends most of its time and your CPU to resynchronize your mails.
My experience with these programs is that the predecessor can have feature X but the successor doesn’t but has feature Y, similar what OP described.
I’m always harsh when reviewing software. No need to be gentle about things that doesn’t work well.
Tried it a year ago again and if I remember correctly it has tons of options but little customization and somewhat bloated mess. I like minimalism and I don’t like cruft, things like how does the list of mails work when viewing 100+ and navigating at high speed with the keyboard and applying actions work. Most email client fails this btw.
I think also I was annoyed over how one email list item was drawn, too big, thus reduces the number I can see at one time. Can’t remember if I found anyway to customize that.
I ended my Office subscription because I didn’t really like the feeling of the applications. It feels like they have put lipstick on a pig. Yes, there is a minimal writing mode in Word, but beneath it is the same old steaming pile that seeps thru.
But I’m somewhat harsh when evaluating software so maybe I’m missing something here.
I agree that some features in Outlook feel like bloat and that it too has legacy UI.
I do however find it to be the best (on Windows; unsure about on Mac).
I would so much like Microsoft to sell it outside of "Office Pro" as I would like to use it at home too but do not otherwise need "Office Pro" at home.
>Stating that the UI consistency issues are due to backwards compatibility is stretching the truth to the point of outright deception.
I am not familiar with Windows APIs but I can see this be the truth if MS made it possible for developers to plug inside this dialogs, like a printer driver would plug soem GUI changes in the panels , changing this would break a lot of devices.
Sure, and hence the logical thing to do is to create the new GUI side-by-side with the old one. That doesn't explain the non-extensible GUIs being left behind, or why the new uplifts are so piecemeal, or why they randomly leave out critical features.
Additionally, this is all the more reason why Microsoft should think through before they release a new UI frameworks and instead of releazing and then shortly moving on to a new one. I do not really understand why this cannot be thought through to make it long-lasting without running into alleged backward compatibility issues.
I did specify that this is related to GUI approaches, not command-line tools. Thankfully the "churn" in the CLI is much lower, but not zero. Most users are happy about the the migration from the legacy CMD-based tooling to PowerShell, but the latest crop of tools are abandoning that and reverting back. E.g.: "dotnet", "bicep", "aks", "az", etc... are all going back to the UNIX-style parameters for consistency with Linux, even though PowerShell is a demonstrably superior shell, especially on Windows.
So even there, the unnecessary and counter-productive interface churn continues to the detriment of the users.
> such as making the OS work/build in such a way that there won’t be inconsistencies in the future
I'm always very skeptical of refusal to handle the past because of the promise that the same won't reiterate in the future. What could also happen is that 5 years from now, you or another dev justifies refusal to handle inconsistencies developed "temporarily" and or accidentally in the meantime with exactly the same reasoning.
A more direct and simple observation is that if nobody is working on converging / cleaning up stuff, they don't converge and aren't cleaned up.
As for the amount of backward compat already provided by Windows, it is good but not great anyway. Try to play old games, install/use old VS with a few patches, install/old Matlab, use old devices, etc... Hell even try to continue to use your semi-recent devices across new build of windows, like 20H2 breaking USB-C on my XPS 15 9560 (but now I'm ranting so I'll stop :D )
I'm a TreeStyleTab user in Firefox with always >200 Tabs open. But I never got the idea of Tabs in Explorer (or Finder for that matter).
When I use multiple Explorer Views, most of the time I do it, to interact between them. This is not the case for websites.
So for drag and drop interactions, two windows always beat the drag, hover over the other tab until it catches my intend to switch to this tab, and drop it there workflow.
The same goes for copy and paste. Ctrl+c, alt+tab, ctrl+v. I'm sure there is a corresponding command to cycle through the tabs, but alt+tab is deep muscle memory, that it beats this command always.
> I'm sure there is a corresponding command to cycle through the tabs, but alt+tab is deep muscle memory, that it beats this command always.
It's ctrl+tab. And shift will reverse direction in both. It's nice and related.
And then there's MacOS, where cmd-tab doesn't cycle through windows, but through applications. Cmd-` cycles through windows of the same application. Because apparently, using multiple applications and multiple windows means you're a bad boy and need to be punished.
Weird, I never saw it as a punishment. It's actually a lot faster to get where you need to go, in my experience. Not having to filter through both application and window makes it take slightly less thought and effort than flipping through just one application's windows. Plus switching between applications is a lot easier when there are only five listed instead of five + 20 windows.
I guess it's dependent on the number of applications and windows you have going at any given time.
Generalized tabs accros even different programs is an experiment that has been attempted a few years ago in a few insider builds, but has been quickly abandoned. IMO it was too complex from a UX pov, duplicated some of the use cases of virtual desktops, etc. Maybe had they tried tabs for single applications, it would have succeeded. In this alternate universe we may not have the new Windows Terminal program though (IIRC adding tabs specifically in console.exe was prevented because they were about to start this grand inter-program tab design instead, and Windows Terminal was started after the experiment failed)
Tabs are great for saving screen real estate. Finder windows are relatively small and, with large screens, the need to cram two or more folders into the same window ceases to exist. It’s easier to remember the window to the right is my docs folder and the one to the left is the downloads one.
Honestly thank goodness for the backwards compatibility, otherwise I'd have to rewrite an existing legacy app I've been put in charge of maintaining at my place of work. The thing is in winforms and a weird third party UI library built with winforms as well. It would just be a nightmare for me to have to go through each screen to recreate it reliably.
Win32 was not removed from Windows RT, but your access to it (if your name wasn't "Microsoft"; because that low-level access was reportedly how they got Office on it) was.
And because of Secure Boot, which (unlike x86, for now) is mandated enabled for Windows on ARM systems, you had to wait for an unpatchable security hole in the booting process (which, while it exists, wasn't relevant until past the end of the Surface RT's lifecycle), you couldn't run full Windows 8 or a tablet-first Linux distro.
It's not mandated on for the newer Windows on Arm64 systems, but is configurable there.
Windows RT was just Windows 8 with a locked code signing policy, yup. And yes, Office on Windows RT was Win32, as were File Explorer, MMC, ... it's just recompiled Win8 after all.
It is more on the contrary. The registry is one of the most well-thought features of Windows.
Also there is nothing like "bloat". No process needs too loop around or smth like that, so there is literally no way to have a forgotten registry item slowing down your PC.
And last but not least: What are the alternatives? .plist config files like with Apple, scattering around the system?
If I remember correctly there was an internal effort at Microsoft to scrap the registry (Longhorn?) but they decided not to, and probably because a registry is actually a good idea and necessary to get something performant (compared to ini files).
The critique against the Windows registry stems from the Windows 95 days when the registry could become corrupt and repair or reinstall was necessary. However since then the registry works like a database, it has transaction logs and simultaneous writes are atomic. Registry is also strongly typed, not a bunch of strings. Registry can easily be backed up and restored.
Probably because Longhorn tried to replace even more parts of Windows with a database-like system, and they'd have rolled the registry-equivalent into that, if it had succeeded.
> It’s bloat directly impacts the speed of the operating system.
Do you have any evidence of this? I remember in the XP days the German c't computer magazine tested populating the registry with hundreds MBs of garbage and found no performance impact at all.
I don't know if Apple deserves to be in that list, UI-wise at least.
Yes, they do break backwards compatibility in many many other ways, but you could put a technical layperson who is used to Mac OS 9 and put them on macOS 11.4 (for those unfamiliar, Apple's OS has been at 10.x for about 20 years) and they would still reasonably be able to find their way around.
One element especially (the global menu bar) is why I got my parents to switch to macOS. They had to learn where 'print' or 'edit' or 'save' was once, and now they can find it for any program, and it'll probably still be in that place in 20 years time.
Its also why I think it's sad that Gnome abandoned the global menu bar. It's an amazing concept that if stuck with makes computers so much easier to use for a large contingent of people.
Yes. There are so many things Mac got it right for parents or grand parent users. Global Menu Bar and Single Mouse Button.
But generally speaking for them it was still a hassle and hurt to use a computer. iPad with Home Button was so much easier. No support calls for years. It was the computing devices that works. But now they moved on to Smartphone meant iPad get way less usage.
Which also means some of those design decisions that make macOS easier to use might not be relevant as PC transfer to a more professional type usage rather than consumer / everyone computing devices. But even in that case I still think Global Menu Bar is a better design.
So true. Today I must explain to my mother that she needs to press a flat picture (not a button) of three horizontal bars in order to pull up a command list. The list won't be sorted by category, but by a designer or developer's perception of which commands are most used.
In the mid 90s, I could walk my 80-something-year-old grandfather through WordPerfect with ease: "File does basic file operations, like save or print. Edit is for editing, like copying and pasting."
Menu bars work because they're a great feature-discovery tool when done right--with verbs that describe the commands, and with functions grouped by category.
"Modern" UIs don't. Try to explain it: "So, the lines are called a hamburger menu, they're supposed to look like a list of commands. And you can press it, even though it's completely flat. Then you need read the list until you find the command you want."
The Mac GUI's great innovation was combining intuitive visual cues with an consistent, unintrusive, and always-on system for feature discovery (the menu bar).
I like the global bar and also its underrated, consistent command search function. I think it was probably abandoned by gnome because every application also has a top row of icons in each window now.
My perfect OS would have a global menu bar and enforce that all commands can be issued by searching and all ribbons/icon bars can be turned off.
I think global menubars are severely underrated. They act as a sort of index of any given program's functionality, complete with key shortcuts and because it's a facet of the OS itself and will be there regardless, there's no point in paring away menus for minimalism's sake.
The worst part about the new gnome not only we don't have the global menu bar, the default top bar is basically a waste of space with barely any useful content in it.
That’s why I just use Just Perfection extension & remove the top bar. Then you just run budgie-panel or xfce4-panel w/ vala appmenu for the global menu bar on Gnome. Use xfce4 if you need it on 2 or more monitors though - Budgie only supports 1.
Better than KDE imo - you keep sane defaults, simpler configs, & consistent themes.
I argue that global menu bar is bad UI for big and multiple monitor era. It's fine for laptop but not for desktop. It's also not friendly to touch panel since it relies on what app is foreground.
3. The OS has a lightweight virtualization layer for file system and registry, that’s how 32-bit apps view things differently: https://docs.microsoft.com/en-us/windows/win32/winprog64/fil... Microsoft could have used that thing not just for 32-bit apps, for backward compatibility too, i.e. old apps could use special compatibility view of the environment.
4. Finally, the kernel supports multiple user-mode environments, Win32 is just one of them. The initial good version of WSL (I still use it every day, too bad they have killed the awesome product moving to virtual machines in WSL 2) runs Linux binaries directly on top of Windows 10 kernel, the subsystem is implemented in lxss.sys and lxcore.sys. Microsoft could have embedded couple popular Windows versions, such as 7 and XP, as different subsystems used for running old apps.
I understand the backwards compatibility case for APIs, but not for OS dialogs. Is there a compatibility reason why the folder properties dialog is crufty (unresizable, etc)? I always just assumed there was no engineering appetite or business case to work on it.
Non-resizable dialogs are one of the top reasons why I cannot stand Windows and find it a huge pain to work with as a non-regular user.
Now, while I can understand the sibling's point about third-party overlays [0] which may break when the windows suddenly become resizable, what I find absolutely infuriating is that even what seem like recent features still inherit this stupid behavior.
The thing that I'm reminded of is "Windows Defender Exceptions" (or similar, don't have a Windows box at hand). Those are configured through a new, Settings App-looking window.
Now I understand this is somehow different, because even though the window vaguely looks like the Settings App (huge icons, tons and tons of whitespace), it behaves very differently.
This "exceptions" panel shows a list of the folders that is fixed, although the outer window can be resized. So if you've got a big high-res screen and maximize it, you'll get 90% of blank space and will still have to scroll around to see the contents. Bonus points for the list being so skinny that I'm only able to see "C:\Users\vlad\..." and have to click on each entry to see it in full.
I sometimes jokingly say that it shows MS has a mouse business, and having to click a thousand times for the simplest of things is by design.
---
[0] Not sure what those are. Do random third-parties "augment" system dialogs by drawing random stuff on top of them? I find that thought horrendous.
>[0] Not sure what those are. Do random third-parties "augment" system dialogs by drawing random stuff on top of them? I find that thought horrendous.
The common example would be Dell/Synaptics adding their own tabs to the old Mouse system dialog.
I think the idea was quite sensible. Keeping the configuration in one place while supporting whatever features the manufacturers might have added e.g. touch pad gestures.
The only reason it's unfortunate is that the new dialogs don't support the old extension mechanism, forcing the old dialogs to be kept around.
> I think the idea was quite sensible. Keeping the configuration in one place while supporting whatever features the manufacturers might have added e.g. touch pad gestures.
I agree, but I thought that there was some sort of extension functionality, along the lines of "this is a mouse configuration panel, register it to [something] so that it's added to the mouse settings".
If any program tweaks a dialog, say by floating a title-barless window with a new control on top of some empty space (possibly after slightly resizing the window or a control in the window to make space), you can’t resize any window control, can’t change tab order, can’t add controls, can’t change background color, etc.
Detecting whether that is being done is challenging. Typical workaround is that, if any callback is registered with a dialoog, to keep things ‘as is’.
In the days before heavy security it was quite possible for programs to monkey around with other programs' UI in all sorts of way. A lot of that is still possible from an administrator or SYSTEM-privileged context. Some 15 years ago I wrote an Internet Explorer addon that added stuff to the statusbar by hooking into the IE window's message pump and intercepting winforms calls. Shit was wild.
Growing up in the 90s, I remember an article in Visual Basic Programmer's Journal teaching subclassing in VB by hooking into Notepad and adding a font picker (via a new menu entry that opens the font dialog) to change the text control's typeface. (This was long before MS added that same feature)
Yes, Windows is a kind of OOP based OS at its "kernel" (not to mix with OS kernel).
So one way to extend UI components, since its inception, is to request the Windowsclass structure of an existing control, replace its event handler function and then call the "base class" handler for the built in behavior.
The good old days with AHK. I remember writing the winsock wrapper library and httpquery wrapper back then, software of which i hope has been long superseeded by now.
A typical scenario is saving as jpg, where you really want to provide the user the option to select compression level.
That typically is for a single program, though, and by that program. System-wide changes, for example for a product that can compress files on the fly, affect every program using open dialogs.
>The reason why Windows is full of UI inconsistencies is (largely)
...completely unjustifiable?
Come on, why does this mean we need 5 different sound dialogues to do 5 different things? That's ridiculous on every level. It used to all be in one place anyway, so it's not even like it needs to be spread out in the first place. Make the old dialogues inaccessible, hide them, and create a new one which does all of those jobs. Then get rid of the old, now unused ones at the first opportunity.
Is the explanation really backwards compatibility, or is it lack of organisation?
Every windows update makes the strips a function from the control panel and ads something not quite as good to the settings app.
After the last update the settings app even has ads for 'bing rewards points' in it. Which appear to be impossible to remove.
I need to look harder at getting one of the commercial versions of windows that only gets security updates, but no feature updates, because I've come to hate and fear upgrades.
I get it, all practical evidence seems to be that they're completely incompetent and this is impossible and any attempts to clean it up will inexplicably make it worse, but the fact that's the state of affairs at a two trillion dollar company is absolutely ridiculous.
Backwards compatibility would be the most likely explanation for why the settings panel has interfaces from the last five operating systems versions. Considering how flaky Windows settings have been historically, and how complex it must be (in part due to the 40 years of backwards compatibility) it surely wasn’t practical to completely rewrite those components.
I'm also involved with Microsoft, and my view is that the culture is to move on to the next goal too soon after the next gen solutions have been developed.
So they make control panel 2.0, reach 70% coverage, launch, and never move the remaining features into the new version so they can sunset the old one.
> Disclaimer: I work at Microsoft, but not on Windows (and I deal with a SaaS at MSFT). I am a FreeBSD committer and help maintain FreeBSD's GNOME packages and (very recently) the graphics drivers.
Completely unrelated and a shot in the dark, but if you’re both a Microsoftie and a FreeBSD user/committer, the FreeBSD .NET port is stumbling/regressing somewhat and could definitely use a little help:
Thrre are literally people with scripts that click around the UI every hour to achieve something in a factory. The motto of windows is write once, run forever. I think there is a certain beauty to that
Perhaps Microsoft doesn't own all the relevant code? Historically, there are too many win32 API users "clever" enough to exploit the coupling between UI, business logic and old assumptions that don't work anymore in modern platforms.
I don't think it's actually about backwards compatibility, because the logical solution to that would be to provide a unified dialogue with all necessary settings, and keep the old ones for BC. Instead, they've just moved some of the features from the old dialogues into new interfaces, and left others (many of which are vital), so the entire thing is fragmented. It's completely incompetent.
This is part of the explanation but it's clearly not the whole explanation. The other part is why Windows has gone through half a dozen different UI toolkits while macOS is recognizably the same with some re-skins since 2001. There's no backwards compatibility to be broken if you get the UI right the first time, and there's no excuse for introducing a whole new UI model with every release. It makes the whole OS feel like a gigantic pile of technical debt, and gives the appearance that engineering simply moves on and greenfields a new UI system when the old one becomes unmaintainable.
> Apple, et al. is more willing to break things than Windows is. They aren't as bound to legacy compatibility, so old UI elements can be shed easily.
macOS has actually been pretty good at seamlessly adding new features to old apps, with just a recompile against the latest SDK, like all the NSDocument-derived stuff (auto-save, auto-recover, iCloud etc.), Dark Mode, accessibility etc.
There's some intuitive logic to this. But it's also really really hard to understand why they cannot write modern interfaces for all the backwards compatible systems. Just pretty it all up.
It's bizarre that to do some basic audio or networking configuration I have to wander through 2-3 generations of UI.
Well I thought Windows on ARM or Windows 10X was the perfect moment to get rid of those backward compatibility problem. At least there are incentive / reasons to be doing so.
And why can Microsoft goes the same route as Apple's Cocoa and Carbon?
Nope. Because the goal was to make it as seamless as possible to port software to those platforms, ideally by just recompiling with a different flag. The offerings would be DOA without dev buy-in which wouldn’t happen if there was too much friction in porting.
It's not like they haven't tried it - Windows RT and Windows 10S have largely flopped. You could say this is because of the other changes trying to put the MS store as a required middle man, but both boil down to users rejecting Windows when it doesn't run all their existing software
The reason why Windows is full of UI inconsistencies is (largely) because of one thing: backwards compatibility.
While backwards compatibility has it's perks, it also means having lots of old code in Windows that can't be touched very easily without breaking compatibility, And that means many old UI elements may stay, that's a side effect.
While desktop Linux/BSD isn't exactly well known for it's UIs, I found GNOME 3/40 to be more consistent UI-wise than Windows 10, being a user of GNOME 3 on FreeBSD at home (which I am typing this comment from), and helping port GNOME 40, while (unsurprisingly) using Windows 10 at $DAYJOB.
But then GNOME, KDE, Apple, et al. is more willing to break things than Windows is. They aren't as bound to legacy compatibility, so old UI elements can be shed easily.