
Having just read John Siracusa’s excellent (as always) review of Leopard, I got thinking about one gaping hole in Mac OS X. An uninstall application/framework.
Apple’s Installer application and underlying framework is right up there, it’s easy to use, easy to create installer packages (and metapackages) for, easy to use and parse via the command line. But where is it’s uninstalling counterpart?
Apple have always emphasized single shot uninstallations, as in, you delete the .app package for an application and it’s done. Simple. Unfortunately applications are not just the contents of the .app package. They create preferences files in the Users or System Library folders, amongst other things. Especially with the new application signing feature of Leopard, would it be that hard for Apple to keep track of files created by a specific application using the fsevents framework that keeps track of all filesystem changes (as leveraged by Spotlight and Time Machine). Then when an applications is deleted, the system could offer to clean up other files that had been created by the application.
Of course, this could probably be accomplished without either application signing or fsevents as long as applications stick to naming conventions so associated files can be found. But using these advanced frameworks could lead to a scenario where you delete an application, and Mac OS X pops up and asks you if you’d like to remove preferences files, widgets, preference panes and even documents created with the application!