MacOS – Why don’t I have to install programs

installmacmacos

I've just started using a Mac for iOS development, coming from two decades of Windows use, and I'm astonished and confounded to find that there's no installation process for Mac programs….you just download them, open the DMG, copy the file over, and presto.

This confuses me to no end.

Can someone explain on a technical level what the difference is? How could it conceivably not be necessary to perform an installation process?

And if such a thing is possible, why don't all OSes work that way?

Best Answer

Us Mac users ask the same question the other way: Why do you need an (un)installer for everything in Windows?

The majority of Mac programs are complete bundles - all their resources are in the Application's folder (right click on App icon -> Show Package Contents). So they will run from anywhere, there's a system variable that tells the code where it is. Often, an application can be run directly from the downloaded DMG and even from a remote server. Bit of a performance hit but it will work. User settings are in the user's library, there are also system routines to handle the mechanics.

Macs have no central registry that requires setup (or maintenance) so nothing needs to go there either.

If you are developing Mac applications you should try very hard to not need an installer - only if you are installing shared libraries or shell-level services. In general, it's possible to do without.

Since you are heading towards iOS programming I would suggest just not worrying about it. iOS rules will tell you where to save what, and it is NOT negotiable. Preferences go here, user data goes there. You will use the supplied APIs. Comply. Obey.