16 ms·
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 (v
by neelc 5y ago
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.
- meowkit 5y agoI work on the core OS. 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).
- Solocomplex 5y agoThey tried modernizing with Windows RT, which was actually very smooth and functional if it wasn't so locked down.
- cheschire 5y agoWasn't RT just windows 8 with an ARM build target and win32 stuff removed so they could sell cheaper tablets? So if you wanted an "unlocked" windows RT, couldn't you just have run windows 8?
- qball 5y ago>win32 stuff removed 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.
- my123 5y agoIt'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.
- gogopuppygogo 5y agoCould you ever see Microsoft dropping the registry? My probably unpopular opinion is that the registry is the worst feature in Windows. It’s bloat directly impacts the speed of the operating system. Seems like such a waste for so many advancements in Windows but the registry sticks around like a bad hangover.
- for_xyz 5y agoIf you drop something, then you need some kind of replacement for that. I don't see any alternative on where entire OS could be configured other than registry.
- bmn__ 5y agoKDE and all its applications and a majority of other Linux desktop application use the configuration laid out in <https://specifications.freedesktop.org/basedir-spec/ https://specifications.freedesktop.org/basedir-spec/>.
- secondcoming 5y agoHow is it worse than having config files scattered around in distro-specific locations?
- em500 5y ago> 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.
- jpeter 5y agoIs this also the reason why there are no tabs in windows explorer?
- blackoil 5y agoIt is a power user feature which most users won't will not appreciate. I am using Mac for about 7 years now, and almost never use tabs in Finder.
- rbanffy 5y agoTabs 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.
- tveyben 5y agoI stopped using Windows file explorer more than a decade ago when I learned about spatial file managers. I have been in love with - and 10x more productive using - TotalCommander! The ability to >98% of the file related tasks from the keyboard is very addictive!!!
- bmn__ 5y agoYou have confused terminology. TC is an example of orthodox file manager. Explorer is an example of spatial file manager.
- Flockster 5y agoI'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.
- jiggawatts 5y agoStating 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.
- azinman2 5y ago> 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.
- andi999 5y agoWhat market share is left there to gain? Ok 17% Mac OS, maybe 5% would switch to Windows?
- rocqua 5y agoI think this inconsistent experience is what is opening the door for competitors like Apple and Linux.
- rbanffy 5y agoI 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.
- wayneftw 5y agoThe 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.
- flohofwoe 5y agoAsking 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.
- Macha 5y agoThis 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
- flohofwoe 5y agoFWIW: 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.
- paavohtl 5y agoI 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.
- 5y ago
- temac 5y ago> 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 )
- emsy 5y agoThe 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).
- TheRealDunkirk 5y ago> yet theres no real alternative for most people 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.
- emsy 5y agoI 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.
- uhryks 5y agoFrom 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.
- c7DJTLrn 5y agoThis is exactly what unit tests are for. Besides, the business logic should be already fairly separated from the presentation logic. As for preventing inconsistencies in future, try getting your QA team back.
- ladyattis 5y agoHonestly 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.
- ridiculous_fish 5y agoI 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.
- Someone 5y agoIf 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’.
- ridiculous_fish 5y agoWow! There really are programs which plug into dialogs in this way? Well, that's a new level of compatibility hell. Thanks for the answer.
- creshal 5y agoLook at Autohotkey for a starter down the rabbit hole of "we don't need APIs, we have a GUI!" and the fallout of people desperately working around it.
- _nub3 5y agoThe 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.
- williamdclt 5y agoAHK was how I started programming, good times. When I switched to Linux, this was the main thing that I missed (and I still kind of do on MacOS)
- jorvi 5y agoI 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.
- flyingchipmann 5y agoThe 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.
- rbreaves 5y agoThat’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.
- johnwalkr 5y agoI 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.
- kitsunesoba 5y agoI 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.
- code_duck 5y agoBackwards 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.
- ksec 5y agoWell 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?
- ComputerGuru 5y agoNope. 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.
- Macha 5y agoIt'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
- forgotpwd16 5y agoWhy can't old code remain underneath but UI elements replaced?
- refactor_master 5y agoUI and logic are probably not as decoupled as we’d like to think.
- MillenialMan 5y agoSo decouple them. Microsoft has annual revenue of $143 billion. Their flagship product should not be a neglected mess.
- ClumsyPilot 5y agoThrre 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
- MillenialMan 5y agohttps://xkcd.com/1172/ https://xkcd.com/1172/
- summerlight 5y agoPerhaps 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.
- MillenialMan 5y agoI 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.
- muterad_murilax 5y agoSurely at least the old bitmap graphics could be updated without breaking backwards compatibility?
- josteink 5y ago> 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: https://github.com/dotnet/runtime/issues/14537 https://github.com/dotnet/runtime/issues/14537 (Better start at the end of that thread, rather than the start) Anything you could do to help (if only pushing the right buttons/people internally), I’m sure would be greatly appreciated.
- reniflex 5y agoPlease don't waste your time and talent on GNOME. The GNOME project burnt all their good will and capital building a touch focused UI (for all those touch devices running linux, you know) at the cost of their very desktop orientated userbase (sound familiar?). The core project members are more interested in social justice witch hunts than creating a good product and it shows. Open UNIX's are desperate for a light comprehensive desktop environment with modern features. GNOME ain't it chief.
- MillenialMan 5y ago>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?
- NickNameNick 5y agoOr they could just stop screwing with it? 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.
- HellDunkel 5y agoThe updates/upgrades on Windows 10 were particularly bad- i was a late adopter and still ran into an unfixable black screen on startup. not good.
- MillenialMan 5y agoThey've made a mess, they should clean it up. 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.
- Razengan 5y ago> 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.
- KKKKkkkk1 5y agoThe reason why Windows is full of UI inconsistencies is (largely) because of one thing: backwards compatibility. I've been a Windows user since Windows 3.11. I suggest another explanation: Microsoft has been a monopoly in desktop OSs for 40 years, and it shows.
- Waterluvian 5y agoThere'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.
- strictfp 5y agoI'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.
- Const-me 5y ago> And that means many old UI elements may stay, that's a side effect. They should stay on disk to be used by programs compiled 20 years ago. They should not be used by OS components, nor visible to end user unless they run these old applications. The OS already has multiple good ways to achieve that. 1. New programs can opt in to new stuff with a manifest. That’s how you get high DPI support in WinAPI: https://docs.microsoft.com/en-us/windows/win32/hidpi/setting-the-default-dpi-awareness-for-a-process https://docs.microsoft.com/en-us/windows/win32/hidpi/setting... 2. New programs can call some API functions to enable new stuff. That’s how you get modern versions of Win32 common controls: https://docs.microsoft.com/en-us/windows/win32/api/commctrl/nf-commctrl-initcommoncontrolsex https://docs.microsoft.com/en-us/windows/win32/api/commctrl/... 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/file-system-redirector 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.
- jolux 5y agoThis 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.