a companion discussion area for blog.codinghorror.com

What's Wrong With Setup.exe?


Some of the users where I work don’t know that you’re supposed to drag the .app file from the DMG into the Applications folder. This makes it a challenge to find where they’re running the software from and what version they’re using.


For me, it comes down to trust. As a user, I don’t like the setup.exe approach, as setup.exe typically will modify a fair few things in the system (put stuff in various, unknown locations in the filesystem, update registry, etc).

The advantage of the mac deployment approach is that everything for the app is included in the bundle. Drag and drop install doesn’t work on Windows, because there are too many other steps that need to be performed.


Ok it’s clear now. You’re a shill. Thanks for making room for a new blog in my daily read list I’m done coming here.


A lot of the problem with wizard installers is bloat. It’s perfectly possible to fit all the information you need on one screen. Have the installation path at the top, possibly the package options below and then the agreement at the bottom with a checkbox, and then an “Install” button (or combining the “I Agree” and “Install”).
The for the most part it’s a case of run the installer, check it over, click Install and it’s done.

I’ve never had to install anything on a Mac, but in theory I do prefer the drag method. It’s not really comparable to the Windows zip and deploy concept, as you can’t necessarily run the program from the zip (depends on your zip application).

If only by using a tighter paradigm Mac apps tend to be tighter, in that you know where it’s going to put things. It’s perfectly possible for Windows apps to touch nothing but the installation folder and the user/computer app settings (and maybe a small bit of the registry if necessary) but it seems easier to let programs run amock and put bits all over the place.


The extreme alternative is to do away with installers altogether. What we need is an OS that is literally just a web browser. Then you run software directly off the internet. Thin client, fat server.

No installation. No updating. No uninstalling. You select the bookmark for your favorite app and you’re using the latest version for that software everytime.

This makes everyone’s life easier. As a user you use software without the pains of managing an installation process more complex that your bookmarks. As a provider adding features and tracking bugs is easy as everyone is using the same version.

All this discussion about which installation process is the best becomes old hat.

Now who wants to develop WebOS?


I think there are pros and cons to each approach, so it’s difficult to conclusively claim that one is better than the other. Not to mention the fact that familiarity plays a big role in a user’s perceptions - someone who has been installing applications the Mac-way for a long time will usually find it more natural and intuitive.

I’m primarily a Windows user, but even I can recognize the fact that Ned’s example app is not the norm on OS X, as (several) other Mac users have already pointed out. Similarly, I’ve come across a number of terrible installers for Windows apps over the years, but that doesn’t prove that the entire approach is flawed. I think the software installation process on both platforms is generally satisfactory, but there are bad apples on both sides.

The thing that bothers me is not the initial installation process, but the inconsistent way in which software updates are handled by third-party apps on both Windows and OS X. There’s still a large fraction of applications that don’t include any kind of built-in updating mechanism. No wonder I come across so many people who continue to run old versions of software on their computers for months, or even years; they simply don’t know that there are updates out there, and who can blame them for it? And even out of the applications that do include the ability to update themselves automatically, very few manage to do so in a simple and elegant way.

I’ve actually been writing a series of posts about this. The first two parts are up:

I feel that both Microsoft and Apple need to work with ISVs to establish simple and consistent automatic update systems, similar to Microsoft Update in Windows and Software Update in OS X, but for third-party software on their respective platforms. End-users would naturally benefit from such a system, and at the same time, independent developers who don’t have the time and resources to build their own update mechanisms from scratch would also be able to take advantage of it.


I have been using Drag and Drop for 18 years, is this just one of the long list of features that Microsoft failed to implement ?


I don’t know if this has been mentioned yet, but the purpose of the Microsoft model of ‘setup.exe’ is twofold…

the lesser reason: place files all over your hard disk and automatically configure properties files.

the greater reason: applications are almost always registered with the operating system via the Registry. We all know you can’t just ‘move’ your apps to a new Windows installation – gotta reinstall.

The Mac world isn’t tied to the boat anchor that is the Registry. It was a good idea but a poor implementation. I’m not knocking MS; hindsight is 20/20. I’d like to see them lose the thing and move to a more sane model but I don’t know if they can do it.

So… as long as we have a registry, we’ll have Setup.exe. In a world where that doesn’t exist (like Unix, Linux, Mac, etc.), I wonder how quickly a Big Brother installer (like setup) will take hold.



Do you even use a Mac? Do you run any OS besides Windows?

