Making the best uninstaller

Making the best uninstaller

We have been very busy here at Macecraft Software developing the brand new jv16 PowerTools version 8.

When you read a sentence like that, you don’t really know what that actually means. That is exactly the purpose of this post: I want to show you what happens behind the scenes.

It’s fair to say I have been obsessed with many things in Windows maintenance, but making the best software uninstaller for Windows has to be one of the biggest obsessions that I have. It probably started in the early 2000’s when I was working on the freeware app called RegCleaner which later evolved into jv16 PowerTools.

But why software uninstaller, specifically?

To answer this question, let’s take one step back.

What is an uninstaller?

A software uninstaller, also known as an uninstaller program, uninstaller software, uninstaller tool, or uninstall utility is a program designed to perform app uninstallations. It is a process where the uninstaller removes all of the files and registry entries that were created when you installed an app or a game.

For example, when you uninstall Chrome using a software uninstaller program, it essentially attempts to detect and delete all of the files and registry entries that were created by Chrome when it was installed.

While this sounds trivial, it’s actually very difficult.

Using a third-party uninstaller

Why to use a third-party uninstaller when you can use the App & Features tool in Windows?

We will get to the nitty gritty details a bit later, but to put it simply: the uninstallation process isn’t thorough and there will be leftover data. When these leftover files pile up over time, they can potentially cause your system to slow down. We actually did a benchmark test to show that large amounts of leftover data does slow your computer down.

The App & Features tool also doesn’t solve the issue of being unable to uninstall stubborn programs.

For example, when trying to uninstall something with it, you could simply get an error message from Windows saying that something failed and it was not possible to uninstall the app.

How did the obsession to create the best uninstaller start?

My obsession to create the best uninstaller started many years ago when I was attempting to update a program. I believe it was a media player called Winamp.

I had uninstalled its old version and I then tried to install the new version. That is when things went wrong: the installer said I cannot install the new version of Winamp, because an old version of Winamp is already installed and that I should uninstall that first.

But I had already uninstalled it!

That is when I started to study how installing and uninstalling software works in Windows. It was probably Windows 98, but the same principles still apply to this day.

This problem with Winamp made me want to develop a software uninstaller that could help people with these types of problems.

After a lot of research, trial and error, I had developed the first version of a software uninstallation engine. I was then able to use that to detect that some files and registry keys of Winamp were still in the system and after removing those, I was able to install the new version.

Also, the simple, yet complex nature of software uninstallers is something that I find very fascinating. Though the purpose of an uninstaller is to simply remove files and registry entries that belong to an app, the way this works is far from simple.

Like many things in life, this is a problem that first seems trivially easy, but the more you look into it, the more nuanced and complicated it becomes.

But that’s why I enjoy developing the Software Uninstaller tool in jv16 PowerTools. Not because it’s easy, but because it’s hard!

The best uninstaller benchmark

In an attempt to create the best uninstaller, I have conducted many benchmarks relating to uninstallers with the latest one being the software uninstaller comparison from last year.

There, I compared popular uninstaller programs such as Bulk Crap Uninstaller, IObit Uninstaller, and Revo Uninstaller Pro with jv16 PowerTools’ Software Uninstaller tool.

I believe what gets measured, gets done. Opinions are one thing. Benchmarks are another thing. As an engineer, I believe in data and in benchmarks, and if you want to find the best products for yourself, you should base that on data as well.

Benchmark tests are an important component in making the best uninstaller because from there I can see how the Software Uninstaller tool performs against the top players in the industry and how much further this can be improved.

Testing software uninstallers is fairly straightforward: You install some apps to a system, you uninstall them with the software uninstaller product and then you use some tool to search how many files and registry entries were left behind after the uninstallation.

But making a software uninstaller is anything but straightforward.

Challenges in making the best uninstaller

There is no standard way in Windows how apps should be installed on the system.

Basically, any app developer can decide how they want their app to be installed on your system and what is even worse – it is also up to the app developer to implement the uninstallation mechanism for their app as well.

What you might not realize is that if you use the normal Apps & Features tool in Windows Settings to uninstall an app, it’s not Windows that does anything to uninstall that app. What the Uninstall button in the Apps & Features tool does is that it simply starts the app’s own uninstaller. The uninstaller that was provided by the app’s developer. And if you are uninstalling their app because it wasn’t very good, you can bet that the app’s uninstaller isn’t very good either.

That is also the first step of what a software uninstaller products do: It first starts the built-in uninstaller that came with the app you want to remove. And in the case of some uninstaller products, this is basically all they do – they simply do the exact same thing that the normal Apps & Features tool in Windows does, but they just do it with a different user interface and possibly with some extra features, such as batch uninstallation or being able to uninstall many programs in batch.

Another problem is that within the Windows operating system, any installed app can basically create any files and registry data they want within their permissions. And Windows doesn’t keep track of what apps created what files.

This makes it very difficult to afterwards analyze what was changed during the installation of some app, and how it should be uninstalled to remove as much of the leftovers as possible.

Making jv16 PowerTools Software Uninstaller the best uninstaller

Custom software uninstallation engine

For the new jv16 PowerTools version 8, I basically re-wrote the entire software uninstallation engine.
The main feature of this custom software uninstallation engine is that it will analyze your computer and find all files, folders, registry keys, and registry entries created by the apps you have installed.

