One of the most beautiful aspects of OS X is the application install/uninstall process — for many apps, you simply open a disk image, drop the app in
/Applications, and that’s it. Then when you want to uninstall, you just drag the app out of the
/Applications folder and into the Trash…well, almost.
I say “almost,” because many apps leave behind artifacts such as caches, preferences, etc. You can find a lot of this stuff in
~/Library if you care to take a look. Sometimes the size of these settings and preferences can be substantial, but even if they’re not, I’d still consider them clutter. There are a few apps out there like AppZapper can help tidy things up by searching for and intelligently removing these relics, and while I admire the benefit offered by these clean up apps, I still have to say that I think they’re unnecessary, or at least they could be with minimal effort from Apple.
But it’s not usually a good thing to complain unless you have a better idea, so here goes:
One thing I’d love to see in Leopard, the next major rendition of OS X, is an option for developers to embed information into their applications that would facilitate a complete uninstall by the OS — yet keep all of this completely transparent to the user. At its simplest level, a little plist file embedded into app bundles could contain the locations of caches, preferences, etc., and then when apps are removed from the
/Applications folder and dropped into the Trash, the OS would detect the move, parse the embedded plist containing the locations of the relics, and automatically take care of removing them. Perhaps in System Preferences there could be an option to automatically remove relics or prompt the user before cleaning up.
There could be a couple of security issues to consider, namely making sure that when things get automatically deleted that it only happens from “trusted” locations that are designed specifically to hold application artifacts. But that’s the way it is with anything; security is almost always a factor, and there are always risks and rewards to calculate.
In the analysis, though, the way I see it is that the additional burden placed on developers would be minimal, and the effort required from the folks in Cupertino would be minimal — yet the benefit offered to end users would be well worth the investment.
Seems kind of obvious doesn’t it?
So what do you think?