July 18, 2007
Ned Batchelder shares a complaint about the Mac application installation process:
Here's what I did to install the application Foo [on the Mac]:
- Downloaded FooDownload.dmg.zip to the desktop.
- StuffIt Expander launched automatically, and gave me a FooDownload.dmg Folder on the desktop.
- At this point, nothing is happening, so I opened the folder, inside was a FooDownload.dmg icon.
- I opened that, a license agreement appears.
- I agreed to that, and a window appears with an application icon, and instructions to "Drag this icon to your Applications folder".
- I have to find the Applications folder, and drop the icon into it.
At this point, the application is installed. To clean up, I had to:
- Close the Applications folder.
- Close the window with the dragging instructions.
- Close the FooDownload.dmg Folder window.
- Get rid of the three (!) things on the desktop: The dmg, the FooDownload.dmg Folder, and the FooDownload.dmg.zip file.
To me, that seems like a lot of manual steps. In the Windows world, you'll sometimes find shareware where the author gives two options: an installer, or a zip file where you can do everything yourself. The Mac installation process is like the Windows do-it-all-yourself case.
Again, I'm not trying to slam the Mac. I genuinely do not understand why on a platform that makes things really simple, where the mantra is that stuff "just works", ordinary users are expected to do all these manual steps.
I've often wondered the same thing-- why does the Mac require the user to jump through a bunch of manual hoops to install an application? Why not use a traditional installer (a.k.a. setup.exe) that automates this manual work for you?
To be fair, Windows applications aren't always delivered with installers, either. One of the apps I use is Kenny Kerr's excellent Window Clippings. It's delivered as a single executable in a compressed ZIP file. It's a pleasingly simple arrangement, but it's also more work me, the user. Consider how I "install" Windows Clippings:
I have to:
- Extract the executable from the ZIP file.
- Create a WindowsClippings folder in the C:\Program Files folder
- Move the WindowsClippings.exe file to the new folder I just created
- Create a start menu shortcut for WindowsClippings
That's a lot of tedious, error-prone steps I have to perform before I can run the application. And no two users will have Windows Clippings installed the same way. Some may opt to run it from their desktop, or a temporary folder, or some other inappropriate location. Is this really what we want to subject our users to?
Even as a power user, I find this level of control not only unnecessary but onerous. That's why it's so strange to me that the "normal" Mac install parallels the sophisticated "power user" Windows install. A typical user doesn't want this level of control, and they certainly don't want to learn about disks and folders. They just want the application to work. Wouldn't a big giant button that says "Install Me" be a better experience for the user?
Traditional Windows installers may be easier than a Mac-style manual install, but they aren't exactly model citizens either. Most installers ask users dozens of questions across multiple wizard pages, along with the inevitable end user license agreement you get strongarmed into accepting.
The WinAmp installer is fairly typical. It's five pages long, and asks me to decide the following:
- Do you accept our EULA?
- What program options do I want installed? Visualization? Extra Audio Output? User Interface Extensions?
- What icons do I want installed? Start menu? Desktop? Quicklaunch? System Tray?
- Do I want to associate WinAmp with audio files? With CDs? With playlists?
- Where do I want WinAmp installed; at what path?
- Do I want shared settings for all users or individual settings?
- What are my internet connection settings? Do I have a proxy? Do I want to download needed codecs?
That's a whole lot of thinking necessary to install a tiny little music player. And that's the minimal install-- the lite version that the WinAmp site does its best to hide from me!
Perhaps a better approach is the "No-Questions-Asked" installation featured in JGSoft applications.
If only more applications-- Mac or Windows-- made it this easy on the user. That's about as close as we can get today to the big giant "Install Me" button I think most users are looking for.
Posted by Jeff Atwood
As others have pointed out over on Ned's site, the case he gives is a fairly pathological Mac app. For most of the apps I download:
(a) the download is a direct download of a .dmg file, not of a .zip file containing it (or, as in this example, a .zip file containing a folder containing the .dmg file)
(b) my browser is set to automatically mount the .dmg file once it has downloaded.
So installation is two steps:
(1) switch to the Finder
(2) drag the application to the applications folder
(with an additional third step of entering an admin userid/password if the user is not an administrator).
And cleanup is one step: click the "unmount" ("eject") button for the application's disk image. Two if you count deleting the .dmg file.
But the real problem, of course, is the eternal tension between security and convenience.
Undeniably, the simplest possible interface for installing a downloadable app would be a web page with a button saying "Download and install ThisApp" which--when clicked--would handle the entire download and install process. You click on it, there's a slight delay, and the application is sitting in your applications folder (Mac) or Start Menu (Windows), ready to go.
Of course, if a known, responsible developer were capable of doing this, then a somewhat less reputable individual would be just as easily able to put the download-and-install code behind a button that said "CLICK HERE FOR HOT PIXXXX!!!!" and have it install any and all sorts of stuff you really never wanted on your computer.
Jeff, still the average setup.exe seems to me far superior to the "manual" approach. At least you can just keep pressing "next" 5 times in a row.
@Dirty Davey: it seems to me that a click-to-install approach wuold be doable provided that the user enters his credentials. Two steps is the right balance between security and convenience: I think click-once technology does something similar, but I haven't played much myself.
I have a more cynical view. The installer is the last thing that any software engineer ever wants to work on. It's the last thing that the designer wants to specify. It suffers from a pathological testing mentality: 99% of the time the tester wants to test some feature in the latest drop, and needs to get through the installer to get to it, so the tester gets in the habit of following only a single use case unquestioningly.
There's no glory in creating the world's best installer. In my experience, installer work is assigned to the most junior person in each group (development, spec/design, QA) and once it is minimally functional it is never refactored.
And if you thing installers are bad, check out uninstallers.
I have to say, this is on the extreme examples.
For example, I just installed Firefox 2.0.
1) Download to my download folder using Safari
2) Open download and drag and drop to my Applications folder
I prefer the Linux way.. I click the little checkbox next to the package I want installed. Then I hit Apply.
Of course the Linux way is more burdensome if the application isn't packaged by the distro.
What's also nice is that uninstalling software is just as easy as installing it.
Strangely enough, Windows Mobile does exactly what you want. You download a .CAB file and run it. It automatically installs, doesn't ask a single question, doesn't make you accept license agreements, nothing.
As said above, your example of a Mac install is fatally (and, presumably, intentionally) flawed. It's usually a three-step process to install the app: click the download, click the "show download" once it's done downloading, drag application to Applications folder (which is often linked in the Finder window; otherwise click the little "lozenge" to show your side bar and drag it there ... so I suppose that would be four steps).
The Problem With Installers: it's not installing the application. It's the configuration and setup that the installer does for you.
For instance, if you opt out of Visualization in the WinAmp installer, can you ever (after having used the application for a few seconds to figure out what the jargon means) opt back in? Does that involve re-running the Installer, or is it buried in the menus somewhere?
A Mac app offering optional extensions (and not using an installer; remember that Mac apps *can* use installers, and Apple even provides one free of charge) would usually guide the user through installing those extensions inside the application, which means the user can always go back to install them later if they decide not to at first, and more often than not they also know how to remove the options if they turn out to be more trouble than they are worth.
In effect, most Mac installs *are* the "one button" "accept all defaults" installs. If you want to deviate from the standard "install" you are expected to let your preferences be known in the app itself.
It's a different way of doing things, yes. Windows is really hyper-big on "wizards", and installation is just one example. In my opinion, though, most "wizards" are too stupid to do things right, and/or rely on the user to make decisions the user is incapable of making. Installers are no exception to that.
I believe that Mac mainly makes you go through "manual hoops" to have some sort of standard.
With "Setup.Exe" you will notice that there are thousands of different installer programs. Theres the standard Microsoft one, then each company does it's own little thing. Most games come with a flashy one with all kinds of colors and buttons.
On Mac, it's always the same process, and it always "looks" the same.
I believe that Mac mainly makes you go through "manual hoops" to have some sort of standard.
Yet it's NOT standard-- what happens if I run the app from the current location (running it from the DMG) without dragging it to the applications folder? Or what if they drag it to the desktop and run the app from there?
Why make the user run through this meaningless, repetitive step if the installer could do it for them? Why not make it standard and reduce work for the user? I don't understand why Mac users accept this with a reserved shrug of their shoulders and say "that's just the way it is", or worse, defend it as some sacred act of drag and drop busywork that somehow blesses the application.
Never mind that drag and drop itself is an utterly broken and user hostile GUI convention.
Yet it's NOT standard-- what happens if I run the app from the current location (running it from the DMG) without dragging it to the applications folder? Or what if they drag it to the desktop and run the app from there?
Well, I'd say that there are a standard set of choices. The simplicity of the application design (a "bundle" with a .app extension) allows you to execute it from anywhere. I often download .dmg files to my Download folder and run them from there to try them out. If I don't like them, I dismount and delete the .dmg. That's much more difficult in Windows given the odds that the app may not have an uninstaller or the uninstaller won't really remove everything the installer added (ever look at the crap in your registry, or in System32?).
But I agree that the typical Mac installation process, while fairly consistent, does not live up to the simplicity and ease-of-use that Mac on whole is known for.
"Never mind that drag and drop itself is an utterly broken and user hostile GUI convention."
I would like further elaboration on what you mean by that. (I can't even disagree because I'm not sure what exactly you mean by it :)
It's possible to package your application as an MSI that can be installed and uninstalled very simply. Problem is, most applications have requirements that either go beyond the default UI that an MSI allows (afaik), or the MSI 'code' is just too much of a mess to figure out. Even Paint.NET has requirements related to updating and internationalization that made writing my own setup wizard in C# a better idea. Plus, that way it's dead obvious and simple to customize and fine tune everything about the installer.
I'm glad that Office 2007 has a much simplified installation experience. You insert the CD, click "run", and then it eventually pops up with a big "INSTALL NOW" button. Then it just goes.
In Paint.NET (not to toot my own horn here -- okay maybe I am a little!) you only have to click Next twice to install it: the first page defaults to a radio button for "Quick" (aka "Default") installation, the second is for a simple EULA (MIT License), then it just ... goes. I did this because I *personally* was getting tired of clicking through 3 pages of options over 10 times a day. And I thought, "Half the people who install this probably don't understand most of the options. And, they probably don't even care about them. Let's go ahead and optimize for the most common scenario ..."
However, that still can't get rid of the wonderful prelude to installing that IE7 puts in front of you: click to the download page, click the yellow infobar, reload the page, click the download link again, click Open, wait 30 seconds, click OK on the warning dialog from IE, click OK on the warning dialog from Windows ("this came from the Internet zone, it might harm your cat!"), then click OK on the UAC prompt ... and if you downloaded it in a ZIP file you've got another double-click in there.
I really dislike setup.exe-type installations. I hate not knowing what the installer is doing, for one. Is it copying a bunch of files all over the place? Where is it placing it? I'm gonna have to hunt for it later, and it's placing shortcuts all over the map. Sometimes I can't say 'no' to those. I've little knowledge (and honestly I don't really care to spend the energy to investigate for every single app) about the automated process.
In the Windows world you have executables and DLLs and config files strewn about every which way, however the developer sees fit... I won't even bring up the registry links, and other hidden files.
On the Mac side, a .app is a self-contained entity. So, Jeff, if you run an .app from within the mounted .dmg, it will work. Run it on the desktop? It will run. Preference files are kept in a standard location. By convention applications are kept in ~/Applications. Makes sense, no?
I like being in control of my system and knowing that *I* dragged that .app to my Apps folder. Don't do it for me, and don't make me click 'Next' 5 times, what a painful process.
"Yet it's NOT standard-- what happens if I run the app from the current location (running it from the DMG) without dragging it to the applications folder? Or what if they drag it to the desktop and run the app from there?"
I hardly ever drag applications into the Applications folder. You can run it out of the dmg if you want to try it before committing more disk. I typically have a totally different directory to run apps I've downloaded out of.
This directory is available on every finder window so I typically just drag the icon a little to the left and I'm done. Getting wizards to allow me to change the install path is sometimes possible, but rarely easy enough that I actually bother putting things where I want them.
What was the point you were making here?
And can you be more specific about drag and drop being utterly broken? It seems to be useful enough for me in the applications where I use it and have implemented it.
I have been using a macbook for about a year now and I have to admit that at first installing applications slightly confused me. Now that I know your supposed to simply drag-n-drop I prefer the Mac's approach. It allows the user to easily install the application where ever they want as well as give it a test run before dropping it in the application's folder (if thats where they intend to install it).
Also, in the time it takes a user to click through license agreements and install options in a windows approach, a mac user may have already dragged and dropped their app in their intended folder. This is why I don't find apple's method entirely meaningless or repetitive.
I have to admit my opinion is slightly biased, I come from a gentoo linux background, which means I love to tweak and customize my installations until my fingers fall off.
For some strange reason I find installaion on OS X easier and 'cleaner' than on windows. Maybe because most setup programs ask too many questions and require to press too much "Next".
Draging app to the Applications folder on Mac seems like blessing then (especially if .dmg provides handy shortcut "drag here").
As for drag-and-drop: what were you smoking?
This is ridiculous...none of these are apples to apples comparisons. You can find good and bad installation experiences for any OS...
I love Portage (on Gentoo), its really well thought out. But have you tried installing KDE on that thing..?
On Windows, how many of us have run into apps that try to install into C:\Windows(\system32)? Complaining about 10 steps where closing every folder is a step? Try getting rid of Symantec's internet security suite a few years back...that thing was effectively a rootkit (and might still be).
Fine, the Mac installation process isn't perfect, and has a lot of folder opening and closing. But if you're whining about opening and closing folders, I'd hate to see the state of your Documents folder. And the Mac model of the application-folder is generally better than the behavior of most Windows apps.
1) Most applications on Mac are DMG files that mount automatically and bring up the application folder.
2) Dragging the application wherever you like is a convenience - it bypasses the whole concept of file paths and gives the user something visually to work with. They may just drag it to a the desktop and then later drag into Applications if they like. Can't do that on Windows (at least not until there's more .NET penetration).
You're articles are almost always insightful and packed with understanding, so I don't understand the recent Mac OS hostility backed with fairly dubious facts of late.
Also, the rise of Windows Installer based MSI files and OneClick means that Setup.exe's days are numbered anyway.
I agree about the linux install: any application targeted at beginners is generally included in the distro... and installing a program is as easy is checking the box next to it and clicking 'apply'
Some of this might be redundant, but it took a while to write. And it's long. So sue me.
Unless you're using an application that requires you to put support files in the /library/ folder or elsewhere besides the user's library, you can use the application from anywhere. You can, in fact, run Firefox from the setup disk if you want to. The application will stick the support files it needs in my user library. Some of the additional components may not work, because they need to write to disk, and that's not possible with a read-only disk.
The Applications folder is another misnomer. Unless there are specific application-specific dependencies, you can run any program wherever you want. They merely suggest the Applications folder because...you know...that's where everything else is.
I should also point out you're not installing Firefox when you drag that folder over — you're installing the Firefox.app package. It's just a special kind of folder that runs when you click it. On Windows systems, there's an *.exe file that runs the program with a zillion support files nobody really knows where goes.
As far as the complicated setup procedure, in the middle of this page you'll see what the typical user sees in the Finder, the place to get files (third image down):
Now imagine, if you will, the next-to-the-last image being there, with a removable disk there. The default settings will have the user drag the application file over to the sidebar to drag-and-drop onto the Applications folder, then can eject the disk using the eject button you seen in that next-to-the-last image.
Here's the problem with Windows installers: they all look the same. They are so uniform in appearance, actually, that you could create an Internet Explorer webpage that closely resembles the installer.
Or, you could make an installer that doesn't install what it says it does where it says it does. I'm sure that's never happened before, an installer putting rogue programs willy-nilly all over everywhere.
Because its difficult to tell what goes where, I'm a little scared every time I install some new program. Last week I tried out GreatNews, just to see what the buzz was, and I have no idea what went where. I'm a typical Windows users, sadly, so I don't know where the latest program files and dll files go.
While it's nice to get that OKRecommended SetupFinish, but at least I know what I installed on my Mac.
"However, that still can't get rid of the wonderful prelude to installing that IE7 puts in front of you: click to the download page, click the yellow infobar, reload the page, click the download link again, click Open, wait 30 seconds, click OK on the warning dialog from IE, click OK on the warning dialog from Windows ("this came from the Internet zone, it might harm your cat!"), then click OK on the UAC prompt ... and if you downloaded it in a ZIP file you've got another double-click in there."
yes, unfortunately, Safari also adds this "security" rigamarole to the process. You'd think IE and Safari would both be intelligent enough to allow me to click something that says, "I hereby agree that downloading a disk image or archive containing an executable might irreparably damage my OS installation, destroy all my data, and set fire to my grandmother's house. I hereby absolve [Apple|Microsoft] of all culpability in the case of such an event."
But, no. Sadly, instead, we must all blindly and thoughtlessly click on "Okay" buttons, then ask ourselves, "what was that I just clicked on?"
"On the Mac side, a .app is a self-contained entity. So, Jeff, if you run an .app from within the mounted .dmg, it will work."
Well, that's not always true. Some apps decide they want to write things into their package folders (which is a no-no, but still), and when they get to the point where they want to do that you're in error-handling land. Will the app inform you of a fatal disk error? Will the app inform you that it can't run on a read-only disk image? Will it instead write to your home folder? Will it crash?
I've seen a few of these apps. Generally, they either give an error message or crash. Very annoying, though.
"I really dislike setup.exe-type installations. I hate not knowing what the installer is doing, for one. Is it copying a bunch of files all over the place? Where is it placing it? I'm gonna have to hunt for it later, and it's placing shortcuts all over the map. Sometimes I can't say 'no' to those."
To be fair, this isn't necessarily a fault of the setup process, but more a cultural fault. Anything the Setup.exe does, the application executable can also do! Yes: your application could see it hasn't run yet, and place an alias to itself in the Dock, on the desktop, in the user's home folder, and on every network mounted drive. Yes, your application can choose to defy convention and place its config files in the Applications folder, or your Documents folder (Microsoft, you Son of a B*tch, I'm looking at YOU!). It can change your desktop background to a high-resolution rendering of it's application icon.
There's two things stopping this on te Mac. First, many (but not all) of those actions would require an admin password. So, it's hard to get a user to agree to that during an install (not really hard, though), but really hard to get them to agree to type their admin password when running your app for the first time.
The main reason, though, is that there isn't the Culture of Installer which exists on Windows. It is expected that an installer will do all this evil system-clogging crap to you on Windows, either wholly without you being informed or because you missed unchecking that particular option. Which is why, frankly, no matter what kind of "default install" button an installer provides on Windows, I NEVER, EVER just click it. I've been bitten far too many times, installed far too many Monzai Buddies as a result of "default options" in the installer.
So, for me, it all comes down to developer culture. There are a lot of really good developers for Windows. Unfortunately, there are also a few assholes who make it necessary to go over the installer options with a fine-toothed comb.
I'll keep this short... Frankly, I don't trust installers to do the right thing.
Here's a secret: it doesn't have to be in the application folder. You can put it anywhere, including the desktop or your home folder, although that gets kind of messy. Since there's no registry entries or DLLs installed in different places, dragging the application to the trash is all you need to do to uninstall it. If it makes you feel better, you could use AppZapper.
One word (well I guess it's two symbols and a word)
Kudos on another good topic, Jeff. I quite enjoy your blog and appreciate the time you put into it!
Most of the apps I've installed on my iMac have been easy to install. Open the .dmg and do the "drag the icon into the Apps" move. Easy enough, I guess. But sometimes the stuff that gets dumped onto the desktop is an annoyance. I know what can get trashed, but if it were, say, my mother. Well, she might be very reluctant to move anything to the Trashcan and would end up having a desktop full of junk after a little while.
I guess I'd just like things to clean up automatically. I'm still pretty new to OS X and so there might be better way to do the install/cleanup than I'm doing.
I agree that windows installers are all over the place. Most are pretty good. Others are horrible and/or confusing.
If you're trying to streamline the user experience, focusing your energy on how applications are installed is kind of silly.
How much of your time using the computer is spent installing applications?
FYI: a good free regexp tool is The Regex Coach - http://weitz.de/regex-coach/
I'm not affiliated with the site at all, just an extremely happy user
I know this has been covered already, but that's a really badly-broken package for the Mac version. Apple has a set of guidelines for packaging app bundles as "Internet-enabled Disk Images" (.dmg files) to be distributed on the internet:
The short of it is, build your app as a normal app bundle (.app), and place it at the root of a disk image, alone. Make the image internet-enabled. When the image is opened (automatically, by safari, by default -- DMG files as far as I know can't contain autorun-equivalents) Finder mounts the image, extracts the contents to the folder the image was in, unmounts the image, and sends the image to the Trash. At that point the user can put the application where they please: they can leave it on the Desktop, put it in /Applications, stuff it away in ~/Internet/Cats/Catmacro Creator.app, whatever.
To uninstall the application, the user drags the .app bundle ("Catmacro Creator" in Finder, the extension is hidden normally) to the Trash.
It's unfortunate that more vendors don't follow Apple's recommendations (eg., by providing a normal, non-internet-enabled disk image, or by providing a .dmg.zip instead -- DMG files can be compressed through Disk Utility!); while I understand the desire to show the user a pretty splash screen, it's *unnecessary*. I want to start using the program, I don't want to look at an installer.
The first time I encountered one of these, I was a little surprised (which is a point against it) but only because I thought some piece of code contained in the disk image had deleted the disk image, rather than Finder being responsible.
Incidentally, the worst offender here in my world is Ventrilo. The Mac version comes as a .pkg file (a "setup.exe"-style installer that's standard for Macs), and requests the administrator password. Macs condition you to question anything that comes as a .pkg on the internet, since pkg installers can and will write things in strange places (/Library/Frameworks) and install kernel modules and other tasks that Random Programs shouldn't be doing.
Addendum: There is also a perception (created and propagated both by Apple's documentation and by app vendors) that "drag it to Applications" is the install step. It's not: by the time you *can* drag it to Applications (DMG mounted), it's already "installed". The Applications folder is an organization convenience (and a good habit to have), not an installation step.
Regarding PKG installers on OS X: they are definitely much more annoying that nicely behaved DMGs for applications. They are suitable only for things that must go in a specific location, such as a software SDK or a driver. It's a major turn off when a simple app comes in a PKG installer.
"If you're trying to streamline the user experience, focusing your energy on how applications are installed is kind of silly.
How much of your time using the computer is spent installing applications?"
Installation is a part of the overall user experience.
Macs also have a wonderful utility called Migration Assistant that copies apps settings from one computer to another. As far as I can tell it works perfectly with any apps that don't use an installer (and maybe some that do). Apps don't have to be specially written to support this migration utility. You also don't have to run anything on the source computer. Only on the target.
"To be fair, Windows applications aren't always delivered with installers, either. One of the apps I use is Kenny Kerr's excellent Window Clippings. It's delivered as a single executable in a compressed ZIP file. It's a pleasingly simple arrangement, but it's also more work me, the user. Consider how I "install" Windows Clippings:"
How is this more work? All you HAVE to do is click the .exe file which you can easily leave on your desktop after you download it. All the "extra work" you're talking about is how you apparently prefer to have the .exe files installed. Additionally, I wouldn't call the steps of "creating a folder + dragging the .exe file into it" error-prone".
You ask, "Wouldn't a big giant button that says "Install Me" be a better experience for the user?" and I say, that would be great. But I think a giant .exe file that says "Run me" is better, just like the Window Clippings program you are actually COMPLAINING about says "Run me".
Incidentally, I don't understand how you believe winamp is hiding the lite version from you, all you have to do is look DIRECTLY NEXT TO THE OTHER VERSIONS. Seriously.
Short and sweet: different paradigm.
When a user is trained to use setup.exe, he will think that's the only way to do it.
The example given in this article is just lame because it's not what the advocated method is. The advocated method is to download a DMG (which can be compressed inherently) containing either a fully functioning app, or a package.
In general, when I hear PC people complaining about how poorly OS X works, it's because they are stuck in a stone age mentality of what an application is and how it should work.
@Angstrom: "drag it to Applications" is the install step. It's not: by the time you *can* drag it to Applications (DMG mounted), it's already "installed". The Applications folder is an organization convenience (and a good habit to have), not an installation step."
You are incorrect. There is no installation step. You can run the file from within the DMG, and then when you're done running the file, you close the app, unmount the DMG and flush it down the garbage and it's gone. If you haven't modified any settings, this will leave no trace on your computer.
If anything, modification of user defaults will automatically create a pref file.
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.
A DMG file is nothing more than a disk image. An .iso file if you will. In that sense, an app such as safari or firefox can be run from a mounted CD or a network drive or an ipod. There is no need to install it.
If anything, what is lacking on OS X is a proper uninstaller for programs which require more setup than a simple app copy. For example frameworks. But most of them now come with their uninstaller scripts.
I see people saying that copying the Application to the Application folder on a Mac is good or is bad. I have yet to see any one reference the fact that Apple has an equivalent to the MS Installer. So if a developer wants they can distribute an application that way. The same as you can distribute Windows applications with a zip file. The choice is one of how the developer wants to ship it. There are also a number of independent installer that will work for either platform. So in this case the Mac does not make you install it a particular way. Look at it this way you could get a tarball that only has source.
I prefer Mac OS X's way better but not for installing the program, but rather uninstally. It's just a quick drag to the trash and it's gone!
I do, however, love the way programs like uTorrent and Media Player Classic are just small executables that have no EULA and don't need to be installed but rather are just run.
In my oppinion "setup.exe" style installers are one of the most evil things in windows-land. And that's because too many of them do not follow the rules and creates broken (overwriting stuff), littered (c:\something directories, files needlessly copied to windows\system32...) and plainly annoying (only installs for "Administrator", not users) installations.
I sometimes even resort to the practice to run installers with a restricted user-account just to get a glimpse of what they try to do and look at the temporarily unpacked files they unpack... More often than not I just took the little .cab, .dll or driver from there and just scratched the bloated setupware.
I very much prefer the "runs-everywhere" approach of so-called portable apps that are so popoular to put on USB-sticks that the mac .dmg also adheres to. Or, on the other end, the extremely good working linux package management under debian of which the windows .msi files are just a cheap copy attempt.
This is silly.
I MUCH prefer the standard Mac OS X application installation procedure to that of Windows. And yes, it is standard, except for the few stupid developers who choose not to follow the guidelines:
Most simple user applications don't need a fancy installer. As others have pointed out: download dmg, open dmg (if the browser didn't already do it for you), [optionally, if the developer provides a EULA, click "Agree"], and drag the application to Applications folder. Done.
A Mac OS X "application" is really just a folder containing everything it needs, except in the Finder it appears as a "bundle", and when clicked on it will launch the executable inside within it.
The great thing about this approach, other than being dead simple, is that I know it's not throwing files all around my system, except perhaps a preferences file in ~/Library/Preferences, and some user data in ~/Library/Application Support/
If the application DOES need to place additional files on my system, then Apple provides a very simple easy to use installer.
The problems you had are solely the application developer's fault. Apple is very clear about all of the above, and most developers are very good about this.
Given that a DMG can be compressed there is no reason to zip it that I can think of. Also you can include a shortcut to the 'Applications' folder inside your DMG.
The install process for my PerfectTablePlan software on Mac is:
-open .dmg file
-drag app icon in .dmg to 'Application' shortcut icon in .dmg
Thats it. Its no more complex than the (very simple) Innosetup based install for the Windows version. Try it yourself and see:
NB/I ship software on both Windows and Mac and have no religious axe to grind.
Also, I think part of the problem is that Windows users are in the mindset that applications must actually be "installed", implying that something special/hard must be going on to get it working.
That's not the case with most Mac applications, you can run most applications directly from the dmg/Desktop/wherever. "Installation" is simply the act of copying the application bundle to your Applications folder for permanent storage.
I agree with Sean
I believe the Windows and Mac style of installation is broken. They should take some hint for Linux (Ubuntu/Debian) package manager. I am not saying it does not have its problem but its approach is in the right direction.
search/browse and check the application you want to install and hit apply is the simple and should work for most of the users.
I felt exactly the same way about installations on the Mac to start with, but I have to admit, I much prefer it now. I'm not quite sure why the guy is getting all those steps, a well done Mac app is simply:
1) Download the dmg, it automounts and opens a window with a nicely laid out "drag this to here" where here is a short-cut to your applications folder.
2) Drag and drop it within that same window over your applications folder... launch the app.
It would perhaps be nice if Apple made it easier for shareware authors to get the short-cut-in-the-dmg-window thing working, but if you can't get to your applications folder in a single drag on the mac.... you're doing it wrong.
Now, let's post the steps for installing too
1) Drag your app to trash
Over to windows....
Some web-installers can cut out the 'click install' step as well - one click downloads, executes and installs and sometimes even runs.
If you've got an older version of IE you could even skip the step of choosing to install software as software would sometimes choose to install itself instead :P
Generally, the install process is NEVER that hard. I have it setup so that it downloads, mounts, and opens a finder window for me. What do I do then?
Step 1: Drag icon into Applications folder in sidebar
Step 2: Unmount
Step 3: ???
Step 4: Profit
But as far as I'm concerned, there's not much easier than...
I must say that although I have no experience installing software on a mac, I know that installing software on Ubuntu is incredibly painless compared to the Setup.exe file. For one thing there's no EULA to blindly click accept too and not worry about signing your soul to some random company. All I have to do is open synaptic and find the package, check install and hit apply. I do prefer the commmand-line over synaptic because all I have to do is type sudo apt-get install *name of app* and it takes care of the rest. It will even install all the dependencies for me. Now I rarely install software on Windows unless it's a game, and most of the time they're ports of games I was too lazy to get working on Wine or Linux.
It has been mentioned here briefly, but the most brilliant thing about typical Mac apps not using an installer means that those same apps don't need to be uninstalled. They can just be thrown away, with no concern that they've left traces anywhere except maybe in your preferences folder.
the most Mac Apps have a Applications symlink in the dmg. then you only need to drag the one icon to the other.
I've always hated how Windows installs software. Decentralization is a good idea, but it doesn't explain the stupidity of most installers.
Compare and contrast how things work on Ubuntu for example:
- Launch package manager
- Look for software
- Mark checkbox for installation
- Click apply
- ... wait ...
- Close installation dialog
- Close package manager
I know they can still do better, but compared to Windows, we don't care where the software's installed, feature selection, etc. We don't get 6 icons per program in a sub-folder of "Programs" menu. It's much simpler than both Windows and Mac.
I have to say, I prefer the Mac approach. Installing any random new piece of software on my Mac generally takes about 20 seconds; it seems to take anything up to an hour on my (fast, new) Windows machine at work, with even small applications taking a surprisingly long time. Un-installation of Mac apps is also generally simple; just delete the application. A few do make other changes to the system, and generally provide an un-install app.
Linux package managers not only make the install/uninstall process easier, they make updates to individual programs easier too. The equivalent of Microsoft Update handles not only system updates but updates to all the installations you've made through the package manager too.
It does it in a much less annoying fashion as well. The final straw in me switching away from windows was that after updating my computer would restart itself if I was not constantly there to tell it to wait. Unless a new kernel is installed reboots are not necessary on linux, and even then it (ubuntu at least) reminds you unobtrusively and you can reboot at your leisure.
@Jeff Atwood: "I don't understand why Mac users accept this with a reserved shrug of their shoulders and say "that's just the way it is", or worse, defend it as some sacred act of drag and drop busywork that somehow blesses the application"
Because they're Mac users. It's what they do. You can't be a Mac user without defending every design choice Apple made for the OS, the iPod and the iPhone.
It's all about the iLife.
Let me get this straight. You're complaining that the Mac doesn't "automatically" install software like Windows does? You mean like all the spybots, worms, and other garbage that Windows happily lets onto your system with, or without your permission.
Next, you're complaining about having to make decisions about where to install software and you're too blasted lazy to learn where things go?
I've installed software on a wide variety of platforms and found that all of them have their quirks. I will happily take a little of the work on myself just so that I know where I put stuff as well as to have some idea of what's there.
Finally, a hint. If you drag something to the applications folder that's where it is. The program may or may not create preferences files but everything is usually right where you put it. On Windows try tracking down all the DLL's and other stuff it tucks away in all sorts of locations.
You’re comparing apples to oranges. The Ubuntu equivalent of a typical Windows installation programm is dpkg.
Package installation on Windows works the same as on Ubuntu provided you have either ActiveDirectory Software Installation or a comparable solution (MS Systems Management Server, IBM Tivoli, Novell ZENworks, …) and some administrator that maintains the package repository. The administrator will customize the package as needed so that there is no user input required during installation. With Ubuntu this is done by the Ubuntu team.
Unfortunately not all application vendors offer standard Windows Installer packages (MSI files) but instead rely on “home grown” installers that are usually broken (this includes NSIS, Inno Setup and worst of all Installshield) and make automated software installation really painful. Take Paint.NET as an example *g*
Couldn't agree more. After using Ubuntu, installing apps on Windows seems archaic.
The idea of googling and downloading some random .exe off of a web page and executing it with administrative rights on my computer is scary now that I'm used to installing signed packages from an open source repository.
Your missing the whole security aspect Jeff.
I used a Mac for a few years a while back (and still would if they had some lower end versions of their PowerMacs with Core 2 Duo instead of Xeons), and installing applications was just as easy as on Windows. More importantly, however, it was MUCH easier to keep track of and get rid of applications after they had been installed.
BSD-style ports and RPMs and Debian packages are fine too, and also quite a lot easier to manage than Windows applications. It's a bit annoying that libraries and applications are treated as equals, since that makes it more difficult to see what you've actually chosen to install rather than having dragged in as dependencies, but it's possible some improvements have been made in this regard in the Linux world since I last looked at it.
As others have pointed out, the lack of a standard way to install things on Windows complicates everything a whole lot. The average user's "Program Files" is a mess after a year or two. Yes, it can be avoided, if you're very disciplined, but in practice that's just not the case for the vast majority of computer users.
I'm not even sure who to blame - Microsoft actually tried to solve this, since there is "Add or Remove Programs" in the Control Panel. But there's a lot of applications installed that are not listed there, so it didn't quite work out.
This is the most painless windows installer I've ever seen. You click a checkbox to agree to the EULA then on the same page you click the large bold button that says install, no reboot required.
Cool software too.
"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 :)
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 :)
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! :)
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.
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.
JEFF WROTE : "Never mind that drag and drop itself is an utterly broken and user hostile GUI convention."
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!
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.)
"You're right, though most modern Mac software (not ports but genuine) has an auto update mechanism (all I can think of)."
I agree. The situation has become better on the Mac now, I think, partly due to the Sparkle framework (http://sparkle.andymatuschak.org), which is so easy to integrate into existing Cocoa apps. Adium, AppZapper, Colloquy, Cyberduck and many other popular apps use Sparkle for self-updates.
I'm actually planning to write about a couple of such frameworks in Part 3 of that series of posts. :)