I am still looking forward for the option to ungroup task bar buttons, preferably with titles. Again! Something that was there before, worked, and was useful. But some designer decided we don't need that, to the bin with it!
I'm not sure why they rushed out the release, Windows 10 was and is fine and I don't think any customers were really interested in this new version/ui update/whatever
total blunder imo but I think most people are just happy it's not as screwed up as whatever the hell Windows8 was
for me personally besides the common complaints just getting to the weather widget is now a huge microannoyance that drives me up the wall
I am still baffled by the whole Windows 8 drama. All they did was they replaced a menu with another one. Everything else was the same or better. Supposed power users freaking out about something completely inconsequential. What the hell is wrong with people
I liked Windows 8. And still use it on one computer. The PDF reader app that used Windows 8 design principles has one of the most intuitive interfaces, IMO.
Now they’ve gone and half-baked that design in new software and it’s less intuitive, eg clicking file menu item and a whole new screen appears.
Note how one flow literally erases everything else on the screen, disrupting whatever it was you were doing and disorienting any lesser-skilled users.
On a desktop computer. More than likely with (a) monitor(s) big enough to occupy an entire desk.
The Start Screen was fucking horrible all around, and its horribleness was proven with the immediate resurrection of the Start Menu and demise of the Start Screen in Windows 8.1.
Metro also met a similar demise because it forced a black-and-white, no delimiter UI upon desktop computers. Computers equipped with GPUs and monitors capable of rendering billions of colors with huge screen real estate.
Some of Metro's baggage is still with us, but I welcome Windows 11's slow move back towards a colorful Windows UI.
> Metro also met a similar demise because it forced a black-and-white, no delimiter UI upon desktop computers.
I recall when they did this to Visual Studio.
They completely removed all colors from all of the icons, making it impossible to pick out one from another and making once familiar icons by color a hunt-and-peck operation to find.
It was all just black and white. Then, due to feedback, they relented and put color back on all the icons.
The problem with Visual Studio was the sudden removal of color changed people's "muscle memory" on where certain items were on a complex toolbar or menu system. I have no idea who thought that was a good idea, but some design team decided they were going with it, and they did.
When everything suddenly went black and white, it was impossible to quickly distinguish one thing from the next.
They reverted the decision and suddenly all the colored icons came back and it was once again easier to quickly pick things out.
I mean, people freaked out when they changed just the VS Code icon:
Metro was wonderful on Windows Phone and tablets . Garbage on the desktop. All Microsoft had to do to suppress the outrage was give people back the start menu on desktops like Windows 7 and allow a setting to turn on tablet mode if auto detection didn't work.
Instead, probably because at that time they brought in people with no history in the Windows org to manage the Window org, we got a 10+ year decline of Windows that has accelerated in recent years.
One of the first things I installed recently on my first Win11 computer was StartAllBack[1]. It’s not perfect but the standard taskbar is so bad that I had to fix it somehow.
Windows doesn't cost money because I pirate it. I could pirate this program as well but it's probably going to be harder to find a clean, recent version of it.
I don't care what the law says; the law says nothing about morality. If someone puts a piece of software on the internet and asks a reasonable price in return then you should just pay, and bypassing that is "piracy" and immoral. This isn't Microsoft Windows that you're forced to use due to their predatory (and illegal) business practices – which are mostly a thing of the past, but still has large effects today – by which Microsoft "earned" an ungodly sum of money.
That's the whole argument. This should not need to be "fixed" by a third party tool, it should just be part of the system that was already paid for! (It was even included all the way up to 10 so clearly there was no technical reason to not have it anymore)
Frankly this mindset is ludicrous to me and yet I see this with MacOS users too who happily pay for third party solutions to first-party breakage on stuff you already paid for. Somehow the more you spend the less customizable software is and the even more you have to spend to work around dumb choices.
Of course not, it should not have been changed in such a way that required a third party utility. It's one of the reasons I'm still using Windows 10 and have taken steps to make sure my computers don't automatically "upgrade" to Windows 11.
I'm going against the mindset of not paying for software in general, no matter how useful it is to you.
I think the problem is the contract behind what you're getting for the software.
For me personally, I'm more than happy to pay for software if it's clear the developer has _my_ interests in mind when building it (think IDEs, CAD software, even stuff like Office or the Adobe suite). I'm also OK with using software that's free and dealing with dark patterns (shareware, online tools) or bugs (open source stuff).
But paid software that somehow still tries to bilk me for even more money? (See all of the ads that have been built into Windows these days, or various Android phones and bloat)
I will be more than happy to go out of my way to crack and get out of paying for it, for nothing but to spite developers of such things.
You can't have your cake and eat it too!
Microsoft seemed intent on removing settings and features that only a small segment of their telemetry showed enabled, probably because of some code cleanup efforts. This is despite their earlier attempt to convince everyone to use the weird 3D image editor instead of MS Paint.
A real shame, because they showed with Windows 7 that they can redesign the OS UI without giving up features from earlier versions if they want to. Bugs like "the task bar is 20 pixels taller on my second screen" wouldn't have come up if they'd stuck to restyling their old code base.
I find Microsoft's modern designs very comparable to the GNOME designs, in that they're eager to remove common features to build an overarching operating system theme. I like GNOME's design, much more than Windows 11's, but I don't think taking directions from a heavily criticised DE is the right move.
A lot of junior webdevs, iOS app devs and designers were buying Macs to run testing/staging envs, and they have a lot of leverages, so MS had to do what they did.
Enterprise is still king, and we here in Enterprise Ops are not happy. Microsoft needs to remember where its money comes from, and it is not jr webdevs
If you're willing to tweak your installation, you can revert to the Windows 10 taskbar using the free third-party ExplorerPatcher utility. It has an option to not combine taskbar items and a lot of other goodies.
Wasn't this corrupted by one of the Windows updates? Or was that the other product? Got the whole UI frozen or such. I read about third party apps that hack back features this way or the other but I am still hoping a bit that MS will get back their senses and not some - potentially fragile to underlying OS structure change - third party app is required to make things functional again. But I am around the breaking point actually. I use several insteance of the same app all the time and switching simply between those using the taskbar is just not working, bogus, unpredictable, not fulfilling the purpose. I cannot relly get used to it and starting to give up hope. The usability of Windows diminished a lot to me.
It never broke for me. I've been using since October. There has been a large update since, but the app repatched explorer flawlessly. I also use a lot of other funky stuff (system icon changers, theme patchers, etc gotta get that rice). I also remove a lot of stuff using SophiaApp.
There has been some usability turndowns for me in the past years, but two things keep me hooked: snap windows (built in) and powertoys (ms-made but requires an install). I can't imagine myself without these two anymore.
I like some of the features of AquaSnap, including more window-snapping options, better than the built-in snapping. It does have rather more features than its name implies, like "shake a window to toggle Always On Top" (this enabled one is enabled by default, with an adjustable threshold).
I was using explorer patcher when I did the update to 22H2 and it really screwed up my computer. After many tries I had to boot from a usb drive to get safemode to finally boot so I could uninstall explorer patcher.
But after a week of Windows 11's "grouped" taskbar buttons I risked reinstalling explorer patcher and it worked fine.
What's the point of having a taskbar that only groups by app...This has been one of the major pain points of me using Mac OS and it is immensely sad that Windows 11 has also taken this approach. At least some Linux DEs still let me keep my app windows ungrouped...
Luckily with macOS there is the way of expose (renamed) and hot corners that allows switching based on various logic by a swing of the mouse both lightning fast and visual (easy and quick to locate things and trace what is happening), very natural to me from the very first time I tried. (this allowed Mac + VM products like Parallels with coherence mode to work superior to any Windows practice in this reagard - better in handling multiple windows than Windows, hehe - having Win in a VM was my preferred way of working with Windows for a decade or so - only changed because of new job with different IT practices, and lately with the looong transition of Intel to ARM processors and the consequent difficulties with x64 Win systems and apps. All Windows window became a Mac window, switching between those very visually and quickly, superior to Windows way, even with the then working taskbar practices)
Unluckily in Windows the taskbar became more essential than the dock in macOS for switching windows - on Mac I use the dock to start new instances or quitting the app (differing philosophy of window and app lifetime between mac and win), not much of a switching - and then they ruined this essential taskbar thing without good alternative on Windows (Ctrl + Tab is more like a complementary thing than alternative).
Probably different use cases but I've never found tools that show the window contents to be useful over the window title.
I almost always have many windows that would have thumbnails essentially indistinguishable from each other (think text editors, file managers, terminal prompts etc.)
So I use the task bar as almost like a system wide "tab" interface. Grouping stuff into the app icon is terrible because I can't easily tell if I have a window of the type I want already open. I don't click on the taskbar items to navigate, rather I use them to check what is already open so I can quickly keyboard switch to them.
The Win11 UI completely breaks this workflow so now I either need to do a linear search to flip through all windows, or pull up either the task view or hover menu above the app icon, and pray I can tell apart the huge grid of identical window thumbnails.
Win XP had this right-click on group in the bar and you could spread the windows evenly on the screen. It was really useful for Matlab plots but for some reason they removed it for Win 7.
I would be curious for a similar dissection of modern macOS. My intuitive sense is that it is a little better though there are probably still at least 5 layers of stuff.
So to some extent, does doing this better at the scale of a modern user-facing OS provide enough return on investment?
Ummm... macOS (aka OS X) have been using a single UI toolkit (AppKit) since the beginning. (Carbon apps no longer work since Catalina, because Carbon was never updated to 64-bit)
Unpopular opinion: Windows UI has a lot of problems, but it's still much more intuitive and stupid-proof than macOS. Having worked with both, macOS is just inconsistent to the core (and Finder is an application one would have to pay a team of developers with the core instruction of 'make it a non-intuitive and unusable mess'). Also, I still use apps last maintained in 2010 on the latest Windows version, while apps written just a few years back don't work on macOS 12.6 anymore.
(P.S. - Latest Windows when installed with MS 'PowerToys' brings a few missing things in Windows from macOS where it might otherwise shine)
macOS got worse during the past decades but still better for everyday use than Windows (which brought in macOS ideas for its advantage meanwhile closing the gap), still much more consistent than Windows despite the changes (to the worst mostly). Much less in the way while doing your job than Windows. Of course it has different philosophy on how to carry out things and it does not fit everyone, for them Windows may be better choice of course.
No, it's not from "just my expectations". I can understand that things work differently in different OSs, and having the same expectations from it won't be correct. There are also many on the internet who defend this design choice of giving no 'Cut' option for files saying "it is more natural/intuitive this way for how humans think", well, then you should not give 'Cut/Paste' even in your built-in Text Editor just to be consistent. It is about consistency (the original topic of discussion). You give a 'delete' key in your built-in keyboard, that doesn't, well, 'delete' stuff in your built-in File Explorer. I know the alternate keyboard shortcut for that, but one has to think what would be a more natural shortcut for any given operation (one factor is how much it's used). For example, do you think one renames files/folders more than they 'open' them in a day? If not, why does 'return/enter' simply not open that file or folder rather than doing rename, while for the more probable act of opening there is another obscure key 'combination'? Wasn't Steve Jobs very particular about these little things? I'm honestly a bit surprised it's often termed as a more intuitive OS.
I'm no impartial judge for these things, but the expectations are learned and I don't know how we can judge this objectively. I think the choice of what to do with the return key is pretty arbitrary.
For a declaration of my own bias, as a kid I was put in front of macs, so it impressed me during important years (8-15 years old). I don't use any macs nowadays. I use file-cutting-enabled linux systems.
With this background I don't see that opening files or folders with the return key as intuitive at all, I don't see the connection. It's not a bad idea, just an arbitrary choice like others. Command+O I can understand too, O is for Open and on the mac they decided to introduce (i.e. invent and teach the user) a universal action open that works the same for files and programs (no separate open vs execute). That's a positive example of consistency, at least.
Forget about the 'return' key. My point is, for an operation one potentially does a hundred times a day (arguably the *most* common operation you can do in a File Explorer!), it should have required a single key press, I'm pretty fine with it being any other key. (However, 'return' key has a significant size so easy to hit anytime from anywhere without needing a lot of attention or looking at the keyboard, so that's just a good candidate IMO, and keys like 'delete' won't be a good choice for it ;) )
The things you are complaining about take a week, at most, to adjust to. I am a former Windows user who switched to Macs about seven years ago.
Enter for rename is perfectly sensible to me. Personally, I use it more than Cmd+Down to open files.
The Cmd+C + Cmd+Shift+V paradigm for cut/paste makes just as much sense as the Windows paradigm. Either way it's a just copy and delete function. Would you rather choose to delete at the time of the "paste" or at the "copy?" I don't see a clear reason to prefer one over the other.
As I said above, it's about consistency. If you really believe Cmd+C and Cmd+Shift+V paradigm is what macOS has chosen for themselves in their Finder, they should then choose it everywhere else in their own OS, including in their text editors, IDEs and what not. There should just not be a concept of 'Cut' anywhere else in their OS - you should always decide if you wanted to move at the time of paste across the OS. But it's not like that at all. Windows is consistent in that.
Again, it's to take care of which use case falls in the majority - to optimize the 364 days of the year when I'm dealing with folders not having 10000 files/sub-folders in a folder or 1 day when I have to open such a folder. I thought macOS thought about those things since people were really singing hyperboles about it. It doesn't even show where you are by default! The file open dialog doesn't even allow to directly copy paste a path in a non-obscure way, same goes with any Finder window! Sure, you might have one indirect way or other for achieving these, but wasn't it all about the design choices it makes by default where people said it shines?
Apple's design changes over the years have been much more subtle, mostly changing textures, fonts, line widths and control outlines. Meanwhile they've kept all the software on the same UI toolkit so they can update these things universally.
This means that even the little-seen parts of the OS that have never been redesigned (like DigitalColor Meter, the Bluetooth file receive dialog, ColorSync Utility, Keychain Assistant) still look pretty much at-home in the latest design.
This is a really great documentation of how far back various pieces of the UI go. If you’ve been using Windows for a long time, you remember when different pieces of the UI got introduced or changed and then frozen in amber until today.
Crazy to think they are still recovering from Windows 8 and the pivot to Metro UI.
Oh they definitely do. And even some XP ones. But all the time that could’ve been spent updating those to a more modern UI style, they instead reinvented the wheel with Windows 8 and then had to roll it back, wasting about 5 years
I imagine the things that they thought were the most important to update in Vista were also the most important to update in Win7, Win8, Win10 and Win11, always for the same reason.
There is a real cost to consistency/change, and I don't personally believe that this is just laziness or poor design on Microsoft's behalf.
Sure, Windows could have changed the look and layout of every component with every release, but with an application as widely used as Windows you really want the ability for users to move from Windows XP to Windows 11 and still have a sense of familiarity and confidence.
It is also difficult for them to remove settings or change their behaviour of settings without breaking compatibility, so really whenever they are making the UI 'consistent' we really mean moving around the existing settings rather than rethinking them entirely - true change has to be done in baby-steps across many Windows versions.
With those 8 or so (partial!) redesigns I do not feel the overwhelming urge for consistency here.
(in fact they broke this and that along the road, the latest and most crucial for me is the taskbar, and I am not talking about the alignemnt, not at all, but all the other possibilities gone, starting with the option of grouping/ungrouping, but not ending there)
> (in fact they broke this and that along the road, the latest and most cruitial for me is the taskbar, and I am not talking about the alignemnt, not at all, but all the other possibilities gone, starting with the option of grouping/ungrouping, but not ending there)
The way I look at it (which may be wrong!) is that companies get a 'change budget' of how much users will tolerate in terms of change (i.e. an 'emotional' budget with users rather than a cash/resource budget).
Look at the large facebook designs which recieved huge amounts of backlash from the community - while each of them pushed Facebook in the right direction, each of the changes was also very disruptive to an extent that Microsoft probably couldn't tolerate in Windows.
This time around they decided to use a lot of their 'change budget' on the taskbar, which probably means you don't want to touch other parts. IMO they should have added the option of grouping/ungrouping too before making the change, although the fact that people are complaining about taskbar grouping probably further demonstrates how careful Microsoft needs to be with design changes (Especially as you can probably see WHY Microsoft might want to remove the option of grouping/ungrouping and follow their thought process with this, which shows how easily these UI pitfalls can occur when making changes).
Absolutely, but that doesn’t mean there aren’t decades of backwards compatibility cruft everywhere. Microsoft needs to just support legacy versions of windows more or less forever to keep those institutional users happy and draw a line for the majority of users who want to at least keep some kind of pace. You don’t have to obsolete everything like Apple does, but we’re well past the point where you can virtualize or emulate something like Windows 7 or older and it will still be faster than bare metal of the time.
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.
Well, I'm used to Ubuntu updates breaking my workflow and potentially breaking some of my boot services, which is genuinely inconvenient. So I don't think those vocal few are wrong.
What does that have to do with Ubuntu updates breaking things? If a tornado hits McDonalds while you're in it are you going to say you hate McDonald's for not being tornado proof?
I use GNOME, it's not great, but some people really hate it, go out of their way to tell everybody how pissed they are at it and that GNOME is the worst thing to have ever happened to the Linux world. I guess complaining about GNOME has become part of their identity, a trait shared by the vocal systemd haters that just won't shut up about it.
Many Linux users haven't gone past the "it's cool to hate" teenage phase. Goes hand in hand with the obnoxious elitism and anime avatars.
Hating shows their lack of skills. They are the kind that know just enough to complain but lack any significant skills when it comes to development. They probably work in some point and click system administrator job. Eventually they either learn they can lead the change they want to see in open source and shut up because they aren't willing to do it, or they keep throwing a fit like a baby thinking that'll help them get their way.
I've despised GNOME since version 1.x. I've developed a solution to deal with all this pent up hate and rage toward GNOME.
I just don't use it.
About as desktoppy as I'll get is XFCE. I gave my girlfriend (now wife) a Kubuntu-based laptop once to hold her over until I bought her a MacBook Air.
Systemd is another matter because Lennart doesn't seem to want me to have the "I just don't use it" option without stuff breaking. But Void seems to truck along quite nicely with runit so I'm content with that.
As I recall, the UI designers didn't even ask for feedback. It was a case of "we know what you want better than you do". That design approach is basically always a mistake.
Well, yes, but if most people who is going to give feedback are tech-inclined Linux people and your aim is to build something which can be used by anyone at the end?
Your initial design might land somewhere very wrong, but starting to ask for feedback from that point on will lead you better since it's wrong for everyone, no?
The word for the audience that GNOME developers are targeting is "lowest common denominator".
It's the same problem with all excessively friendly interfaces, great if you are a day one user (pretty rare on Linux), obstructive and shitty if you know what you're doing.
Me too. That being said, I no longer use it on any of my devices. I heartily disagree with their development roadmap and feel somewhat lost as a former GTK tinkerer.
I know what I'm doing and I have no idea how people can deal with gnome on a day to day basis. I can survive only with plugins and those break very often,sadly.
Unfortunately I'm too lazy to switch to KDE (way too much stuff is broken if you install it not from the start and I don't want to reinstall), so I stick to gnome on my work computer.
I really, really appreciated KDE customization and power user options (hidden but there). It is messy and the UI is worse at times, but it's way ahead.
Well, this is a very strong and wrong assumption. There are ordinary people who are using Linux because of various reasons (my dad being one of them), and we want more people to use Linux, too.
If we continue to cater to only technically inclined people, we have no right to criticize Linux for being for the knowledgeable people only. If we want to attract more users from a more diverse community, we need to make some changes to user experience.
There is no buts or ifs. There are plenty of desktop environments. Technically inclined people can tinker with gconf, or install something different (KDE, E17, or any of the TWMs).
Sure, but you don't ignore your core audience to attract other users.
Valve built the Steam Deck knowing very well that their core users will be PC gamers and not console gamers. The steam deck is made as open as a pc, with functionality to jump back-and-forth between that and a pc (dynamic cloud sync).
Console gamers will come, but you don't ignore the people that are at the core of your business.
What do you mean as you recall? Did you follow the project updates on their issue and bug tracker? If you're not happy with it you know you can fork it and create your own derivative, right? Oh, so you just like to complain about how people spend their free time and want them to work for you for free?
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.
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.
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.
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)
I think it's driven by a desire for strict validation. They provide XSD schemas and use them internally. Conveyor uses them too which not only helps catch internal bugs, it means if you provide a snippet of XML to do OS integrations the tool doesn't support yet then you still get good error messages at package build time telling you what you did wrong.
There are similar schema languages for JSON these days, but without any equivalent to namespaces. Microsoft uses versioned namespaces heavily in the AppX Manifest. It's got a bit crazy, a typical manifest might have 10 different xmlns declarations, but it means that if you mis-name an element or (more likely) put it in the wrong place that won't be silently ignored, it'll trigger a validation error. To get that you need to able to assign each element to a specific fixed schema and then compose them. If you just have a single schema and evolve it without any concept of namespaces, old software can't tell the difference between a mistake and a new extension from the future.
Microsoft don't have any generically extensible binary format that they use consistently, like Google does with protobufs. Besides, XML isn't so bad.
Look at the alternative: Apple went with a generic binary config format for macOS (binary plists) but then introduced an XML version anyway. As an industry we've never got any good at managing the dichotomy between efficient-for-machines binary formats and efficient-for-humans text formats.
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).
There are some bad bugs in older Windows versions, but we were always able to diagnose and work around them. It's part of the value Conveyor provides. We have it working now and the results are pretty good: fast installs and uninstalls (as long as there isn't a lot of latency to the web server), especially if you already have the files locally, background or check-on-start updates, management from the CLI, group policy, MSIX Hero and so on.
The alternatives are also not that great. I looked at many. Some are buggy, some are abandoned, some require complex server-side logic etc. The situation on Windows is far from ideal; it speaks to the general neglect of the platform. Nonetheless with a tool that works around or 'polyfills' issues MSIX can work well.
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.
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.
Problems with CFI aren't related to the packaging mechanism though. Mismatches between DLLs have been an issue with Windows for a long time and the solution is usually to bundle the versions you need. Not sure about the background service thing, we haven't tried that.
I'd say that Windows in general is disappointingly buggy but it's been that way for a very long time, I remember having to work around bad Windows bugs in the 95 and XP days too. It just comes with the territory. We use MSIX as raw material and either work around bugs or reimplement features as necessary. The results seem to work fairly well. MSIX also has the advantage of being maintained and general purpose, which sounds basic, but a fair number of the competitors aren't.
See the problem with operating systems which don't have strict design guidelines and review like iOS is that they don't have a consistent design language which clearly prevents adoption. That's one of the prime reason why Linux on the desktop will never take off. /s
I wrote a similar comment here recently, but this is much more detailed, and it's worse than I thought. Nice to see practically all versions addressed in some detail. Looks like Microsoft does have some kind of UWP (he wrote, not at all resenting the loss of his Windows phone).
I would prefer for feature to exist and work and don't care if the buttons look the same. I am super salty because I tried to run some old 32 bits qt4 and gtk2 python apps on latest Kubuntu LTS (I am 100% only Linux for years )and I just wasted hours without any satisfaction, at least on Windows 10 year old programs will still work most of the time(probably some old games could fail but might be a driver issue and not a Microsoft stuff).
If it's dependencies and packages no longer being shipped, you'll have the same issues running those Python programs on Windows and probably the same solutions as well (downloading all the old sources, compiling all the libraries manually).
You can still run the x86 ABI on x64 (or any other architecture through qemu) though unlike Windows, most Linux distros don't ship support for it by default.
The programs themselves work, but the dependencies have moved on. This is why many recent ecosystems are focusing on static compilation, only demanding a very basic minimal set of functionality (C runtimes and such) from the OS at the cost of needing to patch every single binary on your system one by one when the next log4j/heartbleed bug hits.
This stuff is also why I dislike Python as a platform for running GUI applications. It's easy and it works assuming you put in the work to maintain compatibility yourself. Compiled binaries will work for much longer.
For Windows Qt developers will put the Qt dlls in the application , not statically link. So in general you will probably be able to run an old Qt app on Linux by using Wine.
Yeah, the issue is missing dependencies, the 32 bit versions, Linux Gamers complained so there still are some 32 bit packages around but not all of them.
Compiling this old apps I assume will hit same issue, this time missing even more packages since I will need all GTK2 dependencies. I wish there was a nice, slim way to put in a folder all the libraries from a say 16.04 release and tell this app to look there in that folder.
App images would probably be the solution, but who will find all those old projects from source forge that have very few users and rebuild them?
It's not like Linux doesn't allow you to put the QT .so files next to the binary either, Linux applications generally just expect these files to be available system wide.
> Compiling this old apps I assume will hit same issue, this time missing even more packages since I will need all GTK2 dependencies. I wish there was a nice, slim way to put in a folder all the libraries from a say 16.04 release and tell this app to look there in that folder.
LD_LIBRARY_PATH can be your friend. You'll still have to reconfigure the application for other resources like images, but as far as libraries go it's a pretty useful fix. I've used it before because the default libraries that come with Google's Android emulator just refuse to work on my system. The easiest way is probably to add the variable to your .desktop file or to write a script that sets it and forwards all arguments to the real binary.
> App images would probably be the solution, but who will find all those old projects from source forge that have very few users and rebuild them?
I agree; Flatpak and friends are a great way to keep applications working many years down the line. I expect them to only stay available for newer programs, though.
You can set up a Docker pipeline that will build the application of your choosing and use that to release updates of old programs but in the end you're still going to need someone who will do that for you.
That said, GTK2 is one of those libraries that'll still be packaged with operating systems for a while, it's just the unmaintained dev version that gets left behind. Like with Python 2, nobody wants to maintain that old stuff so it's either up to the devs to update or up to you to come up with ugly hacks to still run the old software (at your own risk, of course).
One question, so if I copy the old libraries from an old distro, will they fail because on my distro there is a new libc or libc++ ? Because I hit this issue too where from my googling you can only have one libc(or c++ I can't remember, but I was forced to upgrade because a software needed a newer library and it was no way to provide a non system wide one -or not an easy way that I could actually find).
In my case I run this python2.4 app, it complained about a missing library, I googled it, found what package had it, installed it, then repat and repeat.
Now I am stuck at "libpangox1.0" can't find it on the apt repos , so maybe I will waste more time on google or just give up.
Is a good lesson as a developer, either use some "modern" stuff or if you use c/c++ and care about the users try to build an AppImage or something similar.
You can copy over the old libraries, but you also need to copy the dependencies of those libraries and their dependencies. This can even include the old version of libc if the compiled binary doesn't have any special configuration built in.
Your libpangox library can be downloaded from Debian it seems. In most cases, Debian and Ubuntu libraries work pretty well together (as long as you don't install them at the system level). Unpacking the contents and putting them in the right (application specific) paths may solve your problem.
Personally, I'd resort to setting up a virtual machine for software that old, maybe running X11 forwarding to get the GUI on my native desktop. You might also get away with setting up an AppImage/Flatpak image you can then use on your desktop but that'll take even more fiddling around.
If you're in luck, you may also be able to install the modern equivalent of these packages and port the software over. How well that works really depends on the complexity of your application, but I've run old software after fixing a few imports and method names before so it's worth looking into perhaps?
Personally, I don't really like scripting languages for complex tools like GUIs exactly for this reason. Python in particular depends on a lot of native libraries for its script-to-native conversion, which means you need the perfect mix of language support and dynamic library support for old code to work. It's not a problem if your tool is being maintained, but if it's using software as old as Python 2.4, you're often up for one hell of a challenge. Super basic programs with rudimentary GUIs will work easily but once GTK and Qt get involved, you're probably better off with a compiled binary in my experience;
isnt that was flatpak and snapimg are suppose to solve, making linux apps more like windows apps in that all dependence are included with the app distribution not dependent on system wide installation?
which is ironic since more and more apps on windows require various system wide dependencies like dotnet, c++ resitibutables etc,
More than a few apps I have tried to install recently on windows would not just run because dotnet 3 is missing by default on both win10 and win11
Which might bite us in the future. I just had an issue with a Snap app that hung in some scenarios when it used OpenGL. In the end it turned out that the Snap app packaged an outdated version of Mesa (graphics driver) which didn't handle my GPU properly.
Not just industry. Linux has been my daily driver OS for ~20 years now, but I just installed windows 10 on an old laptop so I could run some old music production-related software on it, such as editors for the Virus TI and Nord Modular synths that stopped working on MacOS years ago. (And of course, has never been available on Linux outside of Wine/VMs).
I think so too. It makes me wonder why they don't update all their apps to look like W7 or Windows 10 instead of changing their design language with every release.
I'm sure there are some technical reasons there, but I suspect it's also the result of poor judgement.
As a 25+ year user of windows none of this stuff bothers me. What ticks me off is just the abysmal quality of windows 11 compared to the past. It’s like no one working on it has any pride in their job
Example:
- hate the new notification area. The action center was so much better
- dumb stuff like a window update notification that shows a c# class name instead of windows update
- clicking said notification does not bring up the windows update settings as it used to.
- searching for windows update in the start menu does not show the setting as a result. Even when you select setting.
- every few edge updates, th browser is able to put itself in a state that it takes 5 minutes to start up. In that time most other apps will not launch either.
I could go on and on, but these are just a few of the daily problems that irritate me.
I am getting very repetitive here but my first addition to your good list is the taskbar. (and not the center alignment as default - mimicking macOS -, not at all, that's marginal and still can be reverted).
As far as I know, you can't have a vertical taskbar in Windows 11 either, which is unfortunate for those with widescreen monitors that like vertical screen space to be used efficiently (e.g. seeing more lines of code, but being able to switch windows easily as well).
- swipe from the left is unchangeably wasted for trash news
- touch interaction (especially in Edge) is worse than Windows 8: I am dependant on a virtual touch pad to do certain stuff (e.g. selecting text and copying it via context menu)
- start menu customization possibilities are ridiculously low
Swipe from left can't be disabled? I haven't found it anywhere. Awful on a tablet (surface go 3) with local account - W10 gives me Win+Tab overview.
Start menu suggestions cannot be removed. The start menu settings allows you to make it use less space. Disabling it in group policies reserves the space for a message that it has been disabled.
There's no way to remove the trash news from the widget thing, so blowing it away is the only option. Clearly there's someone at MSFT that keeps pushing MSN garbage (wtf is Rewards??) into the OS
The installation got into my nerves. Past versions wouldn't force having network or a Microsoft account. You could always unplug your cable and setup a local account. Now, that requires opening a console and typing OOBE commands, which took me a while to figure out.
The secure boot requirements were also a pain. My hardware is compatible and my first install got TPM enabled, but memory protection and core isolation wasn't available. It took me a couple of BIOS changes and installs to get everything working.
I'm pretty sure you don't even have to unplug network to install Win10 without Microsoft account - just during the installation you don't create one (or login to existing one)
This used to be the case, but the last time I installed Windows 10 the already hard to find “create local account” option was completely gone until I disconnected.
Exactly. Since a few years now, and as many Windows 10 versions, the disconnection trick is not needed anymore. They still unemphasize the offline profile option (with the usual dark pattern of making a button not look like a button, and to word it as something negative you sure wouldn't want), and nag you twice if you find it, but it's there, hidden in plain sight: you just need to pay attention.
The comment mentioned the disconnection trick, which I thought only ever applied to certain versions of Windows 10. I'm now learning that (non-Pro?) Windows 11 is also (currently?) affected too.
Not that it should surprise me anymore. Microsoft's shamelessness knows no bounds.
As user and developer on Windows since version 3.1, what irks me is WinDev love for COM above anything else (the idea is great, the IDL tooling and template metaprogramming stuff they keep shipping while ignoring tools from the competition for COM, not so much), and the GUI civil war in Redmond among UI framework teams that started on Windows 8 with no end in sight.
I still don't understand what kind of masochist wants all their windows to be grouped together with no labels so you have no idea what you were working on until you open it again and have to click multiple times. Thirty years of windows and there's still no setting I can tick to make the taskbar adjust automatically to the number of things I have open? If I have nothing open, hide it. If I have twenty different windows open, give me a taskbar three rows high. Is that so damn hard?
Hovering and clicking does not take less time than clicking twice. Back in the golden days you could actually see what you were doing without having to move the mouse at all.
This! Why would you at LEAST not give the option? It's such a central piece of the whole OS. We interact with windows ALL the time. I'm getting too old for this crap LOL.
On top of that, I am having issues with external monitors.
It's like Windows forgets the secondary monitor from time to time. And I have to extend the primary again.
Then the pop-up for witching to the monitor audio out comes up. And I have set it to "Disabled" in control panel->sound a million times.
It's like the rust on US Navy ships that was discussed on HN a few days ago (https://news.ycombinator.com/item?id=34196925). Cosmetic issues hint at more serious problems elsewhere.
I think that's mostly from them laying off a lot of their QA department in 2014/2015 timeframe. Even with Windows 10, I would have issues with the taskbar abruptly reloading.
Funny thing is this was absolutely never said by Microsoft. If you dig deep enough you reach a single throwaway quote by some employee that said something along the lines of "Windows 10 is the last version released and we're focusing all attention to it, not 8.1".
Except MS did confirm that statement separately when asked
> When I reached out to Microsoft about Nixon's comments, the company didn't dismiss them at all. "Recent comments at Ignite about Windows 10 are reflective of the way Windows will be delivered as a service bringing new innovations and updates in an ongoing manner, with continuous value for our consumer and business customers," says a Microsoft spokesperson in a statement to The Verge. "We aren’t speaking to future branding at this time, but customers can be confident Windows 10 will remain up-to-date and power a variety of devices from PCs to phones to Surface Hub to HoloLens and Xbox. We look forward to a long future of Windows innovations."
There's a couple of ways I'd interpret that non-answer, but I absolutely don't see that as a confirmation.
"I don't know the answer, but I have to say something." Or "The answer's no, but this rumour goes in our favour of convincing people to switch to 10 so we're not going to deny it."
If it said "Windows 10 will remain up-to-date indefinitely", then I'd agree.
Oh come on. I've been talking for years with Microsoft representatives and they were balls-deep on the windows-as-a-service scheme for years, until they weren't.
You could argue that Microsoft was betting on Windows 10 as a platform and that Windows 11 is in fact built on this platform (and the 11 is just marketing lingo for 10.x). But despite Microsoft revisionism, the fact is that they changed there mind along the way.
Pretty sure MS has just given up on consistency at this point. The control panel on particular is a writeoff - simple things like setting an IP on a net adapter is an adventure in itself
It looks like Windows is heading towards Linux in this matter- having to know weird commands to get things done effectively.
I only use Windows occasionally, but when I have to set up a printer (shared from another computer) or file sharing, I often have to resort to either creating obscure registry entries based on random internet tutorials or use command line to figure out what exactly the GUI wizard means by "the thing you want can't be found"
> It looks like Windows is heading towards Linux in this matter- having to know weird commands to get things done effectively.
I'm pretty sure Windows has always been like that. Magic registry keys and underdocumented mmc panels, mystical cmd commands and some COM/WMI poking vbscript. This is also why powershell is such improvement in windows world, it attempts to reset at least some of the management madness.
Windows is heading towards linux in that most of the "new" settings app is calling powershell under the hood.
Just like in the linux where all GUI's are more or less just wrappers around command line utilities or have 1:1 cmd line alternatives, Windows is becoming powershell first then GUI.
Where before ALOT of functionality was only accessible from the GUI
Sometimes you don't even have UI alternative, only PowerShell. Much of Set-AdfsProperties have no UI alternative. Workflow manager/Service Bus on prem configurations. Office online configuration. SharePoint particular configuration (i.e connecting to workflow manager). WinRM things via powershell or alternative executable (like setting specitic certificate for TLS communication channel). Add-VpnConnectionRoute, ... I'v stumbled upon many and many "regular" things that can be configured only via powershell.
But PowerShell for me is the best thing that has happened to Microsoft ecosystem.
> It looks like Windows is heading towards Linux in this matter
IMO Windows is just moving backwards. Back in the days for both os you needed to knew unobvious things. Registry and MMC being prime examples for windows. Some of todays Linux flavours come with consistent control panels that solve 99% of all common problems in the same UI wrapping cli tools you could also use if you want. Something Windows is far away from at this point.
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.
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.
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.
The fact that another obscure application (at least obscure to most people) can do this does not mean it is ok for task manager not to have this very basic feature.
>>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.
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.
> Honorable mention for docker convincing windows and macos developers to write software inside slow virtual machines for no reason.
There's plenty of reasons; it's a compromise like everything else. You trade away some performance for portability; the ability to run the same code and know your environment is identical each run is a significant pro.
Docker wouldn't have gotten to where it is for no reason.
I don’t buy the portability argument. If you want to write native io_uring code from windows, sure. But as far as I can tell, most people using docker are using it to deploy cloud services. And guess what? Nodejs, Python, Java, golang, Ruby - they all work fine natively on every platform.
I suspect the popularity of docker as a local developer tool comes from convenience. It feels easier to install docker than fix your homebrew permissions, install anaconda or install a recent version of nodejs on ubuntu. And if you’re already using docker in production, you need a workflow to make docker images anyway.
That and it’s trendy.
Never mind that using docker makes macos sometimes not sleep properly. That it makes your program much more difficult to debug. Or that you’re throwing away 2/3rds of the performance and 1/2 of the RAM of your expensive computer in the process.
Everyone else is using it. We can’t all be wrong, can we?
> But as far as I can tell, most people using docker are using it to deploy cloud services
People use docker and containers for multiple reasons. Reproducible dev environments, Unix development on Windows, etc. The biggest benefit is that your image is fully reproducible; you won't have random issues pop up because of edge cases being hit on dependency updates, you don't have to make sure your new devs install version X of tool Y for development, and you know your code will work identically each time you run `docker start`.
Like all other things, it has pros and cons. You may not value reproducibility, but your assessment is just that: yours. It's ok to have, but you need to realize others value things differently.
As a reminder, your argument is:
> Honorable mention for docker convincing windows and macos developers to write software inside slow virtual machines for no reason.
To say there's no benefit to Docker whatsoever is blatantly false.
> Everyone else is using it. We can’t all be wrong, can we?
If one person around you is wrong, then they might just be wrong. If everyone around you is wrong, then maybe it's you that's wrong.
Docker got popular because of lazy incompetent devs. Since they are the vast majority it got popular. Yes, a lot of times everybody is wrong. That shouldn't surprise you. Larry Ellison put it best: software industry is more fashion driven than the fashion industry.
It never stops, and it's because new guys can't understand (or are too lazy to try to understand) old code. So instead of changing it, they wrap it in new code and change the old code as little as possible.
Several generations of new guys later, we arrive at present day. And that ChatGPT future you described will come to pass, unless we stop using computers first.
> Then Electron came out, making a “hello world” gui app need 800mb of RAM.
By my measurement, that's an order of magnitude too high. My real-world Electron app uses ~77 MB on startup on Windows, across the private working sets of all four processes. Granted, my JS code is relatively lean, but still, we should be charitable, if only because Electron hate is so rampant here.
> Electron makes Java feel light and nimble.
Total rose-colored glasses. Early in my career, in late 2001, I inherited a Java-based desktop app that took so long to start that we made it start looping background music part way through the startup process (it was an audio-based app for blind people, so that was our equivalent of a splash screen). I'm confident that if we developed the same app in Electron today, it would start an order of magnitude faster on today's typical end-user hardware. Some things do get better over time. In this case, bundling of both native and JS code in Electron apps is way ahead of what we had for the JVM in 2002, basically loading lots of little .class files from several .jar files, not to mention multiple native code DLLs as opposed to the Chromium mega-binary. Of course, the JVM world now has NativeImage which is even better, but I don't think anything like that was practically available back then.
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.
There is clearly a need: adding AI gets your company funding, looks great on your CV and lets you brag to the board that your AI strategy is moving along
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.
> 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
>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 don't think moricons.dll is actively used by Window itself anywhere? It's a resource DLL you can reference to use icons from in your own program shortcuts and similar. It doesn't provide an API as such. It's more like a collection of known graphics files being shipped as part of Windows.
Windows is the practical behemoth that it is /because/ of Microsoft's refusal to leave old programs to rot. We use Windows so we can run the programs we want, and Microsoft will apparently move the Earth itself to make that happen.
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.
Windows file version history is an interesting example of UI inconsistent AND being broken as a result.
It has been removed from settings (was in Win 10), but still exists in the control panel (where you can't configure folders to be included in file version history).
I had no idea it even had that feature. File revision ought to a basic OS function and basic computer skill. One drive and Dropbox kind of give it to you. MacOS does it (you can save named revisions in addition to Time Machine working pretty well) but it’s not become a well-known feature for some reason. On the other hand these features may cause pain if they aren’t something that will survive copy operations, OS updates etc.
I rarely use Windows, but every time again I am surprised how they still squeeze most out of their win95 UI concept by only adding new shiny layers.
There are dozens of desktops that went into several mostly consistent redesigns in all that time. Gnome Shell nothing feels like Windows 95, Windows 10 still somewhat does.
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.
It went through less major updates than Microsoft has went through UI toolkits. GTK2 programs such as GIMP still run perfectly in modern GNOME and integrate awesomely. Even if you count Qt applications for the Linux desktop it still is more consistent and stable than Microsoft's megalomaniac search for the "perfect" UI toolkit.
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.
While it may be technically possible to run old applications on Linux, it likely requires significant pain. In Windows land, if you had a random installer from 2000, there is a reasonable chance it would still work today.
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).
This MS inconsistency is entirely the fault of MS.
You could build thousands of KDE environments with the amount of money MS spends on Windows, yet KDE has managed to update everything across 5 versions of their desktop environment. In fact, EVERY common operating system GUI with the exception of Windows manages to update all the things.
If MS had spent some of those billions on updating those legacy apps each generation, they wouldn't be stuck with so much legacy garbage today. It's also telling that MS has never bothered to stick with a framework that would allow them to upgrade UI themes in-place. I'd also note that "complexity" isn't a good reason because MS could have gone with other solutions that were both more simple and more usable, but chose a convoluted design instead.
Part of the complexity is that there are Win32 APIs that allow applications to add UI to the Windows 95/2000-style control panels. In order to keep compatibility with those applications/code the control panels need to be kept around.
It may be possible to provide an updated UI while still allowing the existing APIs and applications to work and integrate with the control panel, but it is not straightforward.
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.
Windows breaks "extensions" to the desktop environment so often it's ridiculous. Sometimes they even override your settings over an update which is so maddening.
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!
It was never in my memory to begin with – since I've never used it. I don't use Windows a lot, just for games and occasionally at work. I went from 7 to 10.
Sure, but that doesn't improve microsofts case. The fact that hundreds of companies allow their employees to contribute to open source software, not just the kernel, also Gnome and surrounding software.
So dozens of huge companies, hundreds of smaller companies, they can all contribute code to an OS that is on-par with Windows, but missing things like patents and gaming hardware support that Microsoft pays for.
While Microsoft with all their advantages, all their insights and cooperations with hardware vendors still can't deliver.
It's really pathetic, and I put it down to their company culture not having any common goal.
>While Microsoft with all their advantages, all their insights and cooperations with hardware vendors still can't deliver
What didn't they deliver? Last time I check Windoze desktop/laptop market share is still way higher than Linux despite Windoze costing $100 bucks and Linux being free.
And it's not difficult to see why. It's not even about the gaming anymore. The bugginess and jank of the modern Linux desktop can drive you up the walls.
For example, whenever I plug in my 4k monitor in my Ubuntu ThinkPad it rarely detects the 60Hz refresh rate, most of the time defaulting to 30Hz with no way of switching to 60Hz unless I go through a ritual of repeatedly unplugging and plugging the display-port cable again and again until the stars align and at the fifth or sixth time it finally detects the 60Hz option. Absolute madness that's a huge productivity killer. The Ubuntu 10.00 I used in university in 2010 - 2011 gave me less headaches than this.
Yes, I tried different display-port cables. Meanwhile on Windows 10 and 11, both have always defaulted to 60Hz on this monitor and several laptops in the 3 years I had it, 100% of the time, every single time.
Now, since I need to get work/leisure done, and I don't have time to dig through Linux forums and tinker with the driver config files on Linux to find out why Ubuntu sucks so bad at detecting the right refresh rate, so windows has saved my sanity since the candy crush icon in the start menu is a lot quicker and easier to remove than having an OS that plays Russians roulette with your display refresh rate every time I start my day.
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.
420 comments
[ 2.8 ms ] story [ 143 ms ] threadtotal blunder imo but I think most people are just happy it's not as screwed up as whatever the hell Windows8 was
for me personally besides the common complaints just getting to the weather widget is now a huge microannoyance that drives me up the wall
Now they’ve gone and half-baked that design in new software and it’s less intuitive, eg clicking file menu item and a whole new screen appears.
Any other Windows UI even as far back as Windows 1 is better than the piece of hot, useless garbage that was Windows 8.
Flow A: hit a button, a menu with text input and pictures shows up
Flow B: hit a button, a full screen with text input and pictures shows up
A is perfect, and B is "practically unusable".
On a desktop computer. More than likely with (a) monitor(s) big enough to occupy an entire desk.
The Start Screen was fucking horrible all around, and its horribleness was proven with the immediate resurrection of the Start Menu and demise of the Start Screen in Windows 8.1.
Metro also met a similar demise because it forced a black-and-white, no delimiter UI upon desktop computers. Computers equipped with GPUs and monitors capable of rendering billions of colors with huge screen real estate.
Some of Metro's baggage is still with us, but I welcome Windows 11's slow move back towards a colorful Windows UI.
I recall when they did this to Visual Studio.
They completely removed all colors from all of the icons, making it impossible to pick out one from another and making once familiar icons by color a hunt-and-peck operation to find.
It was all just black and white. Then, due to feedback, they relented and put color back on all the icons.
It was madness.
The problem with Visual Studio was the sudden removal of color changed people's "muscle memory" on where certain items were on a complex toolbar or menu system. I have no idea who thought that was a good idea, but some design team decided they were going with it, and they did.
When everything suddenly went black and white, it was impossible to quickly distinguish one thing from the next.
They reverted the decision and suddenly all the colored icons came back and it was once again easier to quickly pick things out.
I mean, people freaked out when they changed just the VS Code icon:
https://visualstudiomagazine.com/blogs/data-driver/2017/10/v...
B can yield a minor mental context switch, with no good reason for doing so.
The most sold app in their crappy app store was a 20USD classic start menu.
Instead, probably because at that time they brought in people with no history in the Windows org to manage the Window org, we got a 10+ year decline of Windows that has accelerated in recent years.
And Win7 barely changed anything.
[1] https://www.startallback.com/
If you're afraid to or don't want to pay for software then you should probably use some variant of GNU/Linux instead.
I think his use of the term "pirate" was confusing.
I think the parent was assuming only legal options.
If that's not a constraint, then food, cars, etc. are also free.
Also, taking someone's car or food deprives them of them. Making a copy of Windows doesn't make it impossible for Microsoft to keep selling it.
I only use it to mean illegal copying.
Frankly this mindset is ludicrous to me and yet I see this with MacOS users too who happily pay for third party solutions to first-party breakage on stuff you already paid for. Somehow the more you spend the less customizable software is and the even more you have to spend to work around dumb choices.
I'm going against the mindset of not paying for software in general, no matter how useful it is to you.
For me personally, I'm more than happy to pay for software if it's clear the developer has _my_ interests in mind when building it (think IDEs, CAD software, even stuff like Office or the Adobe suite). I'm also OK with using software that's free and dealing with dark patterns (shareware, online tools) or bugs (open source stuff).
But paid software that somehow still tries to bilk me for even more money? (See all of the ads that have been built into Windows these days, or various Android phones and bloat) I will be more than happy to go out of my way to crack and get out of paying for it, for nothing but to spite developers of such things. You can't have your cake and eat it too!
[1] https://github.com/valinet/ExplorerPatcher
A real shame, because they showed with Windows 7 that they can redesign the OS UI without giving up features from earlier versions if they want to. Bugs like "the task bar is 20 pixels taller on my second screen" wouldn't have come up if they'd stuck to restyling their old code base.
I find Microsoft's modern designs very comparable to the GNOME designs, in that they're eager to remove common features to build an overarching operating system theme. I like GNOME's design, much more than Windows 11's, but I don't think taking directions from a heavily criticised DE is the right move.
I am a gnome2 person, KDE, win7, etc type UI, if I wanted a mac I would buy a mac.
There was a post on here a few months ago from a former MS engineer talking about how a large part of MS design team were all MAC users.
Enterprise is still king, and we here in Enterprise Ops are not happy. Microsoft needs to remember where its money comes from, and it is not jr webdevs
There has been some usability turndowns for me in the past years, but two things keep me hooked: snap windows (built in) and powertoys (ms-made but requires an install). I can't imagine myself without these two anymore.
But after a week of Windows 11's "grouped" taskbar buttons I risked reinstalling explorer patcher and it worked fine.
I have 3 16x9 monitors.
Why do I have to use 16*3 width of my screen for the taskbar when 1 vertical taskbar in 1 screen is enough?
What's the point of having a taskbar that only groups by app...This has been one of the major pain points of me using Mac OS and it is immensely sad that Windows 11 has also taken this approach. At least some Linux DEs still let me keep my app windows ungrouped...
Unluckily in Windows the taskbar became more essential than the dock in macOS for switching windows - on Mac I use the dock to start new instances or quitting the app (differing philosophy of window and app lifetime between mac and win), not much of a switching - and then they ruined this essential taskbar thing without good alternative on Windows (Ctrl + Tab is more like a complementary thing than alternative).
I almost always have many windows that would have thumbnails essentially indistinguishable from each other (think text editors, file managers, terminal prompts etc.)
So I use the task bar as almost like a system wide "tab" interface. Grouping stuff into the app icon is terrible because I can't easily tell if I have a window of the type I want already open. I don't click on the taskbar items to navigate, rather I use them to check what is already open so I can quickly keyboard switch to them.
The Win11 UI completely breaks this workflow so now I either need to do a linear search to flip through all windows, or pull up either the task view or hover menu above the app icon, and pray I can tell apart the huge grid of identical window thumbnails.
I have two browser profiles and no matter what I do they come up as separate tasks on the task bar.. I am not able to group them up.
I would also like to alt tab to them as a whole, then tab between the group windows instead.
Luckily win11 is just a game launcher for me these days, so I only manage to get so and so aggravated :D
https://news.ycombinator.com/item?id=33781752
So to some extent, does doing this better at the scale of a modern user-facing OS provide enough return on investment?
(P.S. - Latest Windows when installed with MS 'PowerToys' brings a few missing things in Windows from macOS where it might otherwise shine)
The "document-oriented" window management and the fact that you can Cmd+X selected text, but not selected files is deeply bizarre.
For a declaration of my own bias, as a kid I was put in front of macs, so it impressed me during important years (8-15 years old). I don't use any macs nowadays. I use file-cutting-enabled linux systems.
With this background I don't see that opening files or folders with the return key as intuitive at all, I don't see the connection. It's not a bad idea, just an arbitrary choice like others. Command+O I can understand too, O is for Open and on the mac they decided to introduce (i.e. invent and teach the user) a universal action open that works the same for files and programs (no separate open vs execute). That's a positive example of consistency, at least.
Enter for rename is perfectly sensible to me. Personally, I use it more than Cmd+Down to open files.
The Cmd+C + Cmd+Shift+V paradigm for cut/paste makes just as much sense as the Windows paradigm. Either way it's a just copy and delete function. Would you rather choose to delete at the time of the "paste" or at the "copy?" I don't see a clear reason to prefer one over the other.
Some people seem to hate it but for me it’s absolute joy to use and the only file manager designed properly and for power users.
Explorer totally falls apart once files in a folder are in the 10,000s performance anside its sorting and search are anemic compared to Finder.
This means that even the little-seen parts of the OS that have never been redesigned (like DigitalColor Meter, the Bluetooth file receive dialog, ColorSync Utility, Keychain Assistant) still look pretty much at-home in the latest design.
Crazy to think they are still recovering from Windows 8 and the pivot to Metro UI.
Sure, Windows could have changed the look and layout of every component with every release, but with an application as widely used as Windows you really want the ability for users to move from Windows XP to Windows 11 and still have a sense of familiarity and confidence.
It is also difficult for them to remove settings or change their behaviour of settings without breaking compatibility, so really whenever they are making the UI 'consistent' we really mean moving around the existing settings rather than rethinking them entirely - true change has to be done in baby-steps across many Windows versions.
(in fact they broke this and that along the road, the latest and most crucial for me is the taskbar, and I am not talking about the alignemnt, not at all, but all the other possibilities gone, starting with the option of grouping/ungrouping, but not ending there)
The way I look at it (which may be wrong!) is that companies get a 'change budget' of how much users will tolerate in terms of change (i.e. an 'emotional' budget with users rather than a cash/resource budget).
Look at the large facebook designs which recieved huge amounts of backlash from the community - while each of them pushed Facebook in the right direction, each of the changes was also very disruptive to an extent that Microsoft probably couldn't tolerate in Windows.
This time around they decided to use a lot of their 'change budget' on the taskbar, which probably means you don't want to touch other parts. IMO they should have added the option of grouping/ungrouping too before making the change, although the fact that people are complaining about taskbar grouping probably further demonstrates how careful Microsoft needs to be with design changes (Especially as you can probably see WHY Microsoft might want to remove the option of grouping/ungrouping and follow their thought process with this, which shows how easily these UI pitfalls can occur when making changes).
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.
I use GNOME, it's not great, but some people really hate it, go out of their way to tell everybody how pissed they are at it and that GNOME is the worst thing to have ever happened to the Linux world. I guess complaining about GNOME has become part of their identity, a trait shared by the vocal systemd haters that just won't shut up about it.
Many Linux users haven't gone past the "it's cool to hate" teenage phase. Goes hand in hand with the obnoxious elitism and anime avatars.
I just don't use it.
About as desktoppy as I'll get is XFCE. I gave my girlfriend (now wife) a Kubuntu-based laptop once to hold her over until I bought her a MacBook Air.
Systemd is another matter because Lennart doesn't seem to want me to have the "I just don't use it" option without stuff breaking. But Void seems to truck along quite nicely with runit so I'm content with that.
Your initial design might land somewhere very wrong, but starting to ask for feedback from that point on will lead you better since it's wrong for everyone, no?
It's the same problem with all excessively friendly interfaces, great if you are a day one user (pretty rare on Linux), obstructive and shitty if you know what you're doing.
Unfortunately I'm too lazy to switch to KDE (way too much stuff is broken if you install it not from the start and I don't want to reinstall), so I stick to gnome on my work computer.
I really, really appreciated KDE customization and power user options (hidden but there). It is messy and the UI is worse at times, but it's way ahead.
If we continue to cater to only technically inclined people, we have no right to criticize Linux for being for the knowledgeable people only. If we want to attract more users from a more diverse community, we need to make some changes to user experience.
There is no buts or ifs. There are plenty of desktop environments. Technically inclined people can tinker with gconf, or install something different (KDE, E17, or any of the TWMs).
Valve built the Steam Deck knowing very well that their core users will be PC gamers and not console gamers. The steam deck is made as open as a pc, with functionality to jump back-and-forth between that and a pc (dynamic cloud sync).
Console gamers will come, but you don't ignore the people that are at the core of your business.
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.
The difference between GNOME and KDE's major overhauls is that KDE didn't get rid of all of their customization options in theirs.
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)
There are similar schema languages for JSON these days, but without any equivalent to namespaces. Microsoft uses versioned namespaces heavily in the AppX Manifest. It's got a bit crazy, a typical manifest might have 10 different xmlns declarations, but it means that if you mis-name an element or (more likely) put it in the wrong place that won't be silently ignored, it'll trigger a validation error. To get that you need to able to assign each element to a specific fixed schema and then compose them. If you just have a single schema and evolve it without any concept of namespaces, old software can't tell the difference between a mistake and a new extension from the future.
Look at the alternative: Apple went with a generic binary config format for macOS (binary plists) but then introduced an XML version anyway. As an industry we've never got any good at managing the dichotomy between efficient-for-machines binary formats and efficient-for-humans text formats.
The alternatives are also not that great. I looked at many. Some are buggy, some are abandoned, some require complex server-side logic etc. The situation on Windows is far from ideal; it speaks to the general neglect of the platform. Nonetheless with a tool that works around or 'polyfills' issues MSIX can work well.
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.
https://learn.microsoft.com/en-us/windows/msix/group-policy-...
MSI isn't being developed any further and according to MS, the MSIX format is their "deployment technology moving forward".
https://mcpmag.com/articles/2018/08/09/microsoft-msix-replac...
MSIX is relatively new. The customers who requested an MSI may simply not know about it.
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.
I'd say that Windows in general is disappointingly buggy but it's been that way for a very long time, I remember having to work around bad Windows bugs in the 95 and XP days too. It just comes with the territory. We use MSIX as raw material and either work around bugs or reimplement features as necessary. The results seem to work fairly well. MSIX also has the advantage of being maintained and general purpose, which sounds basic, but a fair number of the competitors aren't.
If it's dependencies and packages no longer being shipped, you'll have the same issues running those Python programs on Windows and probably the same solutions as well (downloading all the old sources, compiling all the libraries manually).
You can still run the x86 ABI on x64 (or any other architecture through qemu) though unlike Windows, most Linux distros don't ship support for it by default.
The programs themselves work, but the dependencies have moved on. This is why many recent ecosystems are focusing on static compilation, only demanding a very basic minimal set of functionality (C runtimes and such) from the OS at the cost of needing to patch every single binary on your system one by one when the next log4j/heartbleed bug hits.
This stuff is also why I dislike Python as a platform for running GUI applications. It's easy and it works assuming you put in the work to maintain compatibility yourself. Compiled binaries will work for much longer.
Yeah, the issue is missing dependencies, the 32 bit versions, Linux Gamers complained so there still are some 32 bit packages around but not all of them.
Compiling this old apps I assume will hit same issue, this time missing even more packages since I will need all GTK2 dependencies. I wish there was a nice, slim way to put in a folder all the libraries from a say 16.04 release and tell this app to look there in that folder.
App images would probably be the solution, but who will find all those old projects from source forge that have very few users and rebuild them?
> Compiling this old apps I assume will hit same issue, this time missing even more packages since I will need all GTK2 dependencies. I wish there was a nice, slim way to put in a folder all the libraries from a say 16.04 release and tell this app to look there in that folder.
LD_LIBRARY_PATH can be your friend. You'll still have to reconfigure the application for other resources like images, but as far as libraries go it's a pretty useful fix. I've used it before because the default libraries that come with Google's Android emulator just refuse to work on my system. The easiest way is probably to add the variable to your .desktop file or to write a script that sets it and forwards all arguments to the real binary.
> App images would probably be the solution, but who will find all those old projects from source forge that have very few users and rebuild them?
I agree; Flatpak and friends are a great way to keep applications working many years down the line. I expect them to only stay available for newer programs, though.
You can set up a Docker pipeline that will build the application of your choosing and use that to release updates of old programs but in the end you're still going to need someone who will do that for you.
That said, GTK2 is one of those libraries that'll still be packaged with operating systems for a while, it's just the unmaintained dev version that gets left behind. Like with Python 2, nobody wants to maintain that old stuff so it's either up to the devs to update or up to you to come up with ugly hacks to still run the old software (at your own risk, of course).
In my case I run this python2.4 app, it complained about a missing library, I googled it, found what package had it, installed it, then repat and repeat. Now I am stuck at "libpangox1.0" can't find it on the apt repos , so maybe I will waste more time on google or just give up.
Is a good lesson as a developer, either use some "modern" stuff or if you use c/c++ and care about the users try to build an AppImage or something similar.
Your libpangox library can be downloaded from Debian it seems. In most cases, Debian and Ubuntu libraries work pretty well together (as long as you don't install them at the system level). Unpacking the contents and putting them in the right (application specific) paths may solve your problem.
Personally, I'd resort to setting up a virtual machine for software that old, maybe running X11 forwarding to get the GUI on my native desktop. You might also get away with setting up an AppImage/Flatpak image you can then use on your desktop but that'll take even more fiddling around.
If you're in luck, you may also be able to install the modern equivalent of these packages and port the software over. How well that works really depends on the complexity of your application, but I've run old software after fixing a few imports and method names before so it's worth looking into perhaps?
Personally, I don't really like scripting languages for complex tools like GUIs exactly for this reason. Python in particular depends on a lot of native libraries for its script-to-native conversion, which means you need the perfect mix of language support and dynamic library support for old code to work. It's not a problem if your tool is being maintained, but if it's using software as old as Python 2.4, you're often up for one hell of a challenge. Super basic programs with rudimentary GUIs will work easily but once GTK and Qt get involved, you're probably better off with a compiled binary in my experience;
which is ironic since more and more apps on windows require various system wide dependencies like dotnet, c++ resitibutables etc,
More than a few apps I have tried to install recently on windows would not just run because dotnet 3 is missing by default on both win10 and win11
I'm sure there are some technical reasons there, but I suspect it's also the result of poor judgement.
Example:
- hate the new notification area. The action center was so much better
- dumb stuff like a window update notification that shows a c# class name instead of windows update
- clicking said notification does not bring up the windows update settings as it used to.
- searching for windows update in the start menu does not show the setting as a result. Even when you select setting.
- every few edge updates, th browser is able to put itself in a state that it takes 5 minutes to start up. In that time most other apps will not launch either.
I could go on and on, but these are just a few of the daily problems that irritate me.
- swipe from the left is unchangeably wasted for trash news
- touch interaction (especially in Edge) is worse than Windows 8: I am dependant on a virtual touch pad to do certain stuff (e.g. selecting text and copying it via context menu)
- start menu customization possibilities are ridiculously low
Start menu suggestions cannot be removed. The start menu settings allows you to make it use less space. Disabling it in group policies reserves the space for a message that it has been disabled.
This is outright user-hostile.
winget uninstall "windows web experience pack"
There's no way to remove the trash news from the widget thing, so blowing it away is the only option. Clearly there's someone at MSFT that keeps pushing MSN garbage (wtf is Rewards??) into the OS
The secure boot requirements were also a pain. My hardware is compatible and my first install got TPM enabled, but memory protection and core isolation wasn't available. It took me a couple of BIOS changes and installs to get everything working.
Not that it should surprise me anymore. Microsoft's shamelessness knows no bounds.
Huh? It’s hover and 1 click?
It's like Windows forgets the secondary monitor from time to time. And I have to extend the primary again. Then the pop-up for witching to the monitor audio out comes up. And I have set it to "Disabled" in control panel->sound a million times.
Are some monitors that bad on macOS but better in Windows, or viceversa?
https://www.ghacks.net/2019/09/23/former-microsoft-employee-...
Funny thing is this was absolutely never said by Microsoft. If you dig deep enough you reach a single throwaway quote by some employee that said something along the lines of "Windows 10 is the last version released and we're focusing all attention to it, not 8.1".
> When I reached out to Microsoft about Nixon's comments, the company didn't dismiss them at all. "Recent comments at Ignite about Windows 10 are reflective of the way Windows will be delivered as a service bringing new innovations and updates in an ongoing manner, with continuous value for our consumer and business customers," says a Microsoft spokesperson in a statement to The Verge. "We aren’t speaking to future branding at this time, but customers can be confident Windows 10 will remain up-to-date and power a variety of devices from PCs to phones to Surface Hub to HoloLens and Xbox. We look forward to a long future of Windows innovations."
https://www.theverge.com/2015/5/7/8568473/windows-10-last-ve...
"I don't know the answer, but I have to say something." Or "The answer's no, but this rumour goes in our favour of convincing people to switch to 10 so we're not going to deny it."
If it said "Windows 10 will remain up-to-date indefinitely", then I'd agree.
You could argue that Microsoft was betting on Windows 10 as a platform and that Windows 11 is in fact built on this platform (and the 11 is just marketing lingo for 10.x). But despite Microsoft revisionism, the fact is that they changed there mind along the way.
I only use Windows occasionally, but when I have to set up a printer (shared from another computer) or file sharing, I often have to resort to either creating obscure registry entries based on random internet tutorials or use command line to figure out what exactly the GUI wizard means by "the thing you want can't be found"
I'm pretty sure Windows has always been like that. Magic registry keys and underdocumented mmc panels, mystical cmd commands and some COM/WMI poking vbscript. This is also why powershell is such improvement in windows world, it attempts to reset at least some of the management madness.
Just like in the linux where all GUI's are more or less just wrappers around command line utilities or have 1:1 cmd line alternatives, Windows is becoming powershell first then GUI.
Where before ALOT of functionality was only accessible from the GUI
But PowerShell for me is the best thing that has happened to Microsoft ecosystem.
IMO Windows is just moving backwards. Back in the days for both os you needed to knew unobvious things. Registry and MMC being prime examples for windows. Some of todays Linux flavours come with consistent control panels that solve 99% of all common problems in the same UI wrapping cli tools you could also use if you want. Something Windows is far away from at this point.
At least in /proc you see all the keys you can change...
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 believe some are no longer supported, but are still in use internally.
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'm tired of Microsoft actively making things worse instead of actually improving what they already have.
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.
In Win 11 22h2, if you start it as a regular user, you get the new interface. If you run it as administrator, you get the old one.
It also somehow manages to often maximize behind the taskbar. Or cut the output on the righ-hand side of the info in the performance / memory pane.
or
tasklist /FI "IMAGENAME eq malicious.exe"
The fact that another obscure application (at least obscure to most people) can do this does not mean it is ok for task manager not to have this very basic feature.
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.
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.
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.
There's plenty of reasons; it's a compromise like everything else. You trade away some performance for portability; the ability to run the same code and know your environment is identical each run is a significant pro.
Docker wouldn't have gotten to where it is for no reason.
I suspect the popularity of docker as a local developer tool comes from convenience. It feels easier to install docker than fix your homebrew permissions, install anaconda or install a recent version of nodejs on ubuntu. And if you’re already using docker in production, you need a workflow to make docker images anyway.
That and it’s trendy.
Never mind that using docker makes macos sometimes not sleep properly. That it makes your program much more difficult to debug. Or that you’re throwing away 2/3rds of the performance and 1/2 of the RAM of your expensive computer in the process.
Everyone else is using it. We can’t all be wrong, can we?
People use docker and containers for multiple reasons. Reproducible dev environments, Unix development on Windows, etc. The biggest benefit is that your image is fully reproducible; you won't have random issues pop up because of edge cases being hit on dependency updates, you don't have to make sure your new devs install version X of tool Y for development, and you know your code will work identically each time you run `docker start`.
Like all other things, it has pros and cons. You may not value reproducibility, but your assessment is just that: yours. It's ok to have, but you need to realize others value things differently.
As a reminder, your argument is:
> Honorable mention for docker convincing windows and macos developers to write software inside slow virtual machines for no reason.
To say there's no benefit to Docker whatsoever is blatantly false.
> Everyone else is using it. We can’t all be wrong, can we?
If one person around you is wrong, then they might just be wrong. If everyone around you is wrong, then maybe it's you that's wrong.
Several generations of new guys later, we arrive at present day. And that ChatGPT future you described will come to pass, unless we stop using computers first.
By my measurement, that's an order of magnitude too high. My real-world Electron app uses ~77 MB on startup on Windows, across the private working sets of all four processes. Granted, my JS code is relatively lean, but still, we should be charitable, if only because Electron hate is so rampant here.
> Electron makes Java feel light and nimble.
Total rose-colored glasses. Early in my career, in late 2001, I inherited a Java-based desktop app that took so long to start that we made it start looping background music part way through the startup process (it was an audio-based app for blind people, so that was our equivalent of a splash screen). I'm confident that if we developed the same app in Electron today, it would start an order of magnitude faster on today's typical end-user hardware. Some things do get better over time. In this case, bundling of both native and JS code in Electron apps is way ahead of what we had for the JVM in 2002, basically loading lots of little .class files from several .jar files, not to mention multiple native code DLLs as opposed to the Chromium mega-binary. Of course, the JVM world now has NativeImage which is even better, but I don't think anything like that was practically available back then.
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.
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 still find it surprising that in some forgotten corner of Windows we get 3.11 file dialogue. But also who cares really.
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 ?!
Report.doc, report1.doc, report11.doc, reportfinal.doc, reportfinal2.doc
There are dozens of desktops that went into several mostly consistent redesigns in all that time. Gnome Shell nothing feels like Windows 95, Windows 10 still somewhat does.
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.
You could build thousands of KDE environments with the amount of money MS spends on Windows, yet KDE has managed to update everything across 5 versions of their desktop environment. In fact, EVERY common operating system GUI with the exception of Windows manages to update all the things.
If MS had spent some of those billions on updating those legacy apps each generation, they wouldn't be stuck with so much legacy garbage today. It's also telling that MS has never bothered to stick with a framework that would allow them to upgrade UI themes in-place. I'd also note that "complexity" isn't a good reason because MS could have gone with other solutions that were both more simple and more usable, but chose a convoluted design instead.
It may be possible to provide an updated UI while still allowing the existing APIs and applications to work and integrate with the control panel, but it is not straightforward.
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.
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.
AFAIK IBM, SUSE, Red-HAt and Canonical are heavily investing in Gnome while other companies are investing in KDE.
KDE/Gnome aren't just some guys in a garage developing them in their spare time.
So dozens of huge companies, hundreds of smaller companies, they can all contribute code to an OS that is on-par with Windows, but missing things like patents and gaming hardware support that Microsoft pays for.
While Microsoft with all their advantages, all their insights and cooperations with hardware vendors still can't deliver.
It's really pathetic, and I put it down to their company culture not having any common goal.
What didn't they deliver? Last time I check Windoze desktop/laptop market share is still way higher than Linux despite Windoze costing $100 bucks and Linux being free.
And it's not difficult to see why. It's not even about the gaming anymore. The bugginess and jank of the modern Linux desktop can drive you up the walls.
For example, whenever I plug in my 4k monitor in my Ubuntu ThinkPad it rarely detects the 60Hz refresh rate, most of the time defaulting to 30Hz with no way of switching to 60Hz unless I go through a ritual of repeatedly unplugging and plugging the display-port cable again and again until the stars align and at the fifth or sixth time it finally detects the 60Hz option. Absolute madness that's a huge productivity killer. The Ubuntu 10.00 I used in university in 2010 - 2011 gave me less headaches than this. Yes, I tried different display-port cables. Meanwhile on Windows 10 and 11, both have always defaulted to 60Hz on this monitor and several laptops in the 3 years I had it, 100% of the time, every single time.
Now, since I need to get work/leisure done, and I don't have time to dig through Linux forums and tinker with the driver config files on Linux to find out why Ubuntu sucks so bad at detecting the right refresh rate, so windows has saved my sanity since the candy crush icon in the start menu is a lot quicker and easier to remove than having an OS that plays Russians roulette with your display refresh rate every time I start my day.
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.
Oof first sentence and it's already a train wreck