a companion discussion area for blog.codinghorror.com

What's Wrong With Setup.exe?


“what happens if I run the app from the current location (running it from the DMG) without dragging it to the applications folder?”

In general, it works just fine (if it doesn’t, it’s a broken app). It also works fine if you want to drag it to another drive, put it in a folder called TarquinFinTinLinBinWhinBusStopFtangFtangOleBiscuitBarrel, or launch it from a network drive.

Now, what happens if you copy the average Windows application ANYWHERE other than C:\Program Files after it’s installed? Answer: it breaks. Horribly. 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. Good luck finding all those CDs and serial numbers!

Deleting the app, as others have noted, consists of dragging the application to the trash. No “uninstall” crapola. No reboots to (hopefully) clean up the fifty little files that the application has scribbled in random places on your drive, either.

In fact, you don’t usually have to reboot for anything except upgrades that alter the OS itself.

Stuffit hasn’t been needed to open zip files for a LONG time, by the way. It’s essentially useless on a modern Mac, unless you’re downloading and running old, old, old software.

I’m not sure why Batchelder has a hard time “finding the Applications folder”, by the way. It’s right there in the Finder window when you open it up. You just click on it. Need I mention that doing that does NOT produce a dire warning about how you’re not worthy to even see the contents of that folder, lest you destroy your computer?


THE MAC IS BETTER HERE :slight_smile:

I longed for the days when we’d stop having Installers on Windows do unspecified things on our desktop and mess up shared components.

On the new Mac OS, everything is quite simple. Just drag the app to a folder on your hard drive and it works!! The .dmg is just a disk image, like a CD, so you can agree to a license agreement to access it for example. Many .dmg installations provide an ALIAS to the applications folder.

The MAC is saying, effectively: just copy the program to your hard drive and you’re done! THIS IS NOT INSTALLATION.

Installation is what Windows did up until XP. You have to go around looking through registry settings and files and make sure you don’t kill any of the other installed applications and specify where all the directories are and select a million things and…

In DOS you could just copy stuff.
In Vista you are able to do so again (with some apps).

Really, installers are just sneaky little bastards. The mac doesn’t have them for most apps :slight_smile:


Think of it this way:
The installer is a program beacuse

  • it has to take a lot of steps
  • some of the steps are privileged that a human cannot do them properly

By contrast, the mac has one step (no installer needed) :
copy the program to your hard drive

and your’e done! :slight_smile:


me: “PS. What I’m saying is: installation is a paradigm that exists on windows mainly. On unix systems, and by extension on OS X, programs are run. And stored.”

I have two words for you: make install

Have you ever ran a different unix type OS? The standard seems to be that any major applications writes a configuration file somewhere in /etc and installs to /opt or /usr/local .

Go ahead, go compile a standard program and see exactly where it tries to install by default.


I have to disagree to a certain extent. If I’m installing an OS, then yes, I’d like it to be as automated as possible – I normally don’t need to know (or care) about where Windows places its files. On other software though, I do want to know more. I’m really tired of finding that software I’ve installed has placed various items in far-flung locations in directories all over my hard disk (not to mention the abomination that is the Windows registry) so that trying to uninstall it (the uninstaller always misses things) is an exercise in futility.


Okay, what’s with the anti-Mac stuff? I know you are familiar with the Windows world and apparently not much else, but the last few posts have been really strange. You’ve taken the Mac to task because the “Zoom” button doesn’t zoom. Now, you take the Mac to task because it doesn’t “use Setup.exe”.

These are CULTURAL differences, not one is better than the other. There is actually an equivalent of a Macintosh “Setup.exe”. Download Safari 3.0 Beta for the Mac and install that. However, most developers simply don’t want to bother with writing an installer because it isn’t necessary.

In most modern applications, there are dozens of files that are needed for supporting that application. In the Windows world, this would include icons, help files, DLLs, registry entries, and shortcuts on the Start Menu. These all have to be installed, registered with the OS, and placed all over the disk. This cannot be done without an installer.

The Mac, on the other hand, bundles all of the necessary support files in the Application Bundle. The Application Bundle is just a folder that contains all of the various support files. Since all the files are in a single location, there is nothing to “install”. Copy the bundle to your /Application folder, and it’s installed. Or, copy it elsewhere. Each user has their user personal Application folder, so if I can’t get system administration privileges to install the application in /Application, I can install it in my personal Application folder.

I can’t think of a single Windows application I can install without Administration privileges because almost all have to add entries to the Registry or need to add DLLs and register those. (Yes, I know that programs like “Ant” and “JBoss” can be “installed”, but these aren’t strictly Windows applications).

