So one quite major difference that I have come across on the switch is the installation of applications on Mac, and it is an area that deserves a mention here.
Generally, Mac applications do not seem to come with an installer (yes, there are some exceptions but lets talk about the majority case in this post) and at first the Mac model seems really clean. Simply drag the [Application].app file into the applications folder and run it, and drag it back to trash to uninstall it. Bosh. Done. Right?
But that raised some questions for me, Windows applications almost universally have installer and uninstaller applications because they need to place files in various places across the disk. Mac apps don't need this? Cool, but… What about per user application files? What about temporary files? What about user preferences?
So first of all I found out that the application "file" is actually a folder and inside that is the whole mess of application specific files. This is a great start, really clean and gives ultimate flexibility for the developer and perfect simplicity for the end user. But, even if it is good practice to write into this folder Mac OS X is a multi-user operating system and thats no good for per-user files and settings.
Then I found out about the Library folder, to me as a Windows user this basically looks like the Application Data folder under Documents and Settings, a per user store for settings and files. Most applications seem to use the Application Support folder under Library to store their 'stuff' in, but some applications (e.g. Safari, iTunes, Mail) seem to have a folder directly off the Library for different stuff. Preferences have a .plist extension and seem to go in the Preferences sub-folder. This all seems reasonably logical and god knows Windows has some inconsistencies where applications (especially old ones) put files. But Windows applications come with uninstallers that should remove all the crap they install.
So, that simple "Just drag the .app to the trash to uninstall" isnt quite as clean as it first seemed because even with a well behaved application you leave potentially hundreds of files lying around in several folders and you have no idea if you ever found them all because it seems like a fairly open season on where to write to inside that structure.
My final point here is that there also seems to be no permission issues with writing to the Applications folder? Is this because my default Mac user is basically an admin? Although I have not been asked to elevate my privileges by typing my password when tinkering in there.
There does seem to be an application called AppZapper which tries to solve this issue, I haven't tried it but I might take a look at it.
- Application installation on multi-user operating systems has some fairly hard problems that need solving largely by the operating system or conventions laid down around the operating system.
- Mac OS X and Windows actually have really similar models for file architecture
- Documents and Settings vs Users
- Application Data vs Library
- Program Files vs Applications
- Installation applications (InstallShield, etc…) are not ideal but neither is the .app model and in fact I think the .app model is actually worse because the perception is that the application is being uninstalled by dragging the .app to the trash and files have been insidiously installed in various different places across your disk.
If anyone has a good write up about best practices or any of the issues mentioned here within application installation for the Mac then I would be really interested to read it.