Rendered at 18:58:58 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
pavlov 11 hours ago [-]
I think the most confusing concept in this process for new users is the shortcut inside the disk image because it breaks the isolation metaphor.
So, you download a file, and it's something called an "image" which opens in Finder like you'd inserted an external thumb drive. Fine. You open the image, and inside is... Your own Applications folder? Wait, how can the file I downloaded contain all of my apps?
This kind of indirection is natural to developers and other advanced users: the file you got from the internet doesn't really know about your Applications, it's a link to a generic system location that gets resolved by Finder. But for less advanced users it's oddly circular: this virtual disk that came from the internet has my data in it. It's something that never happens with an actual thumb drive.
newdee 8 hours ago [-]
I don’t think less advanced users think that deeply about it.
They just see “oh, I drag the app to applications”. The main issue I’ve seen is that people try to run the .app from the disk image, or forget to eject the image after moving the app.
Well designed dmg drag-drop style deployments will actually put some background artwork with arrows and text instructions telling the user to drag and drop into Applications.
Still, I think .pkg package style installers are the most intuitive process for non-techies, especially those coming from windows where MSI and install wizard style exes are common.
philistine 6 hours ago [-]
> Still, I think .pkg package style installers are the most intuitive process for non-techies, especially those coming from windows where MSI and install wizard style exes are common.
Nope. It's an app that is simply the .app bundle, skipping the whole historical footnote of a .dmg completely. Once you first run it, it asks if you want to move it to Applications, and promptly restarts from its new location.
simongr3dal 18 minutes ago [-]
Some apps used the disk image as a simple way to bundle up a little “installer”. This is lost by sending a .zip file.
The disk image could put a background image with instruction visual, decide the visual placement of icons. Applications could include folders with brush packs, example documents, user manuals and such.
The fact that it was a disk image could be seen as confusing if you read that closely, but if you ignore the file type it was simply an icon that you could double click to open a piece of installer UI.
zbentley 25 minutes ago [-]
Good point. Why don’t more people do that? Compression?
jeroenhd 10 hours ago [-]
There's a tiny little arrow in the corner to indicate that it's a shortcut.
But this really confused me when I first started using macOS as well. You're just expected to know that the applications folder in the disk image you just downloaded isn't actually inside of the disk image.
When I first opened a .dmg, I thought the arrow symbolised some kind of progress bar and waited for a moment to let it do its installation. That didn't work, so I copy-pasted the folder into my Applications folder manually. When I later opened a different .dmg that had instructions about how I needed to drag and drop myself, I actually realised what I needed to do.
ffsm8 9 hours ago [-]
i actually vividly remember when they started introducing that flow... the first time i came across it was a total knee-jerk negative reaction.
unrelated to that, i switched to windows a few years later (my old imac wasnt good enough to play world of warcraft)... but when i came back to it 10+ years later, it still felt strange.
i mean its neat from a minimalism perspective, but the decision to not ship with a regular installation UI in OG macOS X came with the tradeoff of not cleanly _uninstalling_ software either. config files etc were always left over.
but i guess - as Apple keeps locking down good old macOS X in favour of forcing software to go through the Apple Store this is going away as a sideeffect?
weaksauce 55 minutes ago [-]
> came with the tradeoff of not cleanly _uninstalling_ software either. config files etc were always left over.
That's no different than windows or linux. The uninstallers leave configuration bits all over the place be it in the registry or config folders.
jemmyw 8 hours ago [-]
They haven't made any more moves in that direction since the store appeared. If anything, it's use seems to have declined since then. For awhile I would download a few apps from there, but when I did a fresh install this year I didn't even think about it and got nothing from there.
zamadatix 53 minutes ago [-]
I think the typical user sees a .dmg as a folder and the application icon as a shortcut, much like users get confused about opening a .zip and trying to operate on the files they see without extracting first. Neither of these are technically true, but the two mental models end up making sense with the action in the end.
PufPufPuf 12 hours ago [-]
When I first got a Macbook, I tried installing an app and had no idea what to do once I saw the app icon, arrow and Applications folder with no additional instructions. I didn't figure it out and had to look it up. For an ecosystem praised for its "user friendliness", this was certainly not the best first impression.
raffael_de 8 hours ago [-]
As someone who grew up with Windows the canonical equivalent action would have been to select "install" from the dmg file's context menu (which is opened by a right click). The MacOS way to do it feels too gimmicky and different-for-being-different's sake ...
redeeman 1 hours ago [-]
well.. its not like they were hiding it when they said "think differently"
Kim_Bruning 8 hours ago [-]
It really depends what you grew up with I guess.
As someone originally coming off of RISC OS[1] way back when, the mac way is closer to intuitive than the windows way, while Linux's approach of splitting files across the entire FS so that you can't possibly find all of them is "The Real WTF".
(Nixos is even further from that original intuition in a lot of ways. Oh for the days of drag-dropping the !App dir to wherever you happen to have space; and maybe dragging it to !menon if you needed to actually find it back )
[1] The operating system that came with a thin welcome booklet with reassuring pencil art explaining how to hold a mouse, and what the difference between a click and a doubleclick was. [2]
[2] https://archive.org/details/risc-os-5.28-user-guide/page/6/m... Oh wow, still exists in the RISC OS 5 manual. This kind of manual used to be famed : Eg. Chapter 1 introduces what a desktop is; Chapter 2 explains the mouse; 3 Explains the keyboard ; 4 explains what a window is. Give a motivated naive user this guide and there's a small chance they might actually grok the thing when they're done.
jocoda 12 hours ago [-]
FYI - You don't have to drag the app to the applications folder in the install window.
You can drag the app to a different location. I have an entry level mini 8GB/255 GB SSD with 1TB external SSD. Everything goes on the external.
There are only a handful of apps that insist on being installed in the system Application folder. Even had xCode running on the external.
Uninstalling is supposed to be as simple as moving the app to trash but often that leaves a load of stuff behind that no one tells you about.
wpm 8 hours ago [-]
Uninstalling has the same issue on every OS because the OS isn't keeping a log of every file an application creates over its lifetime being installed; it can only remove what it knows about.
pas 4 hours ago [-]
in the age of containers, overlay filesystems, a decade of UX work regarding sharing data/files/content between applications on phones, it should.
frollogaston 20 minutes ago [-]
Some annoying apps do need to be in /Applications but often can be fooled with a symlink.
dabinat 12 hours ago [-]
I think that if every app has to explain to the user how to use their own operating system, that operating system is not intuitive. I’ve been using Macs for a long time but I had to look up how to install an app the first time I did it.
yndoendo 1 hours ago [-]
Intuitive designs are nothing more that applying prior knowledge. I have to create simple next, next, finish instructions for people to install on Windows.
Example of this would be the ability to open a can of soda. You can do it because you saw someone else do it. Now give the can to an Amazon tribe that never saw the can nor how to do it before.
Windows uninstallers also do not clean up the system and leave trash everywhere. The registry is often the most litter filed area. Even Microsoft's _cleanmgr.exe_ does not fully clean your Temp folder and a manual removal is needed.
As a user of a number of systems; Mac installation is the cleanest and most simple. Linux's closest would be AppImage packaged applications.
Windows is one of the worst because often they are un-scriptable and require the end user to always interact. Mac and Linux can script their installations with ease. I'm saying this as someone that needs to manage systems which are air-gaped and service by others.
frollogaston 12 hours ago [-]
The dmg thing makes no sense. I do like that the app is self-contained, unlike Windows where it's always an installer, but don't like how deleting the app doesn't clear whatever files it put all over the place.
pletnes 12 hours ago [-]
Windows uninstall scripts often do the same. Some have an option of removing data files, some just leave them behind. I don’t have any statistics but I see no reason to believe the situation is any «better» on windows. Also, I am sure people will disagree on whether it is better to remove data files or leave them.
frollogaston 11 hours ago [-]
Not surprising, but at least devs are given a clear way to behave well if they want. I do think all desktop operating systems were overly loose with apps touching files, though.
pletnes 9 hours ago [-]
Also, desktop app devs tend to touch files in a myriad places that you’d never expect. The os can never solve that anyway.
frollogaston 23 minutes ago [-]
It could solve that if they wanted to make it like iOS apps by default, and only go outside that for less common situations like dev tools. I kinda expected Mac App Store apps to be fully sandboxed that way, not the partial thing we have.
the_other 12 hours ago [-]
One advantage to leaving the configs around is that the next time you install the app, yiu get it set up just the way you had it before.
Also, AFAIK, this mirrors how command line utils would work.
frollogaston 12 hours ago [-]
Why would you remove an app if you want it to stay set up? iPhone has the "deleting an app will remove its data" thing for this reason.
hnlmorg 11 hours ago [-]
Lots of possible reasons:
- You used a trial version of a software, or other time limited license, and want to keep the output from that around.
- You are upgrading and that particular app requires uninstalling the old version before installing the new version
- You run out of disk space and want to uninstall a game but don’t want to lose you’re progress
That’s just what immediately comes to mind but suffice to say any workflow will have legitimate counter examples.
frollogaston 11 hours ago [-]
User can back up files in all those cases, but if this is really an issue, the "data will be deleted" dialog can have a button to say no. The way it is now is the worst. It's so unclear what you need to do to actually uninstall something that people go download stuff to do it, often malware.
hnlmorg 6 hours ago [-]
I agree the current process is shit. But that’s not the point I was countering.
To be honest, I think the way Windows handles uninstalls is shit too. I don’t think either desktop OS has got it right.
Their respective app stores are an improvement on the status quo. But unfortunately they turned them into an ad riddled, proprietary mess that is more designed for their benefit than the end users.
Sharlin 11 hours ago [-]
Ironically, removing many iPhone apps does not delete its data (as far as the user is concerned) because the data is actually in the cloud somewhere.
frollogaston 11 hours ago [-]
It would be nice to be able to delete Robin Hood if you go negative
wpm 8 hours ago [-]
It also removes the preferences/caches for the app, but not its keychain data.
magic_hamster 9 minutes ago [-]
After spending years with the major OS families, I think that Windows made more sense in the 32 bit era, MacOS is trapped in a user familiarity valley with bizarre ideas it cannot escape, and, unsurprisingly, Linux is the only foundation which had the right ideas and was able to keep an efficient solution working for decades.
Brew and other MacOS package managers are a testament to this. Package managers crafted with care around the user needs is always going to be the way to go.
This highlights something that's been a creeping issue for at least a decade if not longer: both MacOS and Windows are not built around the user anymore, for different reasons.
Windows is easy to see, it is now an OS as a service where the user is exploited right below the comfort threshold that will make them abandon the system (although for many this threshold was crossed long ago).
For Apple it's not as immediately obvious, but their forced obsolescence through constantly shifting requirements and tooling means that nothing lasts very long in the Mac ecosystem, you always have to upgrade, as a consumer and as a developer, rebuild, refactor, push updates and eventually be forced to replace your hardware. So you are basically caught in a neverending game of catchup and Apple is always a step ahead of you, by design.
Booting up almost any flavor of Linux is just leagues ahead in terms of simply letting you use your computer tending to your needs.
kzrdude 2 hours ago [-]
As a mac user (also a linux user), I got used to it and it always seemed better than the alternative (weird install programs).
adzm 12 hours ago [-]
I'm just glad I'm not the only one who says damage in their head for .dmg files
nasretdinov 12 hours ago [-]
I've once made a disk image backup of the running system (and it warn that it might be a good idea) and then wiped the laptop clean and installed a new macOS. The disk image (predictably) failed to mount and there wasn't much I could do to fix it.
Since then I also read dmg as damage :)
simplesocieties 12 hours ago [-]
I'll be honest given the article title I was hoping for a detailed rant on the complex installation process that most Windows apps hide, but this was also a nice read. And as a user of Raycast they do indeed have a very nice installation background.
ExoticPearTree 12 hours ago [-]
Counterpoint: as a Mac user it is surreal to click Next Next Next to install a program on Windows.
Same for uninstalling. Move to Trash and poof, unistalled.
There is no standard way to install stuff, so neither MacOS nor Windows deviates from something. For all the bickering about it here in the comments, no one proposed an “ideal” solution to install a program on Mac.
jeroenhd 11 hours ago [-]
> Same for uninstalling. Move to Trash and poof, unistalled.
That removes most of the program files, but there is no chance for the program to run any cleanup process in the mean time. Library Support, .cache, and all other kinds of remnants remain and have no way of getting cleaned up without manual user intervention. It's like hunting down broken uninstaller files in Windows 98 all over again.
The places that need cleaning up after uninstalling a program:
And possibly others that use UNIX-style .config/.cache rather than the macOS defaults.
I do like the "folder as an executable" approach macOS has, but the way the ecosystem goes about program management isn't great. Storing caches and data inside of the app directory for applications installed to a user folder (not the global Applications folder, which would require administrative permissions) would go a long way. Entries in all the other folders could just be symlinks that don't take up any space after you trash a program.
As for installers, macOS comes with its own native install wizard format, akin to Windows' MSI installers. This seems to be the default way of installing programs that need things like drivers to function correctly.
ExoticPearTree 7 hours ago [-]
I think there is a hook script that can run on the “uninstall” of an app when dragged to Trash that can cleanup stuff.
On the other hand, I never had disk issues because of randon files inside the user directory, nor do I install/uninstall programs that often. And this I would venture to say is the same for most of computer users: Office, IDE(s), a browser or two and some utilities.
I have for example Goland, Postman, Chrome, Firefox and Wireshark. And some homebrew stuff like ngrok & friends. I spend most of the time in Chrome doing emails and using Confluence/Jira, Google Meet.
kvuj 9 hours ago [-]
Isn't it the same for Windows? There have been countless programs throughout the years that I've uninstalled and saw remnant folders in %appdata%, Documents folder, Program Files folder with only 2 remaining files inside, sometimes even hidden folders by default.
jeroenhd 8 hours ago [-]
It depends on the program. Many of them clean up, usually with a little checkbox to confirm throwing away your settings, but a lot don't. It might not be 100% of the apps, or even 50% for that matter, but it happens.
On macOS that mechanism is simply impossible if you install the app using the drag&drop method.
orphea 9 hours ago [-]
> Isn't it the same for Windows?
Sometimes. Many apps do clean up after themselves.
jasode 11 hours ago [-]
>as a Mac user it is surreal to click Next Next Next to install a program on Windows.
macOS has similar multi-step prompts for some programs such as Microsoft Office, Python, FUSE-T, VeraCrypt, etc:
Then deal with the various popups in the upper right portion of the screen relating to Login Items & Extensions Background tasks. Dismiss them by clicking [x] several times or drill into them to adjust App Background Activity sliders etc.
I also never understood why some apps put the x.pkg inside of a x.dmg which makes people perform another click. Seems redundant to do that. I can only guess is they just want the customized background image of the .dmg instead of the plain skeuomorphic cardbord box icon of the .pkg.
frollogaston 12 hours ago [-]
Ideal solution: download .app inside .zip. Double-clicking expands it into /Applications, deletes the zip, and opens the app, which is not far from what regular zips do. Or xip if they want signing.
The Windows way is inherently clearer than what Mac does now. You always open what it gives you, and you don't need to be told to do anything else. Also, move to trash doesn't exactly uninstall a Mac app right now.
jayd16 11 hours ago [-]
Hmm but a lot of macos uses the familiar cancel/next wizard flow, doesn't it?
IshKebab 12 hours ago [-]
At least with Windows it's always clear what to do. Mac can dump you in a finder window with two icons. Very unclear. You may have forgotten how unclear this can be for the first time.
hahn-kev 11 hours ago [-]
I grew up using windows and the first time I ran into that on the Mac I think I had to Google what to do.
mschuster91 12 hours ago [-]
Mac stuff can leave stuff ghosting around. Launch agents, helper tools installed into the Unix filesystem, configuration and cache files.
A myriad of „uninstallers“ exist but these are all third party and rely on crowd wisdom.
psyclobe 12 hours ago [-]
That stupid nezt next elevate confirm page workflow on macos has always annoyed me for some reason.
Its so idk redundant
dgellow 9 hours ago [-]
I don’t believe they meant surreal in a negative way
jiehong 12 hours ago [-]
I might be in the minority, but for me the best way is installing with a cli (like homebrew or winget on windows).
A UI way to install is only a fallback.
amaccuish 5 hours ago [-]
Before we I introduced an MDM at work, I can tell you, 80% of users were running apps from .dmgs from their desktop.
I'll leave it to the reader to decide if that means the process is "intuitive".
vintagedave 11 hours ago [-]
There are some amazing graphics here. These are images users would see very rarely: usually only on the initial installation. (A Sparkle app update would usually run for the rest of the app's lifetime.) The amount of care and polish put into something the user would see only once really shows the change in attitude around apps and UI on the Mac today.
macOS is on the surface the same. But seeing this causes a feeling of a deep gulf. How can we or Apple regain it? That special sense of value and care in the OS and its app developers?
NordStreamYacht 14 hours ago [-]
Macs are fun.
photios 14 hours ago [-]
Too bad nobody needs to eject a floppy disk anymore :D
mig39 10 hours ago [-]
It's a disk image, because in the old days, you'd install apps by dragging them from a floppy or CD to the Applications folder.
anArbitraryOne 13 hours ago [-]
I'll never forget the first time that dreadful window appeared. I was frustrated for 10min, eventually turning to my phone to search for what to do.
lubujackson 12 hours ago [-]
Happened to me last year. My wife always taunted me because I have been anti-Apple since they hermetically sealed their iMacs so you couldn't stick in RAM with talking to a "genius". "It just works!" she says. I dunno, I guess I didn't think an "Install" button needed reworking but here we are, not an ugly instruction or tooltip in sight.
Also Apple: I bought my son an old refurbished iPad for watching Netflix on long drives. But you can't install Netflix! The OS is too old. What's the workaround? Simple, if you've previously installed a Netflix on another device you can "restore" it, and then Apple will let you install the old version. On the old OS.
Of course I didn't have an old Netflix installation so I went to install Netflix on my work laptop, but there is no Netflix app for laptops anymore! Finally, I got it working through Family Share after an hour of tedious effort. This may be more Netflix's fault than Apple, but why would an OS give that power to a 3rd party in the first place? What sense does this make?
It reminds me of NextJS where there is some minor niceties at the cost of magical thinking that you may need to move heaven and earth to circumvent in order to accomplish the most basic shit.
TylerE 12 hours ago [-]
That should be your hint that the OS version is too old to be connecting to random services on the internet.
binarin 11 hours ago [-]
Not necessarily. The only real thing about this restriction is that Netflix is afraid that this OS version can be used to pirate their content. Which is orthogonal to the question whether this OS is safe to use for random internet browsing.
HWR_14 12 hours ago [-]
Netflix and the Apple App Store are not random services.
darkwater 12 hours ago [-]
Sorry...what? Netflix is "a random service on the Internet"??
Barbing 13 hours ago [-]
Who says this doesn’t add to the discussion, come on! Voting you back up one…
Also senior citizens might have no idea what they’re supposed to do with it, as I’ve seen, so could be more accessible. (Maybe that’s a feature if it’s a junk app.)
vintagedave 11 hours ago [-]
That Squirrel screenshot is fascinating: what happened to the traffic light controls?
Probably someone installed a custom theme (you could do it on osx back in the day, see e.g. "Aqua Extreme").
herf 14 hours ago [-]
It's fine for installing, but uninstalling is madness: Windows uninstallers try to clean up all the registry and user profile stuff they install. Mac apps seem to just leave stuff behind in Local Settings or Caches forever? Containers are not such a bad idea.
eddythompson80 13 hours ago [-]
Same here. I’m least familiar with macOS compared to Windows and Linux, but the uninstall story on Mac was always baffling to me.
On Windows, it’s not perfect because it’s ultimately cooperative, but at least the developer of the application can also configure how it should be uninstalled. If you mostly stick to “reputable” applications, you know they would have gotten so many complaints about random things they leave behind that they slowly fix their uninstaller. Also you usually get the option to completely uninstall or keep data files, etc. Though it’s not universal. Uninstaller apps like CCleaner used to be more popular, but I hardly hear about these things anymore and usually advise against them.
On Linux, the story is slightly better as you rely on your distro package maintainer to configure the right uninstall logic. Removing random config files in /etc/ or data files in /var/ or systemd units, etc. Usually maintainers get it right as long as you stick to those feeds, and when something is missed it’ll get fixed eventually.
On Mac it seems to be either google it to get a list of locations to clean (which is what I do), or just delete the folder and ignore the random files or use CleanMyMac ($19.99) or CCleaner ($12.99) or MacAppBeGone (that’ll be $8.99) etc. luckily you can try to stick to homebrew and the App Store, but it’s limiting.
sd9 14 hours ago [-]
I agree entirely, my Mac is full of half leftover data from old apps.
But that is quite independent from the creativity people show in these install workflows. You could have both a cool .dmg and a proper uninstallation process (but we don’t, for the most part).
JoeSloth 13 hours ago [-]
Counterpoint: you reinstall something later and all your setting and preferences are still there.
It’s a classic cloud vs disk debate about where and who should persist and own the data. Lately I think it’s kinda refreshing that it’s entirely on your disk and up to you.
jeroenhd 10 hours ago [-]
Decent Windows uninstallers have a checkbox for that. Often disabled by default.
It's not universal, but at least it's possible. Not having to hunt down random directories (or buying a program to do it for you) also has advantages to user control.
orwin 10 hours ago [-]
Counterpoint: explain to me how to make two different versions of an app cohabit. I found out about homebrew, so it isn't as much as an issue as it used to be, but in the 2000s, it was impossible to maintain two versions of RoR on mac. Granted, window was not much better (two versions of crypt on ISS took me way too long to install correctly). But for anyone used to sane OS, it was a detriment until homebrew became ubiquitous.
benob 12 hours ago [-]
Maybe the correct UX could be to list the locations of settings data, their size and ask the user whether they want to leave them, put them aside in a dedicated folder ("the attic", "the basement" or whatever), or remove them
inigyou 12 hours ago [-]
Windows uninstallers sometimes just have a checkbox
card_zero 13 hours ago [-]
I switched to Windows in the year 2000, or 2002, around then. It used to be cool because "the app is just a file that you can place anywhere, or trash when done" was true. They arrived usually as Stuffit or Binhex archives, rarely as disk images. There was no fussy "applications folder" with special permissions. You decompressed the file to anywhere and ran it. If you felt like updating something, this was accomplished by going and getting a new one.
FacelessJim 12 hours ago [-]
Been using the great and free AppCleaner[1] since I have memory. It's so good I just forget it's there.
It autodetects when you delete an app from the Applications folder runs a quick scan and suggests which other files you might want to delete (So you might save savedata or settings if needed)
I would expect local settings and caches to remain. They are your files. Caches I would expect to be cleaned up by some operating system service. This, of course, relies on the app putting stuff in expected places and not just in random places.
SanjayMehta 13 hours ago [-]
I bought AppZapper years ago, and it still works. There's a free tool out there somewhere as well.
Don't knock on this feature, it can be a lifesaver if you've lost the license info. When you reinstall, sometimes the app can retrieve the license from old files.
Or used up your free trial, you get a reminder it’s time to buy!
cosmic_cheese 13 hours ago [-]
It makes more sense if one thinks of the disk image files as digital analogues to thumb drives, optical discs, etc.
In the Classic Mac OS days a decent chunk of software (especially shareware/indieware) didn't have an installer and was just a folder you copied from a floppy disk or CD, which this process kinda mimics. You're just opening a file instead of putting in a disc.
epihelix 12 hours ago [-]
The problem is that an application isn't intuitively analogous to removable media at all. The last time I physically inserted a disc to run an app was in the CD Rom era.
The click-and-drag to the Applications folder step is also odd. Presumably the user wants to install the app if they've double-clicked it, so instead of kludgily hacking the file manager (oof!), why not simply prompt "Do you want to install [application name]?" [OK]/[Cancel]? How would that not be clearer? (Can you even install an app via the keyboard alone with that interface? I assume you must be able to, but it's certainly not intuitive that you could tab and enter your way to installation happiness.)
I appreciate that TFA is all about the creativity that can be added to this step, but it seems to me to be poor UI/UX design to allow so many possible ways of doing something so fundamental as installing an application. Sure, it's cool and fun if you're young and creative; but likely confusing as all hell if you're older and less-computer-literate.
bigyabai 13 hours ago [-]
Even Apple is unwilling to admit it makes sense, it's not like the App Store makes you drag the icon into a shopping cart or something. It's just poor design nowadays.
mpfh 13 hours ago [-]
[dead]
gushie 10 hours ago [-]
I've been using a Mac for 4 years. I still just want a nice simple install button.
al_borland 5 days ago [-]
I’ve always appreciated the effort and creativity developers put into making this a good experience, and a learning experience for new users. After all, you never know which app will be someone’s first install. A well made dmg was how I learned to install apps on OS X when I first moved to it 23 years ago.
Some developers have gotten lazy with this and expect users to just know. As a result I’ve seen many people running an app out of the dmg file itself for a long time, then they wonder why they have a bunch of stuff mounted.
stevekerr 13 hours ago [-]
Why not .pkg (next, next, installer)? For the past week, I've been tweaking my startup's CLI to install as a .pkg, satisfy Apple signing, and everything that goes along with that. I've often wondered why so many companies opt for the icon method.
cosmic_cheese 13 hours ago [-]
As a user I don’t like installer packages as much because without special utilities, they’re opaque and it’s hard to tell what they’ll do.
Of course copied binaries can cause plenty of trouble too, but I have much less of a reason to give an installed program admin privileges than I do an installer.
ianmurrays 13 hours ago [-]
Same here. Especially because most installer packages rely on these specifically to install "obscure" things, so I'm immediately distrustful of them.
philistine 6 hours ago [-]
I moved to the Mac App Store version of OneDrive specifically because of the constant issues with the background processes it insists it must have running at all times.
The MAS version has only one of those and it works.
stevekerr 13 hours ago [-]
That makes a lot of sense. With the icon method: The user is in full control.
In our case, the CLI is part of a data sync system, so it does need a "special" once-per-hour check for new data (keeping local and mobile in sync).
I've actually been surprised how strict Apple is before it will happily let signed code run. But the average user (including me previously) doesn't know that. I think trust comes down to being clear up front.
Note to self: Add extra details/options to installer (WYSIWYG)
whstl 13 hours ago [-]
I really dislike PKGs and I have bought an app called Pacifist app to specifically know what they're doing.
But I’ve used both at different times with equally great results.
kikimora 9 hours ago [-]
I like drag&drop way more than .pkg. just easier to deal with. If you do a CLI tool then maybe `brew install CLI` is the way to go instead of a pkg file?
numpad0 12 hours ago [-]
Inertia? It's the standardized method on macOS. Macs have been this way at least since early 90s. InstallShield likewise had been normal on Windows since early 90s, so the modern MSI installers feel more normal and straightforward to Windows users.
lapcat 9 hours ago [-]
> install as a .pkg, satisfy Apple signing
Keep in mind that a package installer becomes obsolete and nonfunctional when the code signing certificate expires, unlike an app.
frollogaston 12 hours ago [-]
It's annoying to click through.
mpfh 13 hours ago [-]
[dead]
phtrivier 3 hours ago [-]
Unrelated, but the gallery of "drag icon to Applications" contains a screenshot of Joost : does anyone remember that ?
It could have been Netflix or Youtube a decade before, if only there had been, you know, any good show to watch on it.
That was the first "mass market" piece of software I worked on, a good 20 years ago now, and it brings some memories of ye old time...
nullbio 12 hours ago [-]
No one will ever convince me that the Mac approach for installing programs is intuitive or good UX. The whole argument of: "But if you think about it in ... way, it makes sense" is a terrible argument.
self_awareness 12 hours ago [-]
It's not a good method, as well as approving tens of following security popups, entering System Settings, finding some entries, allowing something that the user doesn't even understand, entering passwords after each mouse click.
MacOS experience is t-e-r-r-i-b-l-e and it's getting worse on each release.
People who like macOS experience for me either suffer from Stockholm syndrome, or nostalgia about lost macOS 9 base. Or simply have no idea there's something better!
macOS today is not macOS at all; it's a rebranded NeXT computer.
anon7000 12 hours ago [-]
macOS is quirky and sometimes limited, but to be honest gets out of your way for the most part. Windows is actively hostile to me in numerous ways. Linux is incredible in its depth of customization, but still to this day needs extra tinkering in plenty of cases.
self_awareness 12 hours ago [-]
macOS is in the way at all times. It's not even possible to disable SIP completely. Trying to run more than 2 macOS VMs at once? Nope, security risk! Password, password, password. Please enter your password in order to be able to write your password. Thanks. Oh yeah, please enter your password to close this dialog box. And find some obscure setting somewhere in system settings, and click allow. Don't ask why, we're not in UX business apparently. And sometimes writing the password is not enough. Now write the 2FA code after writing your password! And 2FA code pops up on the same machine in a different window (although that is actually useful, although I'm sure it's an oversight of apple lawyers). And when writing the 2FA code we'll censor the digits, because apparently it's too insecure to allow anyone, including YOU, to see a one-time number that won't ever be used again.
It's generally insane. They have mocked Windows in the Vista era for bringing UAC, but now they're much, much worse.
Their file security API breaks auto-updates of popular applications. AV vendors have to use an API that forces to block access to new files and release it "at unspecified time in the future".
Installing an average application on macOS generates so much notifications that user doesn't even see them anymore. It's like ads on a commercial TV channel, nobody wants this info, but it's being served over and over again.
Developer experience is dreadful. It's "our way, or the highway". Setting up a CI worker box on macOS is something I wouldn't wish for my enemy.
A good eye opening excersise of how much macOS gets in the way is to install sshfs.
TylerE 12 hours ago [-]
There isn't anything better.
Don't tell me desktop linux. It's not fit for purpose and doesn't run the software I need it to run. I do not want to run Linux. I, frankly, do not like what Linux evolved into. The desktop linux of 15 years ago was sort of acceptable. Modern systems infected with pulseaudio, systemd, and whatever the fuck gnome and kde have turned into are not. I'd rather run Windows, and I hate Windows.
petepete 12 hours ago [-]
Linux doesn't have a way, there are about 30.
Ultimately though, package managers (whether it's apt, dnf, Steam, some app store, etc) are the best for most people, myself included.
self_awareness 12 hours ago [-]
Well I run Linux since 25 years, so if you're telling me that it's not "fit for purpose" then I question your ability to see purpose.
Also I think you're cargo culting. You have problems with existence of systemd while praising an OS that doesn't even allow you to disable transition animation delays when changing virtual screens. It's not logical.
Btw, pulseaudio is old news, now it's pipewire.
TylerE 8 hours ago [-]
What part of " doesn't run the software I need it to run" are you struggling to understand?
TylerE 12 hours ago [-]
No one will ever convince me that literally anything about Windows isn't utterly insane.
frollogaston 12 hours ago [-]
There's a surprisingly sane place in Windows to uninstall apps that has no equivalent on Mac.
FacelessJim 12 hours ago [-]
The Applications folder itself is the equivalent. You can select an app and just press delete.
frollogaston 12 hours ago [-]
That doesn't delete all Application Support, Preferences, and Caches dirs associated with it.
ranger_danger 11 hours ago [-]
and in many cases, Windows uninstallers don't do the equivalent either and leave stuff dangling about because there's no standard.
frollogaston 11 hours ago [-]
Lack of standard dirs doesn't really matter in this case because the same dev writes the installer and uninstaller. But I do get annoyed that Windows programs put stuff in random places when I want to look into them, like it's program files, program files (x86), documents, roaming... where tf is %appdata% even
defrost 10 hours ago [-]
Yeah, I know it's rhetorical, all the same, there are a bunch of ways to query environment variables:
* From a windows CLI type
SET
and all environment variables will be listed along with their values.
* From a windows CLI type
SET APP
and all environment variables prefixed with "app" will be listed along with their values (eg: APPDATA ).
* With path location variables, open up file explorer and enter %appdata% in address bar and press enter / click "goto" arrow. File Explorer will expand the variable and show the expanded directory path and contents.
inigyou 12 hours ago [-]
How about running a program to set up another program, isn't that right, hahaha totally insane
TylerE 12 hours ago [-]
Don't even get me started on the registry.
inigyou 10 hours ago [-]
oh my god, non-file structured data! That's terrible! Everything should be a file in ~/.appname!
self_awareness 12 hours ago [-]
How's registry different than ~/Library/Application Support?
wpm 8 hours ago [-]
Because the registry holds configuration data, and Application Support holds various helper tools and other random crap?
The closest analogue to the registry on macOS are the ~/Library/Preferences and /Library/Preferences folders.
frollogaston 11 hours ago [-]
It's not a directory tree you can just browse in the filesystem, it's a few database files. Idk much about Windows, but at first glance I like how you can browse the Windows registry all in one place without digging through other files.
self_awareness 11 hours ago [-]
But it has directories and files inside, right?
It's only the program that is used to browse is different.
It's like you don't use explorer but regedit. It's the only difference.
On macOS it's not like you can always type what's inside the plist files with a text editor, sometimes you need to use 'plutil' anyway (if a plist is binary). So to browse Application Support you still often need thirdparty software anyway.
Years ago I did a small project that mapped windows hive (registry) files as a filesystem through fuse on linux. It mapped to a filesystem concept nearly flawlessly.
edit: can't reply anymore for today ('posting too fast'), so i just reply here: What is a file if not a key/value entry in a directory? Anyway, you can put custom binary data in registry, one value type is just "binary". But you shouldn't! Just like in Application Support - you can but you shouldn't. Registry just enforces it more. Entering regedit also requires to elevate it if you want to change system settings (HKEY_LOCAL_MACHINE). Changing user settings doesn't need elevation (HKEY_CURRENT_USER).
frollogaston 11 hours ago [-]
You use regedit, and only registry keys/values are in there, not other kinds of files. And editing systemwide plists on Mac means authenticating each time you touch one unless you're using a sudo terminal or sudo Finder. It does meaningfully change the experience for whoever is digging into it.
Also, Mac plists have two formats, xml and the non-text kind. Now mentioning that, I kinda hate both formats.
inigyou 10 hours ago [-]
What, you don't like <key>foo</key><string>bar</string> instead of foo=bar or <foo>bar</foo>
frollogaston 10 hours ago [-]
The dicts and arrays make it even more fun
frollogaston 11 hours ago [-]
Sorry to hear they're throttling you... ~/Library/Preferences is the usual location for plists. Application Support usually has other stuff, but can have plists too. Plists can be anywhere I guess, but the `defaults` CLI only looks in a few places unless you specify a path manually.
inigyou 10 hours ago [-]
Actually the registry doesn't enforce that the stored bytes match the type. If you want, you can store 800 bytes and call it a DWORD.
TZubiri 2 hours ago [-]
I'm also a windows user, along with user of other OS.
What's surreal to me is the Windows Installation process, the concept of an installation process that allows any app to have complete unsandboxed access to the files of other applications. In the year 2026
At first the idea of dragging a file seemed unnecessary, I would have thought it's better for the installer to do that automatically, but now I understand that the user is in control, and the best installation mechanism is not the one with less clicks, users are expected to grant permissions to applications they control, and in this case they are showing the user where those files are, and that the installation is nothing more than moving a folder around.
kingkongjaffa 2 hours ago [-]
As a omni user of Linux, OSx and Windows, the most peculiar part to me is this:
> teaches you that the app is just a file that you can place anywhere, or trash when done.
It's actually kind of opaque and not obvious at all, how exactly to uninstall apps on a Mac.
smallerize 5 days ago [-]
Is the quote in the title a reference to something?
allenc 4 days ago [-]
Yeah, it's about how Windows has .msi installers, whereas for MacOS it's a .dmg where you copy the exec binary (which itself is a folder) into the /Applications folder.
jackjeff 14 hours ago [-]
Or any folder. Most of my apps are in sub folders organized by category. :)
smallerize 4 days ago [-]
Ok but who said the quote?
mrunkel 14 hours ago [-]
It’s in TFA, but the post title is without the “very”
Apples and Oranges. MSI compares to .pkg (eww) installers on the mac side, not .dmg.
dgellow 9 hours ago [-]
Really nice collection! Seeing Adium makes me nostalgic
t43562 11 hours ago [-]
A long while ago I found myself helping out with some products MSI installer. I don't think anyone can really point a finger at the Mac and accuse it of having issues by comparison with what seemed to me to be the nightmare from hell of trying to make an installer that would work on various versions of windows.
It's not the fault of MSI per se, although its concept seems utterly frightful to me, but the way DLLs work and are registered and where you have to install them etc. When your app requires an older or newer MSVCRT etc. Also...the registry...something else that makes good old UNIX text file editing seem good to me.
I always thought that libsomelibrary.so.MAJORVERSION.MINORVERSION with symbolic links from libsomelibrary.so.MAJORVERSION and libsomelibrary.so allowed one to create dependencies that made sense - more or less specific as you chose. It also allows different versions of the same library to exist in the same directory such that one is less likely to break existing software when installing something newer (or older).
To be fair it might just be the way Windows tries to keep compatibility for the ages that makes it super difficult. I do think that you tend to get similar outcomes from similar assumptions/requirements and compatibility was indeed very very important till the internet became good enough to offer everyone easy upgrades.
I'm not a big snap or flatpack fan but DMG seems rather in their class - making things simpler. It might be easy to run an MSI after someone has burned many hours testing it to get it to work everywhere but to me it's a non-simple architecture that is made to work by extreme effort. I'd rather a simpler architecture that open source packagers could manage more easily.
As an example, I tried creating an Ubuntu package recently - a plugin for GNU Make that adds some useful functions.....that was SO hard - worse than any MSI experience I ever had - and I gave up. There were millions of confusing instructions and none worked properly. I couldn't work out which way was up or down - I don't know how people do it.
On Artix (an OS which is a little harder to install than Ubuntu) it is an absolute dream to create packages - exceedingly so. It might be that they aren't the greatest packages in the world but something that can be developed easily and got working can also be improved easily.
jeroenhd 10 hours ago [-]
Windows' CRT setup allows for binary compatibility with older versions. You can go without if you just statically compile the dependencies into your program, but many Windows developers choose to rely on runtime versions which may or may not be shared.
MSI's biggest mistake was probably granting developers the capability of invoking any program they like. The format was originally designed similar to Linux packages. Installation steps were atomic and reversible. If something went wrong (i.e. you ran out of disk space halfway through), the installer can undo every change step by step so you can try again later without overwrite prompts. Unfortunately, adding the ability to call executables means that atomicity is usually lost.
macOS applications seem to just package every single DLL they need inside of their application folder rather than relying on the OS. I'd do the same if I were developing for macOS with how often Apple likes to make breaking changes.
The symlinking trick for .so files often breaks on Linux. Method parameters change, structs get altered, and you can quickly create working-but-unstable versions if you have a different version of the same program. The Windows way, used by Flatpak and Snap, of targetting known-good sets of libraries will work around that. The macOS way (AppImage) also works but doesn't allow for deduplication. It might, if the AppImage would be uncompressed and files would be extent-aligned on a modern file system, but in practice that won't happen.
In theory, Windows and Linux offer the same app installation flow as macOS. AppImage and huge .exe files can be moved around and deleted just as easily. Windows will let you do all kinds of things with desktop.ini, including custom folder backgrounds, and its native .iso support can offer a very similar mount-then-delete flow to .DMG files.
t43562 2 hours ago [-]
> macOS applications seem to just package every single DLL they need inside of their application folder rather than relying on the OS. I'd do the same if I were developing for macOS with how often Apple likes to make breaking changes.
That was almost what we should have done on the installer project I was working on because it was just too difficult to dance around it.
> The symlinking trick for .so files often breaks on Linux. Method parameters change, structs get altered,
I think its roughly orthogonal - any C/C++ based project is a huge pain in the backside when it comes to ABI compatibility because as you say changes that appear tiny can break everything. My major beef with DLLs is the way that they have a table of functions such that adding a new function can shift the indices of everything in the table. If they used symbols all would be well.
But as you say it's incredibly easy to break compatibility and not realise it even without that.
IshKebab 12 hours ago [-]
Yeah I remember the first time I had to figure this out. Absolutely incomprehensible, depending on the app you get. A lot of open source apps don't bother with a custom background and just have the two icons. Even if there's an arrow it's hardly clear if you're used to saner installation methods.
For a company that is supposed to be all about ease of use, this one is absurd.
And if you're wondering what Apple should do, if a .dmg file contains only an app and a link to Applications (or maybe some new flag set), when you double click it it should say something like "Do you want to install this app [Install] [Inspect disk image contents]". Very very simple.
50 minutes ago [-]
jedbrooke 13 hours ago [-]
This is a nice little archive of all these different installers.
I’d almost forgotten about all this madness since I’ve been using homebrew to install stuff for over a decade
isoprophlex 12 hours ago [-]
You get the program image from the web and you move it into your folder holding application?!
Having some custom wizard that's never the same fuck up your entire windows registry, write to wherever the fuck it wants on disk, now THAT is surreal
bni 12 hours ago [-]
This is one of my favorite things with the Mac. I feel it is very intuitive me moving the app to Applications, then just move it to trash if it sucks and it is completely gone.
setup.exe .pkg installers make me feel dirty because I hav enough control over how it will fuck up my system or not.
krackers 11 hours ago [-]
I think most of the complexity is around the concept of disk images. If the app was just distributed in a zip file (like many in fact are) then you just unzip it, and the application is right there. You can move it to /Applications if you want (and many apps offer this) but it's not necessary.
Disk images seem to be much rarer on other platforms, and are usually only used for images of optical disks. Even the concept of "ejection" can be confusing, especially since when mounted disk images appear almost identical to actual physical removable media. I'd like to hear the reasoning behind why mounting disk images isn't relegated to a vestigal "power user" feature by now, since it seems like zip files (especially in appledouble format) can serve the same needs for most normal user flows.
jeroenhd 10 hours ago [-]
The app icon approach only give the illusion of control. That may be worth something too, but whether you run a .pkg or a program, the app developer can do whatever they want with the permissions you grant it.
There is an advantage to being able to move a program to any locations and run it from there, and while the same can easily be done on Windows (just make one big .exe!), it's not expected for users to just move install directories around.
That said, programs break the same way: configuration pointing at wrong directories, permissions going wacky, you name it. It just seems to go wrong less often on macOS because of developer expectations.
wilg 12 hours ago [-]
It's truly a terrible UX decision that Apple's left in place because of apathy. (And presumably thinking someone wants to install software through the Mac App Store!?)
They should offer a first-class way of "installing downloaded apps" and push developers to use it. I would say use an Installer package but I can't remember if there's issues with it not being a single file. So a zipped installer package. And then make that not have an unnecessary 12 step wizard.
So, you download a file, and it's something called an "image" which opens in Finder like you'd inserted an external thumb drive. Fine. You open the image, and inside is... Your own Applications folder? Wait, how can the file I downloaded contain all of my apps?
This kind of indirection is natural to developers and other advanced users: the file you got from the internet doesn't really know about your Applications, it's a link to a generic system location that gets resolved by Finder. But for less advanced users it's oddly circular: this virtual disk that came from the internet has my data in it. It's something that never happens with an actual thumb drive.
They just see “oh, I drag the app to applications”. The main issue I’ve seen is that people try to run the .app from the disk image, or forget to eject the image after moving the app.
Well designed dmg drag-drop style deployments will actually put some background artwork with arrows and text instructions telling the user to drag and drop into Applications.
Still, I think .pkg package style installers are the most intuitive process for non-techies, especially those coming from windows where MSI and install wizard style exes are common.
Nope. It's an app that is simply the .app bundle, skipping the whole historical footnote of a .dmg completely. Once you first run it, it asks if you want to move it to Applications, and promptly restarts from its new location.
The disk image could put a background image with instruction visual, decide the visual placement of icons. Applications could include folders with brush packs, example documents, user manuals and such.
The fact that it was a disk image could be seen as confusing if you read that closely, but if you ignore the file type it was simply an icon that you could double click to open a piece of installer UI.
But this really confused me when I first started using macOS as well. You're just expected to know that the applications folder in the disk image you just downloaded isn't actually inside of the disk image.
When I first opened a .dmg, I thought the arrow symbolised some kind of progress bar and waited for a moment to let it do its installation. That didn't work, so I copy-pasted the folder into my Applications folder manually. When I later opened a different .dmg that had instructions about how I needed to drag and drop myself, I actually realised what I needed to do.
i mean its neat from a minimalism perspective, but the decision to not ship with a regular installation UI in OG macOS X came with the tradeoff of not cleanly _uninstalling_ software either. config files etc were always left over.
but i guess - as Apple keeps locking down good old macOS X in favour of forcing software to go through the Apple Store this is going away as a sideeffect?
That's no different than windows or linux. The uninstallers leave configuration bits all over the place be it in the registry or config folders.
As someone originally coming off of RISC OS[1] way back when, the mac way is closer to intuitive than the windows way, while Linux's approach of splitting files across the entire FS so that you can't possibly find all of them is "The Real WTF".
(Nixos is even further from that original intuition in a lot of ways. Oh for the days of drag-dropping the !App dir to wherever you happen to have space; and maybe dragging it to !menon if you needed to actually find it back )
[1] The operating system that came with a thin welcome booklet with reassuring pencil art explaining how to hold a mouse, and what the difference between a click and a doubleclick was. [2]
[2] https://archive.org/details/risc-os-5.28-user-guide/page/6/m... Oh wow, still exists in the RISC OS 5 manual. This kind of manual used to be famed : Eg. Chapter 1 introduces what a desktop is; Chapter 2 explains the mouse; 3 Explains the keyboard ; 4 explains what a window is. Give a motivated naive user this guide and there's a small chance they might actually grok the thing when they're done.
You can drag the app to a different location. I have an entry level mini 8GB/255 GB SSD with 1TB external SSD. Everything goes on the external. There are only a handful of apps that insist on being installed in the system Application folder. Even had xCode running on the external.
Uninstalling is supposed to be as simple as moving the app to trash but often that leaves a load of stuff behind that no one tells you about.
Example of this would be the ability to open a can of soda. You can do it because you saw someone else do it. Now give the can to an Amazon tribe that never saw the can nor how to do it before.
Windows uninstallers also do not clean up the system and leave trash everywhere. The registry is often the most litter filed area. Even Microsoft's _cleanmgr.exe_ does not fully clean your Temp folder and a manual removal is needed.
As a user of a number of systems; Mac installation is the cleanest and most simple. Linux's closest would be AppImage packaged applications.
Windows is one of the worst because often they are un-scriptable and require the end user to always interact. Mac and Linux can script their installations with ease. I'm saying this as someone that needs to manage systems which are air-gaped and service by others.
Also, AFAIK, this mirrors how command line utils would work.
- You used a trial version of a software, or other time limited license, and want to keep the output from that around.
- You are upgrading and that particular app requires uninstalling the old version before installing the new version
- You run out of disk space and want to uninstall a game but don’t want to lose you’re progress
That’s just what immediately comes to mind but suffice to say any workflow will have legitimate counter examples.
To be honest, I think the way Windows handles uninstalls is shit too. I don’t think either desktop OS has got it right.
Their respective app stores are an improvement on the status quo. But unfortunately they turned them into an ad riddled, proprietary mess that is more designed for their benefit than the end users.
Brew and other MacOS package managers are a testament to this. Package managers crafted with care around the user needs is always going to be the way to go.
This highlights something that's been a creeping issue for at least a decade if not longer: both MacOS and Windows are not built around the user anymore, for different reasons.
Windows is easy to see, it is now an OS as a service where the user is exploited right below the comfort threshold that will make them abandon the system (although for many this threshold was crossed long ago).
For Apple it's not as immediately obvious, but their forced obsolescence through constantly shifting requirements and tooling means that nothing lasts very long in the Mac ecosystem, you always have to upgrade, as a consumer and as a developer, rebuild, refactor, push updates and eventually be forced to replace your hardware. So you are basically caught in a neverending game of catchup and Apple is always a step ahead of you, by design.
Booting up almost any flavor of Linux is just leagues ahead in terms of simply letting you use your computer tending to your needs.
Since then I also read dmg as damage :)
Same for uninstalling. Move to Trash and poof, unistalled.
There is no standard way to install stuff, so neither MacOS nor Windows deviates from something. For all the bickering about it here in the comments, no one proposed an “ideal” solution to install a program on Mac.
That removes most of the program files, but there is no chance for the program to run any cleanup process in the mean time. Library Support, .cache, and all other kinds of remnants remain and have no way of getting cleaned up without manual user intervention. It's like hunting down broken uninstaller files in Windows 98 all over again.
The places that need cleaning up after uninstalling a program:
Or possibly: And possibly others that use UNIX-style .config/.cache rather than the macOS defaults.I do like the "folder as an executable" approach macOS has, but the way the ecosystem goes about program management isn't great. Storing caches and data inside of the app directory for applications installed to a user folder (not the global Applications folder, which would require administrative permissions) would go a long way. Entries in all the other folders could just be symlinks that don't take up any space after you trash a program.
As for installers, macOS comes with its own native install wizard format, akin to Windows' MSI installers. This seems to be the default way of installing programs that need things like drivers to function correctly.
On the other hand, I never had disk issues because of randon files inside the user directory, nor do I install/uninstall programs that often. And this I would venture to say is the same for most of computer users: Office, IDE(s), a browser or two and some utilities.
I have for example Goland, Postman, Chrome, Firefox and Wireshark. And some homebrew stuff like ngrok & friends. I spend most of the time in Chrome doing emails and using Confluence/Jira, Google Meet.
On macOS that mechanism is simply impossible if you install the app using the drag&drop method.
Sometimes. Many apps do clean up after themselves.
macOS has similar multi-step prompts for some programs such as Microsoft Office, Python, FUSE-T, VeraCrypt, etc:
click [Continue] [Continue] [Agree] [Continue] [Install] enter password [Install Software] [Close]
Then deal with the various popups in the upper right portion of the screen relating to Login Items & Extensions Background tasks. Dismiss them by clicking [x] several times or drill into them to adjust App Background Activity sliders etc.
I also never understood why some apps put the x.pkg inside of a x.dmg which makes people perform another click. Seems redundant to do that. I can only guess is they just want the customized background image of the .dmg instead of the plain skeuomorphic cardbord box icon of the .pkg.
The Windows way is inherently clearer than what Mac does now. You always open what it gives you, and you don't need to be told to do anything else. Also, move to trash doesn't exactly uninstall a Mac app right now.
A myriad of „uninstallers“ exist but these are all third party and rely on crowd wisdom.
Its so idk redundant
A UI way to install is only a fallback.
I'll leave it to the reader to decide if that means the process is "intuitive".
macOS is on the surface the same. But seeing this causes a feeling of a deep gulf. How can we or Apple regain it? That special sense of value and care in the OS and its app developers?
Also Apple: I bought my son an old refurbished iPad for watching Netflix on long drives. But you can't install Netflix! The OS is too old. What's the workaround? Simple, if you've previously installed a Netflix on another device you can "restore" it, and then Apple will let you install the old version. On the old OS.
Of course I didn't have an old Netflix installation so I went to install Netflix on my work laptop, but there is no Netflix app for laptops anymore! Finally, I got it working through Family Share after an hour of tedious effort. This may be more Netflix's fault than Apple, but why would an OS give that power to a 3rd party in the first place? What sense does this make?
It reminds me of NextJS where there is some minor niceties at the cost of magical thinking that you may need to move heaven and earth to circumvent in order to accomplish the most basic shit.
Also senior citizens might have no idea what they’re supposed to do with it, as I’ve seen, so could be more accessible. (Maybe that’s a feature if it’s a junk app.)
https://unsung.aresluna.org/_media/as-a-windows-user-its-a-v...
On Windows, it’s not perfect because it’s ultimately cooperative, but at least the developer of the application can also configure how it should be uninstalled. If you mostly stick to “reputable” applications, you know they would have gotten so many complaints about random things they leave behind that they slowly fix their uninstaller. Also you usually get the option to completely uninstall or keep data files, etc. Though it’s not universal. Uninstaller apps like CCleaner used to be more popular, but I hardly hear about these things anymore and usually advise against them.
On Linux, the story is slightly better as you rely on your distro package maintainer to configure the right uninstall logic. Removing random config files in /etc/ or data files in /var/ or systemd units, etc. Usually maintainers get it right as long as you stick to those feeds, and when something is missed it’ll get fixed eventually.
On Mac it seems to be either google it to get a list of locations to clean (which is what I do), or just delete the folder and ignore the random files or use CleanMyMac ($19.99) or CCleaner ($12.99) or MacAppBeGone (that’ll be $8.99) etc. luckily you can try to stick to homebrew and the App Store, but it’s limiting.
But that is quite independent from the creativity people show in these install workflows. You could have both a cool .dmg and a proper uninstallation process (but we don’t, for the most part).
It’s a classic cloud vs disk debate about where and who should persist and own the data. Lately I think it’s kinda refreshing that it’s entirely on your disk and up to you.
It's not universal, but at least it's possible. Not having to hunt down random directories (or buying a program to do it for you) also has advantages to user control.
It autodetects when you delete an app from the Applications folder runs a quick scan and suggests which other files you might want to delete (So you might save savedata or settings if needed)
[1]https://freemacsoft.net/appcleaner/
Don't knock on this feature, it can be a lifesaver if you've lost the license info. When you reinstall, sometimes the app can retrieve the license from old files.
https://github.com/alienator88/Pearcleaner
>if you've lost the license info
Or used up your free trial, you get a reminder it’s time to buy!
In the Classic Mac OS days a decent chunk of software (especially shareware/indieware) didn't have an installer and was just a folder you copied from a floppy disk or CD, which this process kinda mimics. You're just opening a file instead of putting in a disc.
The click-and-drag to the Applications folder step is also odd. Presumably the user wants to install the app if they've double-clicked it, so instead of kludgily hacking the file manager (oof!), why not simply prompt "Do you want to install [application name]?" [OK]/[Cancel]? How would that not be clearer? (Can you even install an app via the keyboard alone with that interface? I assume you must be able to, but it's certainly not intuitive that you could tab and enter your way to installation happiness.)
I appreciate that TFA is all about the creativity that can be added to this step, but it seems to me to be poor UI/UX design to allow so many possible ways of doing something so fundamental as installing an application. Sure, it's cool and fun if you're young and creative; but likely confusing as all hell if you're older and less-computer-literate.
Some developers have gotten lazy with this and expect users to just know. As a result I’ve seen many people running an app out of the dmg file itself for a long time, then they wonder why they have a bunch of stuff mounted.
Of course copied binaries can cause plenty of trouble too, but I have much less of a reason to give an installed program admin privileges than I do an installer.
The MAS version has only one of those and it works.
In our case, the CLI is part of a data sync system, so it does need a "special" once-per-hour check for new data (keeping local and mobile in sync).
I've actually been surprised how strict Apple is before it will happily let signed code run. But the average user (including me previously) doesn't know that. I think trust comes down to being clear up front.
Note to self: Add extra details/options to installer (WYSIWYG)
I prefer this one: https://mothersruin.com/software/SuspiciousPackage/
But I’ve used both at different times with equally great results.
Keep in mind that a package installer becomes obsolete and nonfunctional when the code signing certificate expires, unlike an app.
It could have been Netflix or Youtube a decade before, if only there had been, you know, any good show to watch on it.
That was the first "mass market" piece of software I worked on, a good 20 years ago now, and it brings some memories of ye old time...
MacOS experience is t-e-r-r-i-b-l-e and it's getting worse on each release.
People who like macOS experience for me either suffer from Stockholm syndrome, or nostalgia about lost macOS 9 base. Or simply have no idea there's something better!
macOS today is not macOS at all; it's a rebranded NeXT computer.
It's generally insane. They have mocked Windows in the Vista era for bringing UAC, but now they're much, much worse.
Their file security API breaks auto-updates of popular applications. AV vendors have to use an API that forces to block access to new files and release it "at unspecified time in the future".
Installing an average application on macOS generates so much notifications that user doesn't even see them anymore. It's like ads on a commercial TV channel, nobody wants this info, but it's being served over and over again.
Developer experience is dreadful. It's "our way, or the highway". Setting up a CI worker box on macOS is something I wouldn't wish for my enemy.
A good eye opening excersise of how much macOS gets in the way is to install sshfs.
Don't tell me desktop linux. It's not fit for purpose and doesn't run the software I need it to run. I do not want to run Linux. I, frankly, do not like what Linux evolved into. The desktop linux of 15 years ago was sort of acceptable. Modern systems infected with pulseaudio, systemd, and whatever the fuck gnome and kde have turned into are not. I'd rather run Windows, and I hate Windows.
Ultimately though, package managers (whether it's apt, dnf, Steam, some app store, etc) are the best for most people, myself included.
Also I think you're cargo culting. You have problems with existence of systemd while praising an OS that doesn't even allow you to disable transition animation delays when changing virtual screens. It's not logical.
Btw, pulseaudio is old news, now it's pipewire.
* From a windows CLI type
and all environment variables will be listed along with their values.* From a windows CLI type
and all environment variables prefixed with "app" will be listed along with their values (eg: APPDATA ).* With path location variables, open up file explorer and enter %appdata% in address bar and press enter / click "goto" arrow. File Explorer will expand the variable and show the expanded directory path and contents.
The closest analogue to the registry on macOS are the ~/Library/Preferences and /Library/Preferences folders.
It's only the program that is used to browse is different.
It's like you don't use explorer but regedit. It's the only difference.
On macOS it's not like you can always type what's inside the plist files with a text editor, sometimes you need to use 'plutil' anyway (if a plist is binary). So to browse Application Support you still often need thirdparty software anyway.
Years ago I did a small project that mapped windows hive (registry) files as a filesystem through fuse on linux. It mapped to a filesystem concept nearly flawlessly.
edit: can't reply anymore for today ('posting too fast'), so i just reply here: What is a file if not a key/value entry in a directory? Anyway, you can put custom binary data in registry, one value type is just "binary". But you shouldn't! Just like in Application Support - you can but you shouldn't. Registry just enforces it more. Entering regedit also requires to elevate it if you want to change system settings (HKEY_LOCAL_MACHINE). Changing user settings doesn't need elevation (HKEY_CURRENT_USER).
Also, Mac plists have two formats, xml and the non-text kind. Now mentioning that, I kinda hate both formats.
What's surreal to me is the Windows Installation process, the concept of an installation process that allows any app to have complete unsandboxed access to the files of other applications. In the year 2026
At first the idea of dragging a file seemed unnecessary, I would have thought it's better for the installer to do that automatically, but now I understand that the user is in control, and the best installation mechanism is not the one with less clicks, users are expected to grant permissions to applications they control, and in this case they are showing the user where those files are, and that the installation is nothing more than moving a folder around.
> teaches you that the app is just a file that you can place anywhere, or trash when done.
It's actually kind of opaque and not obvious at all, how exactly to uninstall apps on a Mac.
It's not the fault of MSI per se, although its concept seems utterly frightful to me, but the way DLLs work and are registered and where you have to install them etc. When your app requires an older or newer MSVCRT etc. Also...the registry...something else that makes good old UNIX text file editing seem good to me.
I always thought that libsomelibrary.so.MAJORVERSION.MINORVERSION with symbolic links from libsomelibrary.so.MAJORVERSION and libsomelibrary.so allowed one to create dependencies that made sense - more or less specific as you chose. It also allows different versions of the same library to exist in the same directory such that one is less likely to break existing software when installing something newer (or older).
To be fair it might just be the way Windows tries to keep compatibility for the ages that makes it super difficult. I do think that you tend to get similar outcomes from similar assumptions/requirements and compatibility was indeed very very important till the internet became good enough to offer everyone easy upgrades.
I'm not a big snap or flatpack fan but DMG seems rather in their class - making things simpler. It might be easy to run an MSI after someone has burned many hours testing it to get it to work everywhere but to me it's a non-simple architecture that is made to work by extreme effort. I'd rather a simpler architecture that open source packagers could manage more easily.
As an example, I tried creating an Ubuntu package recently - a plugin for GNU Make that adds some useful functions.....that was SO hard - worse than any MSI experience I ever had - and I gave up. There were millions of confusing instructions and none worked properly. I couldn't work out which way was up or down - I don't know how people do it.
On Artix (an OS which is a little harder to install than Ubuntu) it is an absolute dream to create packages - exceedingly so. It might be that they aren't the greatest packages in the world but something that can be developed easily and got working can also be improved easily.
MSI's biggest mistake was probably granting developers the capability of invoking any program they like. The format was originally designed similar to Linux packages. Installation steps were atomic and reversible. If something went wrong (i.e. you ran out of disk space halfway through), the installer can undo every change step by step so you can try again later without overwrite prompts. Unfortunately, adding the ability to call executables means that atomicity is usually lost.
macOS applications seem to just package every single DLL they need inside of their application folder rather than relying on the OS. I'd do the same if I were developing for macOS with how often Apple likes to make breaking changes.
The symlinking trick for .so files often breaks on Linux. Method parameters change, structs get altered, and you can quickly create working-but-unstable versions if you have a different version of the same program. The Windows way, used by Flatpak and Snap, of targetting known-good sets of libraries will work around that. The macOS way (AppImage) also works but doesn't allow for deduplication. It might, if the AppImage would be uncompressed and files would be extent-aligned on a modern file system, but in practice that won't happen.
In theory, Windows and Linux offer the same app installation flow as macOS. AppImage and huge .exe files can be moved around and deleted just as easily. Windows will let you do all kinds of things with desktop.ini, including custom folder backgrounds, and its native .iso support can offer a very similar mount-then-delete flow to .DMG files.
That was almost what we should have done on the installer project I was working on because it was just too difficult to dance around it.
> The symlinking trick for .so files often breaks on Linux. Method parameters change, structs get altered,
I think its roughly orthogonal - any C/C++ based project is a huge pain in the backside when it comes to ABI compatibility because as you say changes that appear tiny can break everything. My major beef with DLLs is the way that they have a table of functions such that adding a new function can shift the indices of everything in the table. If they used symbols all would be well. But as you say it's incredibly easy to break compatibility and not realise it even without that.
For a company that is supposed to be all about ease of use, this one is absurd.
And if you're wondering what Apple should do, if a .dmg file contains only an app and a link to Applications (or maybe some new flag set), when you double click it it should say something like "Do you want to install this app [Install] [Inspect disk image contents]". Very very simple.
I’d almost forgotten about all this madness since I’ve been using homebrew to install stuff for over a decade
Having some custom wizard that's never the same fuck up your entire windows registry, write to wherever the fuck it wants on disk, now THAT is surreal
setup.exe .pkg installers make me feel dirty because I hav enough control over how it will fuck up my system or not.
Disk images seem to be much rarer on other platforms, and are usually only used for images of optical disks. Even the concept of "ejection" can be confusing, especially since when mounted disk images appear almost identical to actual physical removable media. I'd like to hear the reasoning behind why mounting disk images isn't relegated to a vestigal "power user" feature by now, since it seems like zip files (especially in appledouble format) can serve the same needs for most normal user flows.
There is an advantage to being able to move a program to any locations and run it from there, and while the same can easily be done on Windows (just make one big .exe!), it's not expected for users to just move install directories around.
That said, programs break the same way: configuration pointing at wrong directories, permissions going wacky, you name it. It just seems to go wrong less often on macOS because of developer expectations.
They should offer a first-class way of "installing downloaded apps" and push developers to use it. I would say use an Installer package but I can't remember if there's issues with it not being a single file. So a zipped installer package. And then make that not have an unnecessary 12 step wizard.