Jeff Atwood has another one of his infuriating pieces up. It is a comparison between installing an application bundle on a Macintosh and running the typical installer on Windows.
He quickly gets hung up on the number of manual steps involved in installing an application bundle and wonders why the convention on the Mac is not to use an installer. Sure, going be number of steps, the Mac is longer. I don’t think that makes it more complex or harder. And it completely misses a critical difference between an application bundle (which is not unique to the Mac by the way) and a typical Windows application.
The point of an application bundle is that it is self contained. No external pieces that must be set up just so in order for the application to run. Delete the bundle and the application is gone. No linger registry entries. Yeah, there may be some preference files but they are on the file system, in a standard location, where they can easily be found, identified and discarded if desired. And safely, too.
Application bundles are also usually agnostic of where they are installed. You can put them on your desktop, in your own folder or wherever you find them easiest to use. Granted, this seems to be something even seasoned Mac users miss. A very common issue I have seen with newer Mac users is they leave the applications in the disc image file, even if they keep it in their dock. Launching such an application bundle from the dock still just works, though, opening and mounting the disc image to get at the bundle. I’ll admit that I did this once or twice when I got my very first Mac.
Sure, Mac developers could use the very robust installer that is bundled with the OS X. Some kinds of software, like low level libraries and kernel extensions, do indeed use the installer to make sure all the pieces parts end up just so. The uninstaller could use some work, but the tools are there to build it out. From the command line, you can easily audit where all the parts of a .PKG file went. And as with application bundles, usually, it is safe to just go ahead and manually delete those files.
The installer, though, adds a speed bump to that assumption that the bundles and files are safely user modifiable. The choice to distribute Mac applications as bundles in disc images re-inforces the feeling that these are meant to be safely handle by the user at the expense of a few more steps.
Speaking of those steps for a moment what irks me is that the example Atwood references is not even typical. Most developers do not compress their disc images, so the silliness about digging out the image file is rarely an issue. More and more developers are also adding symbolic links in the disc image with a nice background to the folder that simplifies the process even further without preventing more advanced users for dragging the bundle off to a different, preferred location.
How many horror stories have you heard over the years of a Windows user trying to move or remove an application and disastrously harming their PC? There is no real reason this must be so other than convention and inertia. The Windows installer may be one click, but it is also a black box that band aids a process and end product that most Windows developers do not want the user touching.
Application bundles may seem “harder” to install to the uninitiated but re-inforces that the bundle is merely another kind of file that the user may safe move, remove or copy just like any other kind of file without worry.
And if you want to play a numbers game, how long does a typical setup.exe take to run compared to copying a bundle? All you have to do with the bundle is copy it. You get the same progress meter as any other kind of file copy. With an installer, other steps may be performed and you are limited to the feedback the developer chose to give. Is it copying files? Which ones and where? What does it mean when it says it is configuring?
Mac is only one example of different ways to get new software onto a system. Taking the installer forward to a more logical conclusion you arrive at the package management systems available as an integral part of Linux distributions. Wonder why Jeff didn’t take a swipe at say Ubuntu’s typical software installation? Nice golden hammer you have there.