I’ll tell you what’s wrong with Setup.exe

Jeff Atwood asks, What's wrong with Setup.exe? Let me tell you.

If I give you a link to a setup.exe and tell you to run it to install my app, what are you getting? What's being installed, and where is it going?

You basically have no idea. You're running this executable and crossing your fingers. Is it going to properly version-check files it's updating? Is it putting new DLLs in my system directory or into its own directory?

DLL Hell was largely created by setup programs.

On the Mac, a well-designed application is self-contained. When you drag the app into your Applications folder, that's all you have to do to install it - any files it needs, such as help files, are contained within the application itself, since on the Mac, an application is actually a folder. No tricky packaging needed - that thing you're dragging into your Applications folder is actually a folder itself, that contains everything the app needs.

A very useful advantage of the Mac method is when you're not sure about the program you're downloading. When the *.dmg file is mounted and opens, you can run the application immediately right from the window that opens. You don't need to install it at all to try it out. Don't like it? Eject the dmg, and drop it in the trash. Nothing to uninstall.

One mistake we sometimes make when designing this stuff is underestimating users. Jeff thinks that users won't be able to handle dragging an application into the Applications folder, but personally I find that concept simpler, and more consistent with the rest of the experience of using the computer, than running an installer, answering its questions and then trying to figure out what it did.

Tried uninstalling a Windows app lately? It takes about 30 seconds for the Add/Remove Programs list to populate, and then more time while the uninstaller "gathers required information" and "configures" your application... it's a multi-step process that also sometimes ends up asking the users questions they have no idea how to answer, like whether to leave shared components that "might" be used by other applications.

On the Mac, if you want to delete a document, you drop it in the trash. Want to delete an application? Drop it in the trash. Makes sense to me. (Windows even senses that maybe you're trying to do this when you delete an icon from the desktop, and warns you that you're not really getting rid of the application, and that you need to go uninstall it).