Unfortunately for me, I couldn’t just let this one go.
I tested all the popular Windows uninstallers and I didn’t like what I saw. I thought many of these programs had some rudimentary issues with their user interface, and they just didn’t work that well.
How difficult could it really be to do something better?
As it turned out, it was very difficult, actually.
It’s 2023, and Windows users still cannot centrally manage their software. People have to create multiple uninstaller programs to finally make a decent one, and not only does it need to uninstall applications, it also needs to somehow find all the garbage files and registry keys these applications barf all over the system.
We deserve so much better than this trash.
Take this: Brother’s latest drivers include crapware that direct you to a Popup, EVEN if you refill your toner. This happens daily at first. Now Twice daily. This software is called PowerEngage. I have NOT found a way to get rid of it manually , even looking for a registry key fails. GOD I hate Windows AND now Brother! I’ve even uninstalled the entire driver set through Add/Remove Programs. LOL
Has Brother polluted their universal driver too?
That’s abundantly clearer as even a complete driver uninstall via Add/Remove programs and their uninstall tool is ineffective.
To be entirely fair, Linux also has the same problem, but to a much smaller degree.
Config files in /etc, log files under /var/log, caches in /var/run/, and many others will be spread around after you install a software. And there is no definitive answer to: what should stay and what should go.
Because if you edit your SSH config, you might not always want to remove it. Next time you install, you might want to start from where you left off (or the opposite). Same with logs, and others.
Again for fairness, there is apt remove and apt purge, and most package maintainers take good care of all possible places of artifacts. However that is not always done perfectly.
And then there is docker, snap, and other container managers. They too will leave things behind, but again, much easier to clean.
For Windows, unfortunately, the places these files go are even more widespread. There is Program Files, there are also shared libraries (STD C++, etc), which were only installed for this package. But are they needed for the next program you have installed? And then AppData, LocalAppData, AllUsers, and many other random directories will contain files generated by this application.
The only surefire way it rolling back to a previous snapshot (System Restore), which actually works. (Windows team should be commended for building a true transactional filesystem). But that means everything else installed after it are lost.
Anyway, it is a trade-off between being able to support the Windows 1.0 applications 30+ years later, and at the same time trying to do the modern best practices.
And there’s also new formats like AppImage and FlatPak that have even less impact on your system. IIRC, Microsoft wanted to use App-V to package win32 apps on the store, which would’ve also been far less messy.
Yes,
They have been trying for a while. But still not there, at least unless you look for it, most people will not realize containers exist in Windows.
They have “best practices” for .Net applications:
https://learn.microsoft.com/en-us/dotnet/architecture/modernize-with-azure-containers/modernize-existing-apps-to-cloud-optimized/deploy-existing-net-apps-as-windows-containers
And very tight integration with Docker (for Linux images under Windows, ironically):
https://learn.microsoft.com/en-us/virtualization/windowscontainers/about/
We might even include the “XP Subsystem” they experimented with back in the day. (Was it Windows 7?)
Anyway, as you said FlatPaks might help with application isolation. I think they even make Steam Deck for example better for gaming than Windows, since games on Steam OS are also containers themselves.
I am not an expert, and I don’t like macOS much, but I think in this regard it is better than both Windows and Linux? You just drag/drop and everything is installed/uninstalled? Or am I wrong?
Yes and no. An application’s main files will usually go into /Applications/MyApp.app bundle (executable folder). If you delete the bundle, the app will go too.
But there are exceptions.
First up, macOS carries over Library folders from the NEXTSTEP days, which can store preferences, plug-ins, and other shared resources that might be useful to other apps. There’s the root level /Library which pertains to all users, and the user level ~/Library that pertains to the active user only. Many of these files are also symlinked into the FHS folders.
These files won’t be removed just by dragging the app bundle into the trash. Apps might sometimes provide uninstallers, or third party utilities might be needed (AppZapper, brew, etc) to remove these.
The structure used to be much clearer in the past. But with increased sandboxing of apps, files are now being tucked away even more deeply in separate containers of library folders. And those are often very difficult to find unless you know what you’re looking for.
Probably made mistakes, others please correct me.
This is a myth macos beginners will satisfy themselves with, but it isn’t quite true. See this comment: https://www.osnews.com/story/135768/no-start-menu-for-you/#comment-10428032 and research what .plist files are if you think windows registry and linux config files are heretic devices Apple would never fall prey to.
According to the article, his uninstaller missed 58 files. I was hoping that the reason for this failure would be investigated and fixed, then we could have an uninstaller that really worked properly, or if this was impossible for some reason he could at least explain why.
Things like this wouldn’t be so hard if the installer and/or software developers had the decency to have a list of what files it creates.
What a puzzling article.
It opens complaining about Bulk Crap Uninstaller’s interface being too flashy, and as proof it shows a screenshot where all the flashy options are on. Well, no shit Sherlock, just turn them off. Then it says that the users should be allowed to choose what they want to see… which they are in BCU. Is that complaint directed not towards BCU, but the other programs? In that case I’d say it’s a bit ambiguously placed and worded.
Then it complains about Revo’s colours, and shows a screenshot with is completely different scheme from what I see in both the free version, and the screenshots of the pro version on the official website. Is that a custom scheme? Or maybe it’s just pro’s dark mode? I won’t install that just to find out.
Then it goes into the evaluation proper, which boils down to two points:
1. Ability to uninstall programs in bulk, unattended. How often do you need to uninstall so many programs, that doing it one at a time is such a pain in the ass?
2. Number of leftover files. This is certainly a valid metric, but how about explaining what these files actually are? Are they configuration files, which I may want to keep? Are they temporary and cache files, which will be flushed the next time I clean my disk? Are they registry entries, like extension associations which will be fixed next time I need them anyway?
Then it presents their new software. Now, beauty is subjective, but tiny hard white on black text with no icons isn’t what I would call an appealing UI. Which would be fine, if the article didn’t start off complaining about UIs. Then, what are those 58 files that your program still left? Why did it left them?
OK, let’s test this a bit.
There is basically no customization available over what to see (remember their complaint above?).
Changing the theme from dark to light triggers a complete (and slow) re-scan for some reason, and by the time I went from dark to light to dark again, it complained about having run out of memory, and didn’t start again. OK, Wise Memory Optimizer to the rescue.
Its window doesn’t honour the snap resizing feature, so no Win-Up or dragging against the upper border. Also the maximized window doesn’t fit the whole screen, except when it does and then it covers the bar.
It listed some “leftover” stuff. Let’s see the details for PeaZip for example. It says that I have “1 files or folders”, but there’s quite a long list of them. At the bottom there’s this disclaimer: “The list contains paths that do not actually exist right now”. So that’s a list of stuff that isn’t actually present on my disk, except for one item, but if want to know which one, I need to check all of them manually until I find it… Great! After the paths there’s a list of 65 registry entries. Most of them are extensions, some of which are surely handled by 7zip as well, so I’m not convinced I want to remove them.
Hitting the uninstall button presents me the same list, but this time it’s editable as regular text, which is… a solution I suppose. I wonder what happens if I accidentally delete only half a line or alter it, but I don’t want to test that, to be honest. I suppose leaving “C:\” on a line could be interesting.
In the end, it got me a bit nervous and I didn’t uninstall anything. I’d rather have a tiny bit of innocuous cruft than risking screwing up my perfectly working system.