If your going to keep comparing different OS behavior you should at least have some boxes setup for your own comparisons.


Mark has a good point that I neglected to mention:

Because of the Mac’s drag-and-drop install philosophy, there is no control panel or other UI which answers the question, “What the hell is installed on this thing anyway?” This leads to 3rd party solutions like AppZapper — what a mess!



Why not develop your application web based and get done with all the client apps setup and deployment bullshit. Also you can gain crossplatform and stream line the user experience with Ajax or Flash. Look at the IPhone Steve Jobs got a great IDEA there for developers using Web standards.

It just that easy, Why are we still bothering in 2007 to develop for operating systems when we have the biggest opereting system and great stuff of all the times the “Internet”.


"Mark has a good point that I neglected to mention:

Because of the Mac#8217;s drag-and-drop install philosophy, there is no control panel or other UI which answers the question, #8220;What the hell is installed on this thing anyway?#8221; This leads to 3rd party solutions like AppZapper #8212; what a mess!

a href="http://mark.santaniello.net/archives/346"http://mark.santaniello.net/archives/346/a"

You have the same problem for Windows programs that don’t put entries in the Add/Remove Programs area.

On the other hand, if you do “install” apps by putting them in the Applications folder, then you can open the Applications folder and voila, you know what apps are installed.


Not sure what kind of freak application this dude was downloading but it’s mind-numbingly simple to install apps on a mac.

Here’s how it goes.

  1. Click download link.
  2. Wait for window to pop up with, say, “Firefox.app” in it.

a) Double-click on it, yay it’s Firefox! or
b) Drag Firefox.app to area of sidebar that says “Applications”

But see, then the real benefits happen. What if you want to get rid of firefox someday (unlikely)? You just go to your applications folder and delete the file. Done, uninstalled.

Drag and drop also is probably the most intuitive gui concept ever, btw. Especially for novice users. Explaining drag and drop to your mom goes like this “You know how when you move something on your desk you pick it up and put it down somewhere else? Yea it’s exactly like that.”


Andrew - A webOS will only be as stable as the WORLD wide web is. Try getting that big project done for work when the ISP or other internet service is off-line for a day or the site that has the program your using gets a virus and is shut done for a couple of days to fix it.

The only program I have had that wasn’t at all easy to uninstall was Norton Antivirus. I had to search all over my Mac to find all of the related files left after using Norton’s uninstall.


The ZipInstaller utility installs and uninstalls applications and utilities that do not provide an internal installation program. It automatically extracts all files from the Zip file, copies them to the destination folder you select, creates shortcuts in the start menu and in your desktop, and adds an uninstall module to allow you to automatically remove the software in the future.



“Mark has a good point that I neglected to mention:”

Did you even read the 100 previous responses on your own blog with good points you neglected to mention? The lack of a central uninstaller on the Mac was mentioned several times as a disadvantage.

This article and by extension the quality of responses could have been greatly improved if Ned’s overly complex description of a Mac install was not included.

The proper way to implement the distribution of a program is an interesting topic and hopefully will be revisited at some point.


As many have mentioned, this is about the worse case installation scenario for installing apps on Mac OS X. The developer simply isn’t doing his or her job.

  • You don’t need to zip the disk image since they can be compressed at creation time.
  • You can have the disk image copy the app to the desktop for you when mounted or even show a license agreement.
  • You can put an alias to the Applications folder inside the disk image with instructions or a graphic to drag the app into the folder
  • Dragging and dropping an app into your Applications folder is a very intuitive method for installing applications. In fact, If a user didn’t know anything about installers on Windows, dragging an app to your applications folder seems like a natural part of keeping your system organized.

Of course, if you’re a Windows user who’s trained to immediately double click on the app since you think it’s an installer instead of the actual application, then yes, you may end up running it from the disk image. Of course, if the app is written correctly, it will still work, even when run from the disk image. However, you won’t be able to unmount the disk image until you quit the app. This can be confusing.

Jeff Atwood wrote: “Never mind that drag and drop itself is an utterly broken and user hostile GUI convention.”

On Windows? Yes, I would agree. But drag and drop is a first class citizen on Mac OS. Windows apps don’t really take advantage of drag and drop because there is little built in support for it in the OS and included applications.

On the Mac, I can click and hold on an image in Safari and drag it on Photoshop in the Dock. Photoshop will launch if necessary and load the image. I don’t need to right click on the image and save it to the desktop, launch Photoshop, select Open from the file dialog, etc.

