More on Installing Applications

After writing Installing Applications on the Mac: Still Broken yesterday, I was alerted to other articles on this topic. Joe Lion wrote an essay called Mac App Installation. He points out:

First of all, the .dmg paradigm is broken. Plain and simple, it just doesn't make sense to normal people. Why should you have to mount a virtual drive (a completely foreign concept to people who have never mounted an actual drive to begin with), then copy an app from the virtual drive onto their regular drive, unmount, then delete the DMG? If I didn't know what a DMG actually is, I would be terrified of unmounting/ejecting it (if I even knew I had to do that), much less throwing it away. What happens then? Does the program get thrown away too?

About Windows, he writes:

If your only defense for what installing on a Mac is like is "yeah, well, look how bad it is on Windows," then you've lost the battle.

On his blog in an essay titled Why is installing software on a Mac so complicated?, Patrick Dubroy writes:

I decided to install the latest version of Skype, since the version I had on there was so out of date. In the process, I was reminded just how much of a pain it is to install applications on Mac OS.

He also proposes a solution:

My proposed solution is for Apple to come up with a standard application distribution format, something other than .dmg, because that causes too much confusion, with the whole unmount process. Really, it doesn't need to be anything more than a zip file with a bit of metadata. When you double-click on one of these files, you would be presented with a dialog asking, "Would you like to install Skype?". It would show "Destination: Applications", which advanced users could change, like a "Save As" dialog. Then, for most people, installing the application would be as easy as clicking yes in the dialog.

I would argue that double-clicking is already too much work. The Windows installation method works because the user never has to show any kind of initiative after initially clicking on the download link; Windows always prompts you when you need to do something.


It's a bit pointless to compare Mac OS X to operating systems such as Linux (where you usually install applications using some kind of package management system) or the iPhone (where you install apps by clicking on "buy"). It would be neat if Apple provided a package management system as an option for Mac applications, but that's not what we're talking about. We're talking about installing apps hosted on third-party websites without any interaction with Apple.

Windows is the only other popular operating system where most applications are installed via independent third-party websites. So let's see how Windows does it.

First of all, let's click on a download link:

Installing Apps on Windows

Since this is Windows, we'll get our first security alert. At this point, we're prompted whether we really want to download the file (we may also get a second modal dialog box telling us to pay attention to the security alert):

Installing Apps on Windows

After agreeing to download the file, we get yet another security alert. Now that we've agreed to download the file, do we actually want to save or run the file, too? Since it's an installer, we want to run it.

Installing Apps on Windows

Okay, we've told Windows to download and run the application, but Windows isn't sure whether we also want to allow the application to make changes to our computer. Since it's an installer, the answer is yes.

Installing Apps on Windows

At this point, the installer finally starts, and we tell it to install the app.

Installing Apps on Windows

Once the installer is done and we quit it, Windows helpfully points out the new application by highlighting it in the Start menu.

Installing Apps on Windows

Installing apps on Windows obviously involves a ridiculous amount of "are you really sure about this" security prompts, but there are two advantages to Windows' approach:

  1. It's a guided process. You're never left saying "Okay, now what?"
  2. It's pretty much the same for all applications

On a Mac, different applications use different types of installation mechanisms. What's more, after downloading an app, you're typically left hanging without any hints telling you what you should do next.

If you've never used Windows, you might wonder how to get rid of an application. You do that by opening your control panels and clicking on "Uninstall a program."

Uninstalling Apps on Windows

While this may seem more complicated than simply throwing the application into the Trash, it has the huge advantage of working for everything. Do you know how to uninstall Dropbox on your Mac? VMware Fusion? Backblaze?


Neither Windows nor the Mac gets installing apps right. On the Mac, it's chaos, with every developer doing it differently. While Windows at least has a guided process and some kind of standard most developers adhere to, the slew of security alerts makes the whole thing slightly ridiculous.

If you require a short url to link to this article, please use

designed for use cover

But wait, there's more!

Want to read more like this? Buy my book's second edition! Designed for Use: Create Usable Interfaces for Applications and the Web is now available DRM-free directly from The Pragmatic Programmers. Or you can get it on Amazon, where it's also available in Chinese and Japanese.