Funny how the more the screenshots go back in history, the more 'useful' the UI looks like (even though they no longer adhere to the current fashion fad - which should actually be handled through a user-accessible themeing engine, no need to pay some UI designers big bucks to come up with rounded corners).
For instance right in the first Task Manager screenshot, I have no clue what those tab icons on the left side actually mean - with one exception: "users". There are two icons that both look like hamburger menues FFS.
The newer UIs also seem to be lacking a clear visual hierarchy. The Task Manager screenshot feels quite cluttered to me, not because of the amount of information presented (which is actually well-balanced IMO), but because different parts of the view are not properly separated from each other visually. The biggest offender is probably the scrollbar between the stack of summary graphs on the left and the stack of CPU graphs on the right. This scrollbar would work way better in the "old" style, with a frame that extends over the entire height of the scrollable viewport, since that frame would provide a clearer boundary between left and right.
It's not just looks, there are real features missing from the new control panel activities too, and I don't look forward to the day the old ones are removed. For example, to disable a network adapter, you have to go into the Vista/7 version of Network settings so you can right click it and get the context menu. It's a mess!
Respect must be earned, like back when it was called "Human Interface Design" and involved actual scientific research (e.g. between ca the late 70's to mid-90's) instead of just coming up with esoteric essays from time to time about what 'emotions' certain colors, fonts or rounded corners evoke.
Would you please care to point to something ACTUALLY useful to end users that came out of the W11 UI "redesign"?
Because you cannot legitimately look at the W11 task manager and tell me it was designed with any sort of professional UI/UX in mind. It's busy work to keep a job. And if it is then there's something deeply wrong where no UX theory is being applied, or they're being overruled to make it "app-y".
Microsoft's UI designers used to be useful. The Windows UI design got better by leaps and bounds at first, was at its peak between Windows 95 and Windows 2000, and has been getting worse ever since. The problem is now that the field has matured, there's a lot less that needs to be changed, so they've started to change things that were fine the way they were to justify not being downsized.
You're conflating 'being dismissive' with 'being critical'. I think HN very much agrees that good UI is very important, so much so that they take the time to critiquing it when it's obviously bad.
I've met some great UI designers and they could take a libXaw application and have it present information cleanly and offer available actions and context transitions that make sense.
But these people are not rewarded in today's industry. The criteria for good UI design these days is all about "lOoKs mOdErN". Plus the field seems increasingly tied to HTML/CSS/JS. Development teams as a whole are not incentivized to do UI design with an emphasis on making the user's work easier... they're incentivized by engagement KPIs and the like. So there's a trendline towards more sizzle and less steak.
It's some specific fads that get complained about. Plus the big fact that, for the people who post on hackernews, more modern UIs are actually worse for them and their workflows.
Why would you not dismiss a profession that actively makes your life worse?
I don't know why it is so pervasive, but programmers think they are inherently good at UX/UI for some reason. And they are very possessive about it. I was until I married a designer, and they actually went to school to study visual composition, balance, color language, etc.
I'm fond of saying UIs designed by engineers look exactly like UIs designed by engineers. I'm not saying that all designers are always better than all programmers, but when you've studied visual composition, it shows.
I mean just look at the scorching replies you are getting. You definitely offended some people who fall into this "I know better than any stoopid artist" category.
Piling on. It's easy to be dismissive when the resulting design is so uncompelling. It can't accomidate the existing needs, but the existing needs are compelling enough to leave the old version, likely for at least a decade.
If the new design was adequate, it would probably be adopted in a release or two. If it were better, there would be demand to get it to all the well used components. There might still be some components left behind, there's a lot of components.
A truly inspiring design might pull everything forward automatically... But that's asking a lot.
UI design is trending in a bad direction. UIs are being designed as some sort of modern art piece rather than a tool that is designed to be used by humans.
My favorite example is VS Code vs Rider.
VS code looks like a toy. A big stack of unlabeled vage icons that require a decade of context to intuit. Compiling your program takes three clicks and a context switch away from your code! Unless you're a normal person who hasn't memorized those icons, and then it's six or seven clicks while you fumble through the menus.
Rider is a classic ugly UI. everything has labels or tooltips. There's a goddamn toolbar with all your common controls. Building your code requires one single click.
Not a single person is going to stare at your landing page like it's a genuine Picasso. Your ui is not going to be placed in the museum of modern art.
A UI is a tool. If someone has to ask you how to use it, it's not very good. If your users are fumbling through menus after the first hour, it's a bad design. If a user has to have the documentation open at all times to decode your hieroglyphic icons, it's a bad design.
As for my own UI design, the core philosophy is first-order accessibility. If you have to do a task every time you open the program, then that task is accessible with one or zero clicks. If a user asks me what a button does, it gets a better label or a helpful tooltip as well as a mention in the docs. My UIs look like something out of windows 95: simple controls laid out in a grid in clearly delineated functional groups. Everything is labeled and laid out in a way that places the most common controls in VERY OBVIOUS and CONVENIENT locations. It's ugly because it's designed to be used and not looked at.
If a user spends time in my program that isn't related to the task they're doing, I've done something wrong. If someone has to ask me how to do something, it means I have to rethink my design. If users are relying on documentation to navigate my program, I need to redesign.
I respect ui designers who build helpful and useful UIs. I don't respect designers who drop all text and sprinkle a dozen abstract images on a vast barren wasteland of screen space.
ETA: I'm an engineer and I build engineer style UIs: brutal in their simplicity, and utilitarian above all else. Literally not one person who will ever use my programs will care that it's ugly so long as it works.
At some point we've lost the idea that programs should be useful more than they are "pretty". It's a trend that I find frankly abhorrent, and I believe it's one of the major factors that's making software as an entire field worse and not better.
The single most "oh, Microsoft" moment I had when updating to Windows 11 is actually glossed over in this article without comment. Context menus are restyled, and also now have a "show more options" entry[1] -- if you press it, what happens? The pre-Windows-11 context menu appears.
That's right. There's archeological layers of UI design in context menus now.
I feel so angry about that new context menu. It's also visibly slower than the previous one (which, in turn, is slower than the Win XP version was). The second WTF was the centered start menu, killing my decade old reflex of going to the bottom left with the pointer and clicking. This at least has a toggle.
>The second WTF was the centered start menu, killing my decade old reflex of going to the bottom left with the pointer and clicking. This at least has a toggle.
Why do people even mention this? As you said, it has a toggle. How did it “kill your decade old reflex” when it literally takes 5 seconds to fix it?
That new context menu is garbage (for me). I use advanced functions regularly to the point that after a day of being on 11 it bothered me enough to figure out how to revert to showing the “advanced” (old) context menu.
That, among other things in Win11, was one of the last big pushes that got me to start using Linux full time. It's clear Windows isn't headed towards some bright future. Just more and more layers of shit on top of last gen. Like they can't actually finish anything. Just a katamari of code.
To be fair, I think some examples, and specifically those from 95/NT and then 3.1 times, are too far-fetched. I agree that consistency is important, but it doesn't mean that every screen needs to be redesigned altogether. For instance, I don't think that examples of Screen Saver Settings or File Properties are relevant, as long as their styling is in line with the rest of the OS.
One thing that surprises me a lot, though, is that a lot of applications seem to need to be upgraded one-by-one, even if the UI is largely the same and only the styling needs to be upgraded. I never developed for Windows UI, but does it mean that there is no single reusable UI Kit, where just the styling could be changed from OS version to another? Do all these examples demonstrate that different applications are compiled with different UI Frameworks that are all in use and supported?
I agree, but I do want to point out that some of these "not updated" things are still heavily used and offer a bad user experience.
For example the Services (or any mmc based) UI with no filter/search integrated is absurd. Heck they just "redesigned" Task Manager and none of the tabs have filter/search functionality which is annoying to say the least.
I suppose you can start typing with the inner tab having focus, and it SOMETIMES finds the correct thing, but it isn't reliable and is hidden functionality that people just need to know is a thing.
Props to them adding an address-bar to RegEdit though (in the W10 Creators Update) and multi-tab Powershell terminal. Very welcome and positive improvements. Wish we had more stuff like that.
Task Manager not having a modern filter/search for the gigantic list isn’t only an annoyance and a productivity killer but also a security issue.
If I suspect a nefarious app is running in the background somewhere I have to manually read the list to find it and kill it.
End of the day one of two things is happening, either no one influential at MS uses Windows or their structure is so broken that pointing out something like this it isn’t even possible to action the feature to be built.
That's not quite true. The Event Viewer has always had filtering and search and it's mmc-based. They could easily iterate on the Services UI and add that too instead of just building something completely new that has no new functionality and doesn't improve the interface.
I'm tired of Microsoft actively making things worse instead of actually improving what they already have.
>>Do all these examples demonstrate that different applications are compiled with different UI Frameworks that are all in use and supported?
yes, examples include win32, mfc, wpf, winui 2, winui 3 are all UI frameworks that MS has released over the years, all of which are still in active use, some more than others.
For example, WPF is probably one of the most widely used, even though MS keeps trying to kill it.
If you're using win32, it will automatically update most of its widgets to match new styling - but if your application is old enough it won't happen automatically since it would have broken things. You have to opt in by having styling turned on (this is really easy to do).
Be aware though Microsoft considers its WinUI 3 framework as the primary framework for implementing its Fluent design language and controls. (WinUI 2 will get you there too but has recently been deprecated.) Win32, common controls, WPF, WinForms, etc. are considered legacy technologies and cannot officially make use of many Fluent styles or controls.
> For instance, I don't think that examples of Screen Saver Settings or File Properties are relevant, as long as their styling is in line with the rest of the OS.
The only styling in common is most of the window colours match the selected theme.
The window decoration style, layout, font sizes, iconography, buttons are all artifacts of older MS Windows and do not match the modern Win 11 design language.
To be fair to windows I have several programs some over 20 years old which keep their exact behaviour and (with some minor updates) their looks, I appreciate not screwing those over for the sake of the latest GUIFAD
One universal solution that works for all apps - you render the app in an off-screen buffer and pass that to AI to re-render it in the new style. This way you don't need to touch the code.
AI could also translate mouse clicks/coordinates accordingly if it moves stuff around.
You could even have "UI themes", tell the AI to re-render in Windows 2000/XP/11 style.
EDIT: the downvotes I'm getting with no comments are funny. This will happen in the next 7 years because solving this problem once it's much cheaper than fixing all the apps one by one.
Sometimes in my career I wonder: Is this finally it? Have we finally hit the point where software will stop getting slower and chonkier every year? I can’t think of sensible sounding ways to justify making software run orders of magnitude slower than it does now. And yet, I don’t know how but every time … it happens.
Java came out when I was young, with a huge JRE installation, slow startup times, GC pauses and Java Swing.
Then Electron came out, making a “hello world” gui app need 800mb of RAM. Electron makes Java feel light and nimble.
Honorable mention for docker convincing windows and macos developers to write software inside slow virtual machines for no reason.
Recently, despite the tireless work of photoanalysisd on my Mac, and Microsoft teams on windows, things were starting to get faster again. Thank goodness for you, parent commenter. I can worry no longer. I was starting to wonder if the curse might be lifted.
I can see it now. It’s 2026. My fans spin up as a 8gb neural net live-translates the UI of notepad.exe for the modern age. My $4000 graphics card is showing its age. My mouse lags while I try and click on the menu. The UI is rerendered because Microsoft couldn’t be bothered porting the windows 11 UI code to the new windows 13 UI look and feel. Windows 13 looks different yet again for no reason. So they do the translation live on my GPU instead because it’s cheaper (for them). Programmer time is still expensive. In the background ChatGPT quietly makes web requests to live-translate all the menu items into the new social media acceptable language. The start menu is now on the right.
Since you're asking for 'downvote comments': UI themeing had already been solved decades ago, there's absolutely no need to bring AI into play for a solution to a problem that doesn't exist in the first place - on the other hand I get the impression that this is the one thing that AI is really good at ;)
But back to the topic: The reason why UIs are no longer themeable has zero technical reason, instead it's a cultural problem (the introduction of artificial 'fashion cycles' into UI design for no other reason than justifying the existence of a 'UI designer' job role.
It's a good idea. I'm interested to see how much AI can improve UI and its development. Automatic dev aside, there's a whole world of flexibility and dynamicness there that we probably aren't even seeing because it's such a hairball.
Imagine a UI that guesses what you are trying to achieve and optimizes itself appropriately on the fly.
(And yes, tweaks all the fonts, palettes, etc to look nice too).
UI designed by humans could be a thing of the past. We could just feed the AI references to the variables we want the user to view/twiddle and the AI would do the rest.
>You could even have "UI themes", tell the AI to re-render in Windows 2000/XP/11 style.
I love this idea! Having the ability to choose from decades of UI design would absolutely be a feature. However MS needs to fix all of these UI inconsistency bugs first. Second, don't use AI. Just consistently apply the UI to the OS.
What's more embarrassing than UI is that after 10+ years Win10/11 Settings still don't have the functionality parity with Win7 Control Panel, evidenced by the fact you find links everywhere in Settings to officially ask you to open their equivalent in Control Panel to adjust "advanced" settings.
And even at the places they do, arguments can be made about if their UX/UI are actually better; but that's kinda subjective, to be totally fair to MS.
This is now my major gripe with windows with tool versioning (since i admit that IIS is now more than usable, unlike in 2012). The settings are a pain to go through. When i find a powershell command or a regedit/cmd action that can avoid me the pain, i take it (and i'm always bummed that those are often the last proposed options).
Also, i think spotlight in mac is way better than Search, and i dislike that it is Win+S instead of Win+Space. I also think that the default itl layout is a smidge better for dev on Mac, but at this point it's too late.
Also to be fair as i mostly use linux: search is way worse and the default are even shittier than windows, but since i can import "my" defaults in 45s, basically the time to type `sudo apt install git make; git clone XXXXXXX/my_default.git; cd my_default; make && sudo make install && reboot`, i'm not too cross about it.
I have a bit of a perfectionistic tendency to 'start over' things over and over and do them again as perfectly as possible; the Windows side of MS feels like a corporate embodiment of this habit.
They've done this sort of thing with app installers(setup.exe, click once, appv, msi, msix) and UI frameworks(win32, mfc, wpf, winui 2, winui 3). It's like the teams responsible for their respective product keep starting over with a shiny new way of doing things every couple of years to achieve the 'perfect' installer/ui framework or anything else for that matter. Infact W11 felt like a way of 'restarting' W10 without building a whole new OS.
Atleast with W11 they're actively updating old things rather than introducing new ones, I did not have a lot of hope when it first came out, but they have gotten my hopes up since the release for sure. I just hope they stick with winui 3 and see it through.
Well, if you're UI designer and designed the UIs launched it and all works... what else you're going to do ?
Same disease that plagues GNOME, change shit for sake of changing shit, fuck users that got used to the old way, they don't matter, is new way faster ? Who knows, we don't.
It's funny how the huge silent majority get on just fine with GNOME but the vocal few act like the devs have poked them in the eye and called their mother fat.
While I'm a die-hard KDE user, I like how GNOME experiments with new ways of evolving the desktop paradigm and workflow attached to that.
Yes, they remove a lot of settings, and have a binary format for storing settings (and I don't like these design decisions), but it looks that they're becoming a very good DE for non-technical Linux user.
If any Linux desktop environment had 5% of this inconsistency, they would be battered to hell and back. Today, thanks to efforts of KDE and GNOME, even Qt and GTK apps can be rendered almost identically.
One might not like the direction of a particular DE, but I think we can agree that they're putting a lot of work towards a better, more usable desktop experience (and, I had my fair share of 3rd degree burns during GNOME3's teething as a developer).
AFAIK, GNOME 2.0 and KDE 3.5.x is still maintained as independent, different projects now, too.
I'm not complaining about the visual appeal of the UIs, I think they look great. I think MacOS is a good example of iterating on your UI experience and improving it, but not changing it to the point where half your OS ends up looking out of place due to tiny inconsistencies like the colour of titlebars or because the entire style of your OS keeps changing upon every new version.
Imagine if the next version of MacOS had square icons for close/minimise/maximise and to update your app to use that new style, you had to switch UI frameworks. Then you'd end up with 2 different styles of apps on your system because not every app out there made the switch, and one would now look very out of place. That's the sort of thing Windows seems to do every major release.
GNOME3 was released in 2011, and around then, KDE did the same major overhall. I haven't seen too many major changes in the overall approach to the UI either has taken since then. Probably the most dramatic was the GTK4 update, which took quite a while.
In fairness, MSIX is very different to MSI and ClickOnce was primarily a way to bootstrap MSIs from the web.
MSI (long since deprecated) is essentially an ad-hoc relational database serialized to a file with embedded blobs that tells a generic engine how to install files and update the registry. It was written for Office in the 90s and was therefore dominated by the retail model of physically shipping CDs.
MSIX is a totally different beast. It's more like a package for Linux. The format is a signed zip file with some embedded XML files. One of them is a "block map", which is basically an index into the zip data by chunk hash. Packages are installed to immutable directories, which lets Windows optimize out the download of data it already has on disk by copying from other packages or even just hard linking files together. Delta updates thus come for free (albeit not as powerful as diff based schemes when inserting data into the middle of a file). Another XML file declares how the app should be integrated into the OS. The old MSI/EXE model of manually patching and unpatching the registry and filesystem to do integration is gone here; for example, if you want to register a CLI command then that's an XML tag, if you want a file association or URL handler, that's a bit more XML. Windows takes care of wiring everything up and removing it on uninstall.
Most importantly, MSIX takes care of online updates. MSI never did this. You can register a URL for a package that points to yet another XML file, and Windows will download deltas and apply them in the background even if the app isn't running (a la Chrome).
So Microsoft's packaging tech hasn't churned that much. There were CABs from the Win3.1 days, then later MSI from the late 90s, and starting in Windows 10-ish timeframe MSIX. All of these are very different technologies.
One of the nice things about MSIX is that it's feasible to create them from other platforms, because although Microsoft's tools are Windows specific the format is simple enough to reimplement. Not simple - the way they compute the block map and signature data effectively requires you to write your own ZIP library to create them - but it can be done and that's why the new Conveyor tool [1] is able to create Windows self-updating desktop apps from Linux and macOS. If you have a pre-compiled runtime like Electron or the JVM then you can push out updates with one command from your Mac/Linux dev laptop, it's no harder than publishing a static website by rendering Markdown to HTML, and that makes it feasible to develop quick lightweight desktop apps in a convenient manner. With the old MSI or InstallShield tech it would have been much harder to create a cross platform tool like Conveyor.
[1] https://hydraulic.software/ (it can also do Linux and macOS apps from Windows, but those are a bit easier)
In my experience MSIX is the typical MS Windows project where it sounds really cool and looks well documented and supported until you actually try to use it. If you're on the beaten path, like a mobile app port for the windows store, it's probably fine. But if you're trying to do anything out of the ordinary you have to start doing Microsoft archaeology to figure out why something doesn't work.
For example certain build configurations would cause the runtime runtime to be somehow slightly different from the build runtime and it would trigger control flow integrity to immediately kill the app on startup which was very difficult to debug.
Also from documentation it looks like it's possible to install a background service and communicate with it over a named pipe from another application in the same package but in practice I don't think it's actually possible, even in a full trust app.
I think the goals of MSIX and the App SDK are good and I applaud them trying to make it flexible to support every kind of app, it just hasn't had the time or resources put in to be really worthwhile over just using NSIS at present.
Is it really deprecated? Isn't MSI still the only installer type directly supported by Group Policy? My company had an enterprise customer request an MSI for that reason.
MSIX is interesting but effectively unusable outside the Store (I spent a few months of my life trying to do that at $PREVIOUS_JOB). Installation will fail on a high percentage of machines, and you'll mostly be out of luck. There's a reason nobody at Microsoft uses it for installation outside the Store (Office did for a while but they gave up).
The codebase goes back to nearly 40 years. It would be more shocking if it there weren't legacy code hanging around.
Windows is one of the most impressive pieces of software I have ever seen. No other platform boasts the kind of backwards compatibility that is seen in this operating system. There are shim layers on top of shim layers and the developers seem to have gone through great pains to keep the operating system backwards compatible.
Comparatively, the Linux kernel API is stable, though applications relying on newer system calls are forever stuck requiring minimum kernel versions. On the userspace side, application packages are in a near constant state of flux and can break with a single version/dependency change.
Windows NT, is almost 30 years old. That is the OS that the other OSes use today as a base. Unless you want to mention Windows 95, but still, "only" 32 years.
Doesn't Linux desktop (say Ubuntu) generally have strong backwards compatibility? There are issues occasionally, but no worse than trying to run Windows 9x apps on Win10+.
back compat is awful on Linux with the exception of the kernel. Unfortunately you need more than a stable kernel ABI to get proper back compatibility and the userland libs don't want to play ball.
As a long-time Linux user with habit of throwing everything into the mix, I got quite used to number of inconsistencies that I have, so I don't think that MS deserves criticism for having them too (although article is not very critical, it just counts the inconsisitencies). I have GTK2/3/4 apps, KDE apps, Qt apps, Electron apps, AND Windows apps running under wine. So the only consistency on my desktop is an inconsistency. Also Windows has good track record for backwards compatibility, no surprise that an OS has some "ancient" parts.
Linux user here as well. The thing that upsets me with windows in the inconsistency in the OS not the applications.
Take Fedora, Manjaro or Ubuntu with any major flavour like Gnome or KDE and you get a very consistent way of how your OS works and responds to common tasks. It's kinda easy for non experienced user to find the right settings with no UI change on a modern Linux Desktop.
I think with Linux, the amount of OS-level GUI screens is much more smaller compared to Windows. The main OS level GUI screen I interact with is the Settings screen and that basically has been a left-side tree showing the content on the right side or a grid that points to the individual sections. That is comparatively a much easier change in terms of UI level changes. Other OS-level screens are usually separate applications e.g. gparted which looks different from the Settings screen in KDE plasma (and totally understandably so, not complaining).
Linux does this by breaking things wholesale. Any Gnome extensions etc. need constant maintenance or they break in between versions, while Windows provides binary compatibility and doesn't even require recompiling.
That's fair when it comes to apps from random sources.
But KDE apps all look consistent. I don't really use it, but it seems to me that Gnome apps also are consistent. Ditto for XFCE.
Whereas Windows, even among out-of-the-box and "system" applications, there's a variety in the look & feel. Until 7 it was more or less the same. But starting with 10, it all went downhill, and 11 didn't really fix anything in that department.
While I don't blame you for purging it from your memory, you seem to have forgotten about Windows 8. It introduced the Settings concept and who can forget that start menu!
Linux distros are a mix of mostly independent projects, there is no central authority telling them how it should be done and therefore inconsistency is inevitable. It applies to the command line too (looking at you "ps"). And yet, the parts that the distro vendor controls, usually the default desktop environment and settings screens are usually rather consistent.
For Windows, I don't think anyone complains about the fact that if you run an ancient Windows app, it looks like an ancient Windows app. In fact, backward compatibility has always been one of Microsoft strongest selling points. What people complain about is that Windows itself is inconsistent. Windows branded components, made and owned by Microsoft, included in the main OS with no alternative offered are inconsistent. The worst part is the control panel, it is a mess and they have no excuse, it is an unfinished job that shouldn't have been out of beta.
Many distros adds their own layers of complexity, which inevitably breaks during upgrades or adding packages from third-party repos.
Arch packages do very little extra usually, and often works more like if you install from source. So it's not always the fault of devs, and is why installing from source was/is a thing.
Bonus with Arch is Aur, one big repo with most open source software available from git.
>The ability to choose icons that are more than 30 years old is still here, with the inclusion of the very important and absolutely critical to the good function of the OS moricons.dll
I will happily bet there are programs out there that would crash and burn horrifically without moricons.dll.
I will bet that almost* no one at Microsoft (*well maybe Raymond Chen) knows that it's there and what it does, they are too busy piling up (not-so)shiny new things.
I imagine that Raymond's day at the office is basically him going from room to room saying hello and telling people stuff that everyone else forgot. Then he has lunch with someone else of the old guard, pops into random meetings to unblock the discussion and finally spends the last hour of the day writing another blogpost for TONT.
For instance right in the first Task Manager screenshot, I have no clue what those tab icons on the left side actually mean - with one exception: "users". There are two icons that both look like hamburger menues FFS.
It’s really unfortunate how dismissive of the entire ui design profession so much of HN is. Not a great look IMO
Because you cannot legitimately look at the W11 task manager and tell me it was designed with any sort of professional UI/UX in mind. It's busy work to keep a job. And if it is then there's something deeply wrong where no UX theory is being applied, or they're being overruled to make it "app-y".
But these people are not rewarded in today's industry. The criteria for good UI design these days is all about "lOoKs mOdErN". Plus the field seems increasingly tied to HTML/CSS/JS. Development teams as a whole are not incentivized to do UI design with an emphasis on making the user's work easier... they're incentivized by engagement KPIs and the like. So there's a trendline towards more sizzle and less steak.
Why would you not dismiss a profession that actively makes your life worse?
I'm fond of saying UIs designed by engineers look exactly like UIs designed by engineers. I'm not saying that all designers are always better than all programmers, but when you've studied visual composition, it shows.
I mean just look at the scorching replies you are getting. You definitely offended some people who fall into this "I know better than any stoopid artist" category.
If the new design was adequate, it would probably be adopted in a release or two. If it were better, there would be demand to get it to all the well used components. There might still be some components left behind, there's a lot of components.
A truly inspiring design might pull everything forward automatically... But that's asking a lot.
My favorite example is VS Code vs Rider.
VS code looks like a toy. A big stack of unlabeled vage icons that require a decade of context to intuit. Compiling your program takes three clicks and a context switch away from your code! Unless you're a normal person who hasn't memorized those icons, and then it's six or seven clicks while you fumble through the menus.
Rider is a classic ugly UI. everything has labels or tooltips. There's a goddamn toolbar with all your common controls. Building your code requires one single click.
Not a single person is going to stare at your landing page like it's a genuine Picasso. Your ui is not going to be placed in the museum of modern art.
A UI is a tool. If someone has to ask you how to use it, it's not very good. If your users are fumbling through menus after the first hour, it's a bad design. If a user has to have the documentation open at all times to decode your hieroglyphic icons, it's a bad design.
As for my own UI design, the core philosophy is first-order accessibility. If you have to do a task every time you open the program, then that task is accessible with one or zero clicks. If a user asks me what a button does, it gets a better label or a helpful tooltip as well as a mention in the docs. My UIs look like something out of windows 95: simple controls laid out in a grid in clearly delineated functional groups. Everything is labeled and laid out in a way that places the most common controls in VERY OBVIOUS and CONVENIENT locations. It's ugly because it's designed to be used and not looked at.
If a user spends time in my program that isn't related to the task they're doing, I've done something wrong. If someone has to ask me how to do something, it means I have to rethink my design. If users are relying on documentation to navigate my program, I need to redesign.
I respect ui designers who build helpful and useful UIs. I don't respect designers who drop all text and sprinkle a dozen abstract images on a vast barren wasteland of screen space.
ETA: I'm an engineer and I build engineer style UIs: brutal in their simplicity, and utilitarian above all else. Literally not one person who will ever use my programs will care that it's ugly so long as it works.
At some point we've lost the idea that programs should be useful more than they are "pretty". It's a trend that I find frankly abhorrent, and I believe it's one of the major factors that's making software as an entire field worse and not better.
Maybe because you’ve spent time in those older OS interfaces and are therefore more familiar? Your post amounts to “new things have a learning curve”.
That's right. There's archeological layers of UI design in context menus now.
[1] https://ntdotdev.files.wordpress.com/2022/12/image-4.png
Why do people even mention this? As you said, it has a toggle. How did it “kill your decade old reflex” when it literally takes 5 seconds to fix it?
It's the single most annoying thing to me ... the rest of the changes I can live with.
It can be done with RegEdit and some minor changes to HKEY_CURRENT_USER\SOFTWARE\CLASSES\CLSID.
Information is online.
Actually it does follow the faux usability trend where ”options confuse user”, and the perfect UI is just an uniform off-white screen with no controls
One thing that surprises me a lot, though, is that a lot of applications seem to need to be upgraded one-by-one, even if the UI is largely the same and only the styling needs to be upgraded. I never developed for Windows UI, but does it mean that there is no single reusable UI Kit, where just the styling could be changed from OS version to another? Do all these examples demonstrate that different applications are compiled with different UI Frameworks that are all in use and supported?
For example the Services (or any mmc based) UI with no filter/search integrated is absurd. Heck they just "redesigned" Task Manager and none of the tabs have filter/search functionality which is annoying to say the least.
I suppose you can start typing with the inner tab having focus, and it SOMETIMES finds the correct thing, but it isn't reliable and is hidden functionality that people just need to know is a thing.
Props to them adding an address-bar to RegEdit though (in the W10 Creators Update) and multi-tab Powershell terminal. Very welcome and positive improvements. Wish we had more stuff like that.
I still remember the day I found out the envvar configuration screen had been updated, and finally:
* could be resized so you could see more than 4 envvars at a time, and had a scrollbar taller than 5mm to scroll through the list
* could be resized so you could actually see the entire envvar value without having to slowly move the cursor rightwards or copy it to notepad
* added a bespoke list editor for PATH so you wouldn't forget the separator or paste the new path at entirely the wrong location half the time
At that moment the sun started shining brighter. God was the old dialog unusable shit.
If I suspect a nefarious app is running in the background somewhere I have to manually read the list to find it and kill it.
End of the day one of two things is happening, either no one influential at MS uses Windows or their structure is so broken that pointing out something like this it isn’t even possible to action the feature to be built.
I'm tired of Microsoft actively making things worse instead of actually improving what they already have.
yes, examples include win32, mfc, wpf, winui 2, winui 3 are all UI frameworks that MS has released over the years, all of which are still in active use, some more than others.
For example, WPF is probably one of the most widely used, even though MS keeps trying to kill it.
See https://www.codeproject.com/Articles/620045/Custom-Controls-... (I can't remember where the documentation for this is on MSDN, but I'm sure it's somewhere).
Be aware though Microsoft considers its WinUI 3 framework as the primary framework for implementing its Fluent design language and controls. (WinUI 2 will get you there too but has recently been deprecated.) Win32, common controls, WPF, WinForms, etc. are considered legacy technologies and cannot officially make use of many Fluent styles or controls.
I still find it surprising that in some forgotten corner of Windows we get 3.11 file dialogue. But also who cares really.
The only styling in common is most of the window colours match the selected theme.
The window decoration style, layout, font sizes, iconography, buttons are all artifacts of older MS Windows and do not match the modern Win 11 design language.
I believe some are no longer supported, but are still in use internally.
AI could also translate mouse clicks/coordinates accordingly if it moves stuff around.
You could even have "UI themes", tell the AI to re-render in Windows 2000/XP/11 style.
EDIT: the downvotes I'm getting with no comments are funny. This will happen in the next 7 years because solving this problem once it's much cheaper than fixing all the apps one by one.
Java came out when I was young, with a huge JRE installation, slow startup times, GC pauses and Java Swing.
Then Electron came out, making a “hello world” gui app need 800mb of RAM. Electron makes Java feel light and nimble.
Honorable mention for docker convincing windows and macos developers to write software inside slow virtual machines for no reason.
Recently, despite the tireless work of photoanalysisd on my Mac, and Microsoft teams on windows, things were starting to get faster again. Thank goodness for you, parent commenter. I can worry no longer. I was starting to wonder if the curse might be lifted.
I can see it now. It’s 2026. My fans spin up as a 8gb neural net live-translates the UI of notepad.exe for the modern age. My $4000 graphics card is showing its age. My mouse lags while I try and click on the menu. The UI is rerendered because Microsoft couldn’t be bothered porting the windows 11 UI code to the new windows 13 UI look and feel. Windows 13 looks different yet again for no reason. So they do the translation live on my GPU instead because it’s cheaper (for them). Programmer time is still expensive. In the background ChatGPT quietly makes web requests to live-translate all the menu items into the new social media acceptable language. The start menu is now on the right.
What a time to be alive.
But back to the topic: The reason why UIs are no longer themeable has zero technical reason, instead it's a cultural problem (the introduction of artificial 'fashion cycles' into UI design for no other reason than justifying the existence of a 'UI designer' job role.
Imagine a UI that guesses what you are trying to achieve and optimizes itself appropriately on the fly.
(And yes, tweaks all the fonts, palettes, etc to look nice too).
UI designed by humans could be a thing of the past. We could just feed the AI references to the variables we want the user to view/twiddle and the AI would do the rest.
(I hate writing UI)
I love this idea! Having the ability to choose from decades of UI design would absolutely be a feature. However MS needs to fix all of these UI inconsistency bugs first. Second, don't use AI. Just consistently apply the UI to the OS.
And even at the places they do, arguments can be made about if their UX/UI are actually better; but that's kinda subjective, to be totally fair to MS.
Also, i think spotlight in mac is way better than Search, and i dislike that it is Win+S instead of Win+Space. I also think that the default itl layout is a smidge better for dev on Mac, but at this point it's too late.
Also to be fair as i mostly use linux: search is way worse and the default are even shittier than windows, but since i can import "my" defaults in 45s, basically the time to type `sudo apt install git make; git clone XXXXXXX/my_default.git; cd my_default; make && sudo make install && reboot`, i'm not too cross about it.
Edit: I think this is now called Windows Search or File Search. Sorry been a while since I've used windows full time. https://learn.microsoft.com/en-us/windows/powertoys/run
They've done this sort of thing with app installers(setup.exe, click once, appv, msi, msix) and UI frameworks(win32, mfc, wpf, winui 2, winui 3). It's like the teams responsible for their respective product keep starting over with a shiny new way of doing things every couple of years to achieve the 'perfect' installer/ui framework or anything else for that matter. Infact W11 felt like a way of 'restarting' W10 without building a whole new OS.
Atleast with W11 they're actively updating old things rather than introducing new ones, I did not have a lot of hope when it first came out, but they have gotten my hopes up since the release for sure. I just hope they stick with winui 3 and see it through.
Same disease that plagues GNOME, change shit for sake of changing shit, fuck users that got used to the old way, they don't matter, is new way faster ? Who knows, we don't.
While I'm a die-hard KDE user, I like how GNOME experiments with new ways of evolving the desktop paradigm and workflow attached to that.
Yes, they remove a lot of settings, and have a binary format for storing settings (and I don't like these design decisions), but it looks that they're becoming a very good DE for non-technical Linux user.
If any Linux desktop environment had 5% of this inconsistency, they would be battered to hell and back. Today, thanks to efforts of KDE and GNOME, even Qt and GTK apps can be rendered almost identically.
One might not like the direction of a particular DE, but I think we can agree that they're putting a lot of work towards a better, more usable desktop experience (and, I had my fair share of 3rd degree burns during GNOME3's teething as a developer).
AFAIK, GNOME 2.0 and KDE 3.5.x is still maintained as independent, different projects now, too.
Imagine if the next version of MacOS had square icons for close/minimise/maximise and to update your app to use that new style, you had to switch UI frameworks. Then you'd end up with 2 different styles of apps on your system because not every app out there made the switch, and one would now look very out of place. That's the sort of thing Windows seems to do every major release.
MSI (long since deprecated) is essentially an ad-hoc relational database serialized to a file with embedded blobs that tells a generic engine how to install files and update the registry. It was written for Office in the 90s and was therefore dominated by the retail model of physically shipping CDs.
MSIX is a totally different beast. It's more like a package for Linux. The format is a signed zip file with some embedded XML files. One of them is a "block map", which is basically an index into the zip data by chunk hash. Packages are installed to immutable directories, which lets Windows optimize out the download of data it already has on disk by copying from other packages or even just hard linking files together. Delta updates thus come for free (albeit not as powerful as diff based schemes when inserting data into the middle of a file). Another XML file declares how the app should be integrated into the OS. The old MSI/EXE model of manually patching and unpatching the registry and filesystem to do integration is gone here; for example, if you want to register a CLI command then that's an XML tag, if you want a file association or URL handler, that's a bit more XML. Windows takes care of wiring everything up and removing it on uninstall.
Most importantly, MSIX takes care of online updates. MSI never did this. You can register a URL for a package that points to yet another XML file, and Windows will download deltas and apply them in the background even if the app isn't running (a la Chrome).
So Microsoft's packaging tech hasn't churned that much. There were CABs from the Win3.1 days, then later MSI from the late 90s, and starting in Windows 10-ish timeframe MSIX. All of these are very different technologies.
One of the nice things about MSIX is that it's feasible to create them from other platforms, because although Microsoft's tools are Windows specific the format is simple enough to reimplement. Not simple - the way they compute the block map and signature data effectively requires you to write your own ZIP library to create them - but it can be done and that's why the new Conveyor tool [1] is able to create Windows self-updating desktop apps from Linux and macOS. If you have a pre-compiled runtime like Electron or the JVM then you can push out updates with one command from your Mac/Linux dev laptop, it's no harder than publishing a static website by rendering Markdown to HTML, and that makes it feasible to develop quick lightweight desktop apps in a convenient manner. With the old MSI or InstallShield tech it would have been much harder to create a cross platform tool like Conveyor.
[1] https://hydraulic.software/ (it can also do Linux and macOS apps from Windows, but those are a bit easier)
For example certain build configurations would cause the runtime runtime to be somehow slightly different from the build runtime and it would trigger control flow integrity to immediately kill the app on startup which was very difficult to debug.
Also from documentation it looks like it's possible to install a background service and communicate with it over a named pipe from another application in the same package but in practice I don't think it's actually possible, even in a full trust app.
I think the goals of MSIX and the App SDK are good and I applaud them trying to make it flexible to support every kind of app, it just hasn't had the time or resources put in to be really worthwhile over just using NSIS at present.
Is it really deprecated? Isn't MSI still the only installer type directly supported by Group Policy? My company had an enterprise customer request an MSI for that reason.
Windows is one of the most impressive pieces of software I have ever seen. No other platform boasts the kind of backwards compatibility that is seen in this operating system. There are shim layers on top of shim layers and the developers seem to have gone through great pains to keep the operating system backwards compatible.
Comparatively, the Linux kernel API is stable, though applications relying on newer system calls are forever stuck requiring minimum kernel versions. On the userspace side, application packages are in a near constant state of flux and can break with a single version/dependency change.
https://gitlab.gnome.org/GNOME/gtk
Take Fedora, Manjaro or Ubuntu with any major flavour like Gnome or KDE and you get a very consistent way of how your OS works and responds to common tasks. It's kinda easy for non experienced user to find the right settings with no UI change on a modern Linux Desktop.
But KDE apps all look consistent. I don't really use it, but it seems to me that Gnome apps also are consistent. Ditto for XFCE.
Whereas Windows, even among out-of-the-box and "system" applications, there's a variety in the look & feel. Until 7 it was more or less the same. But starting with 10, it all went downhill, and 11 didn't really fix anything in that department.
For Windows, I don't think anyone complains about the fact that if you run an ancient Windows app, it looks like an ancient Windows app. In fact, backward compatibility has always been one of Microsoft strongest selling points. What people complain about is that Windows itself is inconsistent. Windows branded components, made and owned by Microsoft, included in the main OS with no alternative offered are inconsistent. The worst part is the control panel, it is a mess and they have no excuse, it is an unfinished job that shouldn't have been out of beta.
Arch packages do very little extra usually, and often works more like if you install from source. So it's not always the fault of devs, and is why installing from source was/is a thing.
Bonus with Arch is Aur, one big repo with most open source software available from git.
Additionally Windows is raking in MONEY for their OS.
So from that perspective, Microsoft have no excuse for the shitty software they make people endure.
Only if you intentionally ignore all the billions big-tech has poured into Linux over the years.
I will happily bet there are programs out there that would crash and burn horrifically without moricons.dll.
CRITICS: MS Y U SO SHIT REMOVE OLD CRUFT! NOW!
MS: but backward compatibility?
CRITICS: NOW!
MS: *removes moricons.dll*
SOMEUBERCRITICALAPP: *crashes*
CRITICS: MS Y U SO SHIT ?!
Dead Comment