This is a challenging task because, unfortunately, the Windows operating system doesn’t keep track of what apps create or modify what files or registry entries in your system.

There are two main ways how this type of feature can be implemented:

  • Monitoring the system – Basically, a software uninstaller product could create snapshots of your system before and after you installed an app, compare these snapshots and then undo everything that was changed by the app’s installation if you choose to uninstall the app.
  • Analyzing the system – This method works by simply analyzing the system to look for data that has been created by the installed app.

Both of these methods have their pros and cons.

Monitoring the system vs Analyzing the system

Monitoring the system can be more accurate but it’s basically unusable if the monitoring system wasn’t running when you installed the app you now want to uninstall.

While this sounds trivial, it’s a fairly common use case that someone has installed an app and then wants to later fully uninstall – or its normal uninstallation simply fails to run – and at this point, they start to look into uninstaller products.

A well made analysis based system can be as accurate and it can uninstall apps even if you didn’t have the uninstaller product running when you originally installed the apps.

This is why jv16 PowerTools uses the analysis based system. Basically, it will scan your file system and system registry to look for traces of left-over software you thought you had already uninstalled, and live data from the currently installed apps.

When I say that we have been busy with development, this is one part of what I mean.

Key features in jv16 PowerTools Software Uninstaller

The way the Software Uninstaller tool in jv16 PowerTools works is different from regular uninstaller software. It doesn’t simply rely on the built-in software uninstaller to start the uninstall process, it does much more.

There are two different uninstall options available:

  • Regular uninstallation: This option only uses the standard uninstaller of each software, only the official uninstaller of the uninstalled software is used.
  • Custom uninstallation: The custom uninstallation engine searches for installed software and leftovers from the Windows registry and from the hard disks. It doesn’t simply read the official list of installed software like other programs do. This option is slower than the standard method but typically provides more accurate results.

Software Uninstaller also includes advanced features such as:

  • Batch uninstallation of the software. Do you want to uninstall twenty apps while you go out to have coffee? With jv16 PowerTools you can.
  • Unattended uninstallation. Our Software Uninstaller supports 100% automated uninstallation of the software. After you click Start, there is nothing more to click or do while the uninstallation is happening.
  • Finds all installed software and leftovers. Software Uninstaller performs a registry and hard drive scan to find installed software and leftover traces of old software.
  • Lists all the data relating to installed software. Before jv16 PowerTools starts to uninstall anything, it shows you exactly which files, folders, and registry keys will be removed.
  • Custom uninstallation engine. We don’t simply ask an app to remove itself. We first ask nicely, and then we use jv16 PowerTools’ unique custom uninstallation engine to check and double check that all data relating to the app has been removed.
  • Removes locked files. Software Uninstaller can finalize the uninstallation by restarting Windows and removing any locked or in-use files before Windows starts the next time.
  • Analyzes installed software. The tool can also identify large and rarely-used programs, which is useful for freeing up disk space and improving system performance.
  • In-depth installed app categorization. You can sort applications by various categories, such as installation date, size, publisher, and impact on the system, making it easy to identify and remove unwanted programs quickly. It also detects and removes stubborn or problematic applications that can’t be uninstalled by Windows uninstaller.

Software Uninstaller tool comes with an easy-to-understand interface, suitable for inexperienced users. In addition to the intuitive interface, this tool also comes in 27 interface languages. In short, jv16 PowerTools’ Software Uninstaller is a powerful tool to remove unwanted programs.

Leftover files benchmark

Me and my team have used different testing computers with different installed apps and systematically uninstalled apps with jv16 PowerTools and written down how many leftovers remained after the uninstallation with jv16 PowerTools.

Here is some data from our internal testing logs relating to this:

DateTested private versionLeft-overs remaining
February 17Build 15451583
February 20Build 1546224
February 22Build 154757
February 24Build 154870
March 7Build 154938
March 8Build 155022
March 10Build 155225
March 14Build 155421

This is what the day to day development work is: I’m trying to make improvements to some parameters in the product that we can measure, and with every internal testing build, I try to make that parameter better.

For example, in the case of making the best software uninstaller, the parameter I tried to improve was the number of items left behind after uninstalling a lot of apps. And as you can see, within five private test builds, we were able to get the amount of leftovers down from 1583 down to just 21.

I’m already very pleased with this progress, but as I mentioned in the beginning, I’m obsessed with this. Users of jv16 PowerTools are putting their trust in me to deliver them the best possible quality software and I take that responsibility very seriously.

The next step after making the best uninstaller

It’s currently 6:30 PM when I’m writing this blog post. After I’m done writing this, I will again go back to jv16 PowerTools and prepare a new version for tomorrow for the testing team to evaluate.

The latest private build left 21 items (files, folders, or registry entries) behind after many apps were uninstalled with it. I want to make it better.

This is the day to day work that we do here at Macecraft Software. It might sound boring but I love every moment of it, I really do. Because just like when I was obsessed with making the best windows maintenance tool when I started to develop RegCleaner in the late 1990s, I’m still driven to do my best and deliver you the highest quality product that I can.

On that note, the new jv16 PowerTools version 8 with many new features, including what I believe is the best software uninstaller, will be released on March 30th.

Stay tuned to our blog updates for more information about the new product release and give version 8 a try when it’s available. Thank you for reading!