So, most developers simply don’t bother with writing and maintaining an installer because they don’t have to. In this case, I prefer the Mac way because of simplicity, but there are certain advantages to the Windows world:

1). Uninstalling a Mac application by deleting it isn’t 100% clean because the preference file that lives in the /Libraries/Preferences folder isn’t deleted. Most of the time, this is less than 100K of disk space, but that’s 100K of disk space that is being wasted.

2). Since installing and uninstalling 90% Mac application involves adding it or removing it from the /Application folder. There is no standard registry of uninstallers. Most Windows applications come with both installers and uninstallers, and uninstalling an application involves going to the Add/Remove Programs Control Panel. The few Mac applications that come with installers also come with uninstallers, but unfortunately, there is no standard way of storing the “uninstaller” in a centralized location.

For example, after 2 years of disuse, I finally decided to uninstall Norton Utilities on my Mac. To uninstall, all I needed was the Norton Utilities CD which I hadn’t seen in two years. Uninstalling Norton Utilities involved a trip to their webpage and picking out the various pieces from my OS. Not a fun task.


I second all the comments on the Linux model of the package manager and my only experience with Linux (outside of college) is running Ubuntu in a VM. The package manager makes installing apps ridiculously easy. There are a few programs out there that have tried to replicate this functionality on Windows, but there just isn’t a good, central repository for Windows applications. (that I know of)


I think not having Stuffit, and running Safari with the default settings would actually save a step. This is a common experience, but it can vary widely.

The best apps are download and automatically extract to just a single binary on the desktop, ready to be dragged into the Applications folder. Many others have an installer program. Some installers are even smart enough to provide the option to install into ~/Applications instead of the root Apps folder (that’s the user’s Application folder for you Windonauts: lets me just copy my entire home folder to another drive or computer to take my apps with me).

But then some printer installers assembled for the Mac by half-asleep Windows engineers at Epson are remarkably craptacular (good printers, though). The installer.pkg is on a disk image, which is in a folder (new, cryptic name, so you’ll have to hunt for it), which is compressed in a self-extracting archive (won’t run on Intel Macs and can’t be extracted by Stuffit), which is encoded in binhex format (brings back memories of the early 1990s). It’s much more complicated than it sounds, and you get to click “continue” and “agree” a few times. Unbelievable, but true.


Oh, and if you can run the self-extracting archive, it just says “installation successful”, and when your printer doesn’t work you have to figure out that a new folder with a puzzling name contains the next few steps.


I completely agree with all of the comments above about Linux, especially the Debian/Ubuntu package manager. It provides multiple ways of installing software (Synaptic GUI or apt-get CLI), and works so incredibly smoothly.

The biggest advantage of a centralized repository is you know that you’ll be getting stable, virus-free software. Instead of doing a Google search for software, and ending up with some 5-day shareware trial that also comes with unwanted payloads, a Synaptic or apt-cache search will pick out the right software that will just work.

As for the installation process, its unbelievably painless. I’ve done many installations of Apache and PHP on Windows, and its a good 10-minute dance to get them working nicely together. On Linux, its just “apt-get install apache2 php5” and a few seconds later everything is running.

Finally, upgrading is insanely easy. To install any/all upgrades for all of your installed programs, its just “apt-get upgrade” and it takes care of the rest.


The basic philosophical difference is rooted in the days of DOS and Macintosh. The actual number of steps is irrelevant—the difference is that the Windows install is opaque, while the typical Mac install is transparent.

  • Windows installation is built for office managers who believe that configuring computers is a job for an IT guy, or maybe an installer program (better let the IT guy run the installer anyway).

  • Mac installation is built for graphic designers who don’t want to see IT (and IT doesn’t want to see them).


two anti-mac / mac-FUD posts in just a matter of a couple of days?
way to go Jeff! /sarcasm


This is how I install Mac Software:

  1. “Open” it in Firefox
    (2) Stuffit automatically mounts the DMG-File) Zipped DMG-Files aren’t that usual.
  2. I drag that App to my Applications Folder


Personally, I think most of what is normally seen in Windows with installers needs to be eliminated anyway. Most small applications shouldn’t need that level of complexity and could be simple enough to just move to the “Program Files” folder and execute (or have a basic “point me to the installation location” and “do you want shortcuts on the: (start menu) (desktop) (quick launch bar)” and then just copy the files, create the shortcuts, and clean up).