I can click and hold the document icon in the title of a Excel spreadsheet window and drag it onto Mail to automatically create a new email message with the excel file as an attachment. I can do the same with files from the the desktop or Finder. Again, no open dialogs and Mail will be launched automatically if it’s not already running.

I can even select and click hold text to drag it to a new location in the current document or any other open document. No need to copy / paste. I can also drag the text to the desktop or a folder to save it as a text clipping or drag it on mail to include it in a new message.

Also, if you drag a file from one Finder window onto the border of another obscured or partially off screen Finder window, it will come to front and position itself so it’s completely on screen. When you drop the file, the window will return to it’s original location.

You can even drag a file into an open file dialog and it will automatically navigate to the parent directory of the dropped file. I discovered this when I realized the file I wanted to open was already visible in a Finder window after selecting Open from the menu. This just seemed like the natural thing to do - and it worked.

Of course, if you’re coming from Windows, it’s likely you wouldn’t even try to do any of these things since drag and drop really isn’t supported very well.


You can also upgrade such a Mac application by dragging the newer version into the apps folder, and clicking “Replace” in the confirmation dialogue.

(Although some apps now offer to check for updates and upgrade themselves.)


"“What happens if the C drive gets full and you want to move some of your large apps to the D drive? Answer: you get to reinstall them all again.”

Why would you do that? […] Why go through all of the trouble to move everything when it seemed to be working just fine where it was?"

Because usually what is growing are your documents (photos, movies, etc), not your applications. And, generally speaking, it’s hard to move photo/movie/music libraries to different drives (and you generally want them all in one location, so “splitting up” isn’t an option there either). Granted, you just bite the bullet and do that when it’s even HARDER to move applications, but that’s not exactly a good thing.


I think that the only problem here is that many Mac developers (like all programmers) have a nasty habit of ignoring the front door to their app in favor of focusing on the fun and interesting bits. Also, what we think is tricky may in fact not be, and vice versa.

Mac users often learn this copying process, and like the Windows user who learns to click Next 15 times, do it without thinking the next time they’re faced with it. (Or, as some above me pointed out, they run it out of the dmg, or copy it to the doc or the desktop, or whatever. It still works.) As one such Mac user, programs that have “installers” actually throw me off sometimes, since I expect to just copy the file. (I also run things out of the dmg if I’m not sure that it will suit my needs. I expect that to work.)

I’ve seen a few programs where the app detects where it’s being run from, and will prompt to install itself (that is, copy itself to /Applications and relaunch) if run from some improper location. Others put a background image in the dmg file with an arrow pointing from the app to an alias pointing at /Applications, and the words “click and drag”. Many mac developers can make some small changes like this to their software to make it much more user-friendly, but I’m not convinced that the OS is to blame here. The installers that do require a EULA are usually easier on a Mac, too–instead of two checkboxes, there are “yes” and “no” buttons.

There is actually a lot of “trickiness” hidden in the “Copy to /Applications” install process. Any .app file is actually a folder that generally contains everything the program needs. You don’t have setup.exe on the mac because, in most cases, you don’t need it. Uninstalling a program is usually easy: just delete the program, and it takes all its baggage with it. (Of course, there are exceptions.)

Furthermore, it uses pictures. Our brain developed for eons to parse and remember visual shapes, and only recently to handle language, and even more recently to handle written text. You learned to read as a child; you learned pictures as a lizard. A picture that gets dragged onto another picture is a lot easier for new users than several pages of text that has to be parsed, with decisions made along the way. Even the button for “no questions install” is a bit jarring and requires a complex mental process to select.

I often think, what would make the Start menu 10* better? Being able to drag a program onto it to install, and then just delete that program if you don’t want it any more. That’s what Mac users have with the Applications folder. I’ve heard power users like you and Ned complain about this in the past, but I’ve never heard a complaint from the non-power mac users that I know. (In fact, my wife commented recently while watching me install something in Parallels about how much easier it is to install stuff on the Mac, since there aren’t any annoying config screens to go through–you just “put the program where you want it to live”.)

From a user’s point of view, this is exactly the same process that they go through to modify the contents of their Dock or Desktop. The paradigm of “drag it where you want it” is consistent throughout the UI and generally not as complex as it appears. The user doesn’t really need to learn all that much about files and folders–they just need to learn that “Applications” is where the programs go (or not, if they want them somewhere else.)