Most of the issues with installs on Windows have to do with a combination of factors, though: Windows keeping backwards compatibility (more or less) for over a decade, most application developers (including Microsoft and Apple) ignoring the published developer guidelines (i.e. Wizards should no longer have pages that have no options but next/cancel, applications should store user data in the documents folder), and applications trying to hide code and data all over the system (the registry, for example, or using the system-wide shared dll folder when the dll will likely only be shared by that developer’s software, or applications that expect that user’s software to be installed).

Furthermore, on any operating system we all tend to fall into the trap of blaming the system for the faults of applications. Nothing about either system (that I’m aware of) prevents developers from providing clean installation routines that do exactly what most of us want from them (personally, I don’t like the idea of the browser installing anything or even starting an installation program, but that seems to just be me lately).


Could not possibly agree more. A single…
[ I agree with the EULA, please Install this Application ]
… button would make the most sense.

Otherwise, all installation options should be available in the options / preferences menu of any application. If you want it to appear on the desktop, check options desktop. Start menu, options start menu. Then, even if you lost or deleted the shortcuts, you could get them back. Possibly even an advanced “move me to a different folder” option. Even adding additional packages should be accessible from the program options. I see no reason for these things to specifically reside in a separate application besides initial installation.

I especially have to agree with those who commented above about packaged installations on linux…

Add / Remove
Search for what you’re looking for by name / description (with community ratings!)
Check The Box
(find more if needed)
Apply when finished.

To top that off, the uninstall… Un-Check and Apply. Brilliant!!

Showing a couple of my less savvy friends the simplicity of it tends to be a treat.

Even the gasp command line version (apt-get/aptitude install) is simpler than windows installs. Especially with Tab auto-completion.


I don’t know the Mac install procedures, sounds a bit old fashioned. But on earth I can’t understand why anybody would use windows install procedures as a good example? You can really feel how the rookie developers are doing the installations in so much of the popular software out there.
So yes, maybe some people will find it tedious to install a piece of software. But learning how to install applications can’t be much more difficult then understanding applications itself.

I think the problem is way more a disaster in terms of un-installation.

My operating system should be exactly the same before I install some application as after I un-install it.


when you install from a .pkg file on a Mac, how do you uninstall if you’ve since deleted the .pkg file? I’ve got a bunch of libs on my system I don’t need anymore and no clear way to uninstall them.


Scott - Both the image and text dragging work in Windows.

While I think drag and drop is painful, even on a Mac, I would be interested to hear why Jeff thinks it’s so inherently flawed and the resulting discussion as to how whether they are fundamental flaws or whether they can be fixed.


You can compare the number of steps for installing things on Windows compared to Apple (and even Linux if you want to) but that isn’t the most important thing. With and the way the drag and drop installing works on an Apple you don’t feel so disconnected with the process.

With installing from an installer the user does not know what is happening to his computer. That installer “hypothetically” can be doing anything. Obviously there are limitations on what an installer can do, and you have to put in your username and password, but who thinks twice about that? And with the Apple installer you can see what files are going to be put where. But once again most of the time you don’t do that. The reason why I like the Apple way of drag and drop installing to the application folder, and the reason why I think it is MUCH better, is that you know exactly what is happening.

  1. I want an application. So I download it.
  2. I want to be able to use it. Put it with my other applications.
  3. I want to run it, double click it.

Questions like, “Where is it?” and “How do I get rid of it?” are easily answered. It feels like you are in control. And so much of computers these days makes people feel like they are out of control. And that feeling is alienating and confusing and not a fun one.

This way just feels right.


All those steps involved with programs like Winamp are a chore, but I personally find it acceptable. I’m quite anal about how everything looks on my computer, which icons are where, which order they’re in, etc. I get very pissed when some cheesy program puts an icon on my desktop or quick launch bar that I didn’t want there. I have everything like that arranged already and I’d much rather have the software I’m installing conform to that as opposed to make me clean up behind it because it just assumed that’s what I wanted. Winamp also comes with a lot of stuff I don’t want, like video support, and it also will automatically associate video files with it.

In many cases it’s kind of a damned if you do/don’t thing from the developer’s perspective – the user is installing a media player. He or she may WANT all audio/video files to be associated with Winamp and get quite confused if they aren’t, where as another user is installing Winamp as his second-best media player and would prefer his associations remain with foobar.

So I don’t think lots of options are a bad thing; more like a necessary evil. If it means it will take extra time to install then so be it. It’s not like I’ll be installing it -that- often. Plus, how much will it slow me down? Probably thirty seconds to a minute at the most.