I started developing for my Mac a few weeks ago and I'm blown away by how easy it is to make an app that feels Mac native and includes quality of life features like CloudKit sync across all your devices. It's become clear that most companies don't give the tiniest shit about any of that.
It's obvious why they wouldn't give a shit about that, though - the Mac is not their main focus. Most companies that make software for PCs are obliged to make at least Windows and Mac versions, and to build an application "The Apple Way," using SwiftUI, and things like "CloudKit" etc. would mean a whole dedicated Mac-experienced design team and Mac-experienced engineering team. This would result in an app that fundamentally works and behaves differently than their app would on Windows, because these operating systems have different conventions and standards.
Now, that would make people like you and me very happy -- but consider it from the big company's perspective. Now instead of supporting a piece of software which has a single set of features and a single consistent (and 'braaanded,' eyeroll) Electron UI (and, mostly, a single set of bugs), you're supporting two completely different apps with completely different UIs. Building a new Important Feature means building it from the ground up twice, and QAing it twice. And customer service needs to be trained to walk customers through both of these different apps which work differently, and some of the customers are so confused, they can't even tell you if they're on a Mac or not.
25 years ago, before cross-platform frameworks existed (other than Java, which wasn't often used to these ends then), that was sort of how they had to do these things, and in practice, the results were either that a ton of hardware shipped with no Mac support whatsoever (wasn't worth it) or with a bare-bones Mac version on the CD that was incredibly low-effort, and clearly still written by people who barely knew how the Mac was meant to work.
This very real phenomenon is why we are cursed with cross-platform everything. The difference between a single cross-platform codebase and even two dedicated good-citizen apps is a vast chasm.
>This would result in an app that fundamentally works and behaves differently than their app would on Windows, because these operating systems have different conventions and standards.
Not always the case. Sometimes the gui app is just wrapping some script written in a general purpose language. Button just calls a function. Yes writing the function to draw the ui button element might take a different syntax, but they might go on to run the same underlying function.
At least that is how I like to write my gui software.
Mac apps often do various things on your computer. Just because you dragged it to Bin, doesn't mean there are no leftovers on your computer. I'd prefer proper uninstaller any day.
If you are aware of this not hard to manage. Grep. rm -rf. Done. Usually its pretty tiny folders at least. Heavier stuff usually software makes a directory under Documents. Kinda nice in a few cases having it set up like this. For example I can delete the app but preserve my config. Drop the app right back again and no setup its turnkey and works.
> Mac apps often do various things on your computer. Just because you dragged it to Bin, doesn't mean there are no leftovers on your computer. I'd prefer proper uninstaller any day.
I think I know what you're talking about. There are likely files inside the ~/Library/Application Support/ or ~/Library/Caches/ folders for example.
What is the proper, Apple way to make sure these get deleted when we delete apps? Because I fear there is no universal solution here. There are some files that an app creates that some of the time I would probably want to persist uninstalls. But then these files should be in a user home directory, not in application support according to XDG, right? I feel like the OS should detect dragging of an app to the trash can and clean up its app support folders? I don't think it does this today but I think it should.
It wouldn't be hard to display "remove configuration and cache files?" modal during uninstall/trashing process. But it would be hard to go against own simplicity of platform usage idea - that's the problem.
KDE's Discover after you uninstall a flatpak application shows small infobar (still really easy to miss) saying "appname is not installed but it still has data present." with "Delete settings and user data" button.
But then, all sort of software even on Windows leaves some kind of traces of own presence.
In a perfect world we'd have a standardized application uninstall procedure - either by dropping icon on trash (which is something still many people do - especially on Windows) or by bringing similar to mobile solution with "x" on longer click. All of this controllable by options for advanced users including optional configuration and cache files removal.
They certainly can clean everything after them. And I'm pretty sure that many of them do. When macOS user drags application folder to the Bin, application does not have a chance to clean after itself.
Just because some Windows uninstaller are bad doesn't mean that all of them are bad, or that uninstaller concept is bad.
Now I'd welcome for operating system to be built in a way to let user to delete everything related to the application. Maybe android or ios are built this way, but not macos.
What's new with Pearcleaner? I don't see a comparison chart in the GitHub repo, and I don't care for features other than completely uninstalling an app.
This problem has been around for decades. An application installer doesn't just copy some files to a few directories. It may put them in hundreds of different places. In addition, it adds entries to the registry or other system files. Even the best uninstallers or cleaners miss something when deleting the app.
This is one of the many issues my side project is designed to address. Imagine if installing every application meant just dropping it on the computer. The software 'package' was just a list of data objects the comprised all the files, config settings, etc. Needed to run the app. All these objects would be copied to the storage drive(s).
Imagine further, that the operating system did not have a central registry. Instead, all configuration was managed via a set of configuration objects, spread all over (preferably in the app folders). The configuration manager was just a program that could find every configuration object and make them appear to the user (and the OS) like they were in a unified file.
If a configuration object was copied anywhere in the system, it looked like its contents were just appended to the configuration store. If you deleted an object, all its settings just disappeared.
Uninstalling an application would mean just deleting all the objects in its package. The files would be gone and any configuration settings with them.
This is just one of the features my 'file system replacement' project is designed to handle.
Haiku package system has an unparalleled installstion, deletion, boot into previous states, data integrity (read only packages) and dealing with conflicting library policy. Its a technical crime that other systems are not copying Haiku packages … they’re several decades behind. IOS is half way there …
"Does it have a way to uninstall, and does that uninstallation clean every application artifact?" is such a great litmus test for just how much a software company actually cares about having a proper finished product that respects the user. Nobody forces a company to do it, but when they don't do it, you can probably bet that they're cutting corners and disrespecting the user's machine in other ways, too.
It's like "Do you return your shopping cart to the cart storage or leave it in the carpark?" You're allowed to just shove your cart away and drive off, but people who do that are highly probably assholes in other ways, too.
In the file menu of the installer, there is generally an option to see all the files it is placing on the system with full system paths. I generally note this down so I can make sure to clean things up completely if/when needed.
For app that just get dragged into the Applications folder, they end up doing all this additional file creation on first-launch instead of via an installer. That actually makes it harder. For those I tend to search the ~/Library folder for the name of the app and the company that made it, hoping I find all the remnants to delete. There are apps, like AppZapper and AppCleaner, which try to automate this process. I still think it’s ridiculous that Apple never solved for this. It’s one of the reasons I always do a manual migration to a new Mac. It feels like the only real way to clean things up.
> I still think it’s ridiculous that Apple never solved for this.
I think that problem, in general, is unsolvable on the Mac. The OS cannot know whether a file that an application creates is a user file that should be kept on uninstall or an application one that, maybe, should be deleted on uninstall.
(Maybe because Apple’s guidelines say (or at least used to say) uninstall ers, if you have one, should keep preferences files around, in case a user reinstalls the app later. Also, applications may ship with files (e.g. fonts, sounds, picture libraries) that users may want to keep around)
> For app that just get dragged into the Applications folder, they end up doing all this additional file creation on first-launch instead of via an installer
For quite a few things that an installer can install, applications cannot do that, as they want to install them into protected directories.
I think most of the leftovers whose locations you cannot gauge from looking at the file list in the installer are for caches, preferences, logs, etc.
I'll have to check that installer trick the next time I use one.
Isn't the "Receipts" folder that so angered OP kind of that same thing? I thought those included the list of files installed.
In general, I think some worries about removing "every trace" are overblown, though. The receipts, for instance, are inert and they're not filling up the disk or consuming RAM.
Of all the things Apple does in the name of "security" it's funny to me that they've never even tried to build uninstallation functionality. Even though a majority of apps with "Installers" use, not arbitrary installer executables like Windows, but .pkg files that open with Apple's "Installer" app. That means it's Apple's code placing most of those files in place, and even if the install includes a "script" portion, it seems like a solvable problem that Installer.app could monitor the files being added or changed by the script process, to at least let you view a log of what happened if not reverse the changes.
There are two cases: I am uninstalling because I never want to use the app, or I am uninstalling because I know I currently don't need the app and will reinstall after 6 months when I do.
An example of first is a trial of an app but you don't like it in the end, an example of the latter is a game that you might want to play with the same settings later.
Now, I want the option. In the first case I don't want these inert files taking up disk space and in the second I want to have those files.
Almost never, indeed, so you need some 3rd party trash utilities with databases and heuristics.
Though that's also on the gardener and his bad OS design where forced compartmentalization is's trivial, the weeds will never want to root themselves out!
> When a user mode application on the Mac doesn't just allow you to drag the app into the applications folder to install, it's a red huge red flag
But a lot of Apple first-party applications require installation. Packages for me and not for thee.
As do Chrome/Edge/Teams/Etc
It's 2026 and Apple still doesn't have an equivalent to MSI + the Add/Remove Programs control panel Windows has had for 30+ years.
Windows always saves a copy of the uninstaller package stub so if you trash the media you can always nope out (usually—unless the developer went out of his way to break it).
[ Thank you for "PartitionMagic" - crucially important for home / personal computer users, at least in my own history. ]
And, I wonder if a (corporate) development organization's overall cultural friction around critical / negative feedback -- in this case integration issues in the technical sense of pulling together modules built by subteams to compose a final product -- could be worth investigating when challenging metrics like the above are identified?
This "18 steps" seems like a problem. And I wonder if it's a prioritized concern at SAM.
SNARK: The "magic" could be how corporate culture is communicated to users merely through usage of Samsung Magician.
Thank you and to all the others who remember and liked PartitonMagic. It makes an old programmer feel good to know that something he worked on 30 years ago made a difference.
BTW: I am currently working on a hobby project called Didgets. It is an object store that does a lot of cool file system stuff and relational table manipulation and analysis.
It is available for free download at http://www.didgets.com
The install process is to unzip the downloaded file to a directory. The uninstall process is to delete that directory.
PartitionMagic was one of the first programs to make me feel like I was in control of my computer. I don't think about it much but looking back it was an important part of my development as a technologist. You made a difference in lots of lives I'm sure!
What a blast from the past. Partition magic was a huge part of our journey discovering and loving computers here with my friends. Hello and thank you from France !
It was pretty important at the time to make room for dual-booting Linux. Linux setup tools couldn't do it back then, particularly shrinking FAT let alone NTFS filesystems. PartitionMagic made it super easy. It felt slightly wrong to need a Windows software to install Linux, but great tool.
I joined the startup making PartitionMagic after I saw a prototype. I had just wasted another half day repartitioning my 80MB hard drive so I could dual boot OS/2 while working at Novell.
You were competing with Norton Ghost at the time IIRC. Partition Magic was an amazing piece of software. It was so good when you explained “called Partition Magic” I was like “called”? It was so clearly the best of its kind it didn’t even occur to me that these years later people wouldn’t know of it, it felt like reading “I worked on a search engine called Google”. Anyway thanks for the great software.
I mainly mentioned it that way because once the company (PowerQuest) was bought out by Symantec, the product was mostly abandoned. Unlike Google, most programmers younger than 30 have never heard of it.
Thank you for PartitionMagic. In the late nineties I cut my teeth repeatedly building and breaking windows PCs. PartitionMagic was a core tool. I regularly see its echoes today in GParted.
Partition Magic was among the first utilities recommended to me by my more experienced water I got my first PC. It served me well for many years since!
I remember software, tools and some games shipping like this forever, typically they have a "portable" label slapped on them, bet you can find Windows software/games still shipped like this today, if you look for "-portable" or "-archive" rather than "installer".
One quick example, offers an installer or a ZIP archive, the "installation process" for the ZIP archive is basically "copy files out from archive && ./executable", installer does a bunch of other stuff: https://www.openttd.org/downloads/openttd-releases/latest
Sure, but it was (and still is, in some circles) relatively uncommon. I wouldn't claim "that was never the case", unless if you're only talking specifically about DOS I suppose.
It still is for a lot of Mac Apps. You download a DMG, and you get somethinglike [0] where you drag the icon over, and it installs. The last app I uninstalled also removed the matching Library Support folders, which was neat!
On a similar note, I wondered if my week Mac still called the main volume “Macintosh HD”. Yup. When is the last time Apple marketed their computers as “Macintosh”? And when’s the last time they sold one with a “hard drive”?
> I shut down my Mac. Held the power button. Booted into Recovery Mode. Opened Terminal. Ran csrutil disable. Rebooted. Opened Terminal. Deleted the kernel extensions. Ran find to confirm they’re gone. Shut down AGAIN. Booted into Recovery Mode AGAIN. Ran csrutil enable. Rebooted AGAIN. All this just to delete four dead files and their mirrors from a disk utility.
This one is entirely on Apple. It was Apple who decided that "root isn't good enough" and that you, the user, shouldn't be able to administer your own goddamn system as root, without performing backflips while singing Happy Birthday.
But the system is proprietary, it's not yours. I don't get it with apple users. It's fine to purchase apple devices, they are gorgeous, well built, stellar performance and the UI is nice. But they never promised to keep an open system and to give you access, so why expect it? Even if you had an specific liberty with the system before, you were never entitled to that feature you lost after an update because the system just isn't yours.
Yup. I leave it alone. As much as it’s a hassle every 2 years or so when I need to do some voodoo on my laptop, it’s even more of a hassle for potential attackers. For me, for my risk profile, I believe it has a good return on investment.
This is 100% by design and 100% a good thing. “root” aka uid=0 should NOT have unlimited privileges to permanently modify the deepest parts of the OS, as assuming uid=0 is done daily for routine operations. Modifying kernel level stuff should not be possible from this daily use privilege level. It’s an ancient holdover from unix time sharing systems that are approaching a hundred years old.
If you think it’s bad, you don’t know why it was built - google Chesterton’s Fence. You, the user, still have 100% ability to modify your system however you choose - if you first clearly indicate that you ARE the user, and not just some random-ass installer running under admin privs, which is a completely normal and common occurrence. A higher privilege level that is used to protect OS integrity is a wonderful thing. If you think there is a better or safer way to access it, please submit your suggestions to Apple, but don’t assume the guardrails around System Integrity Protection (1TR etc) are slapdash or unreasonable or poorly thought out.
Years ago I shipped a MacOS product. If you deleted it, you would get an error emptying the recycle bin (or force-deleting the application bundle if you did an rm -R to it.)
Why? Well, at the time Windows Explorer had an API for extensions, but MacOS didn't for Finder. We needed to add some menu items to the context menu, which on MacOS required reverse engineering Finder and injecting code into it. This then meant that Finder had an open file handle into our application bundle until you either restarted Finder or restarted MacOS. Then, as long as you didn't start our application, you could cleanly delete it. (Thankfully MacOS cleaned this up with the Finder extension API about a decade ago.)
Having gotten familiar with internals of both Windows and MacOS... MacOS has its own set of gremlins too.
Shell extensions are the single most common cause of Explorer crashes according to Raymond Chen.
When you realized that Mac OS X didn’t have an equivalent API, did you perhaps consider that it was for a good reason and that you should redesign your application to fit the conventions of the system? How did you conclude that your UI was oh so special that it deserved horking up the Finder experience for your users?
I don’t understand. Any MacOS Finder that had an open file handle into an application bundle runs on the Unix version of MacOS, and that allows deletion of open files (the inode stays around until the process exits), doesn’t it?
Or did/does the Finder check whether to-be-deleted files are open? Or did I forget how older Mac file systems behaved?
As a mac user for 10+ years that cycled about 7 macs for personal and professional use, I've used Finder about biweekly to click on the airdrop button..
I think the most obscene thing here is that macOS is now littered with permission prompts for camera, background execution, etc, but makes no effort to stop even industry partners from spraying the disk with dozens of files that can’t be removed easily.
That's because this particular sort of cyber security is merely theatrics with the goal of reducing user agency and increasing paranoia and vendor lock-in. The user facing friction is the goal. There will always be scams and viruses; the only practical outcome will be that you have less control over your computer, and Apple/MS/Google have more. See: Sideloading, Wayland, UWPs, iOS JIT, Windows XP and 7 still being used for accessibility
I often have apps on my Mac or iPhone that ask for permission to see my camera, microphone, contacts, etc etc that I don't want it to see. But I do want other apps to be able to access those things.
Being able to stop those apps from accessing before they do instead of trying to fix it after is incredibly valuable.
Sure some users just accept everything, but that is not an argument against them existing in the first place.
Those examples are very reasonable. However I also had Mac OS suddenly treat all m4a files on the system as potential malware and it blocked any attempt at opening them. Why did it do that? Because I checked the "set as default app" option, one minute after I had already opened the same file using the same application. The only way to open the files was by entering the password in the settings app each time - but re-setting the same app as default in the file's Get Info dialog got rid of that "protection" system-wide without any password prompts or extra permissions. I don't see how that was supposed to help with security.
We are moving away from the old world where you can trust the applications you are running on your computer, to today's world where you can't. The unix permission model is based on apps running as your user having access to every device and file you, the user, have access to. The threat was "other system users trying to access your files and devices" but now the threat is "applications you run trying to access your files and devices." OS vendors have been slow to adapt to this new threat model.
Even today, any rando application I download and run can read and/or write to any file on my system that I own and have permission to read and/or write, unless I go out of my way to run it in a chroot, a container, a jail or whatever. That's just poor security in a world where nearly every commercially developed application is an attacker.
macOS now implicitly sandboxes your Documents, Downloads, and Desktop folders. Random apps can’t read from those locations without triggering a security prompt.
To be fair, this is partly because of the internet.
If you install random apps and it destroys your PC, you can fix that by having backups. By contrast on work computers with important data, everything is supposed to be locked down and you can't install random apps. But then we started to increasingly connect devices to the internet.
Now gaining access over a smartphone essentially means being able to send payments via the banking apps. People are sending money with crypto so they are susceptible to simple clipboard swap attacks that are almost impossible for the user to detect until it happens. Then there is all the personal data that can be stolen that can be used for other attacks in the future.
Essentially the amount of damage you can take by losing access has increased much faster than the security devices meant to prevent.
To make matters worse, the security devices that are marketed to the average user tend to be exploitative rather than trustworthy (e.g. OneDrive).
It feels like instead of protecting users developers seem more interested in creating something that only does half of the job and then blaming the user for not knowing how to do the other half, so a comprehensive solution for the problem is never created.
I think there are a lot of things that users can be protected from:
1. Protect users from attackers external to the computer
2. Protect users from attackers who are other users on the computer
3. Protect users from applications run by other users on the computer
4. Protect users from applications they themselves run on the computer
5. Protect unprivileged (non-root) users from their own actions
6. Protect privileged (sudo/root) users from their own actions
OSes have been historically OK at 1-3. Not great or even good. There have been a lot of remote code vulnerabilities and local vulnerabilities over the years.
OSes have pretty much ignored 4 until maybe a decade ago, and are making token progress toward it, but I don't think many of them take it very seriously.
OSes have instead started to crack down on 5-6, which I'd argue isn't even the job of an OS.
> this particular sort of cyber security is merely theatrics with the goal of reducing user agency
Literally all security features carry the hazard of being used for oppression and being ineffective or counter-effective. That's how constraints work.
You need two things for a security feature:
- a segmentation under which a behavior is considered unsafe / unsecure (arbitrary, subjective)
- a technical solution that constrains the behavior of <thing> in <usage context> so that the aforementioned is mitigated
So something being "a tool of oppression" or "a tool of safety" is a matter of your alignment with that segmentation. And it being a theater or not is a matter of functional soundness given a threat model. So is its tendency to become counter-effective.
Constraints are just constraints. Whether they're effective and whether you're disadvantaged by them are both separate, independent matters. Empirical too.
I think we're on the same side in principle. The ability for people to interact with the wider world using general purpose computers that they fully control should be sacrosanct, and attempts to interfere with that such as remote attestation, app store exclusivity, and developer verification are evil.
Sandboxing apps by default is not that. The principle of least privilege is good security. If I vibecode some quick and dirty hobby app and share it with the world, it's better if the robot's mistake can't `rm -rf ~/` or give some creep access to your webcam.
The user should be able to override that in any way they see fit of course.
I think there's some controversy regarding that programs are limited in what extent they can access each other. You need sudo to do global hotkeys/keylogging, probably accessing pixel contents of other apps, etc. I suppose they mean it only prevents some specific threats while leaving open goals in other, even more easily exploited places
You often cannot even tell what the permission prompts are for. Sometimes they have generic names like a programming language is requesting something. Not sure what that’s about.
those are interpreters, the language is interpreted by a binary called `ruby` or `python`, for example, so that happens to be the process that's requesting the permission
My in-laws bought a Samsung TV, and I swore them off when I saw ads on the menu.
Then I stayed in Hawaii for a while and my rental had a Samsung washer… it had a DOWNLOAD setting on the dial so I could hook up the app… for… washing clothes… it didn’t clean anything, it had a minutes long process of shaking my clothes about to get a feel for them before it bothered adding a lady’s thimble full of water… nope. I had never missed my speed queens so much.
Then I was at a big box store and their Samsung fridge with a tablet on the door locked up and hung.
> It makes me wonder why did large companies are investing so much in web and putting web devs to write disk utility desktop apps?
It's because in these environments where corporate cancer has metastasised, programmers are not in charge of hiring programmers, or much of anything when it comes to decision-making really. HR is composed of people who are not programmers. They are looking to hire people with a list of shiny hot new web stack keywords on a resume, because they have literally no other concept of how to filter candidate applications. So they end up with a bunch of hot React devs and nobody capable of making software that is fit for task.
To a non-developer, every application they read might as well be a list of buzzwords. They cannot comprehend a word of it. Web stacks offer the opportunity to list more and newer buzzwords. Do I set up an interview with the person who lists "C systems programmer" or with the person who is a "full stack React, Tailwind, Next.js, Node.js, Electron, Docker, Kubernetes, AWS engineer seasoned in Javascript, Typescript, HTML, and CSS"? Well, the latter certainly sounds 10x more impressive. Into the trashbin the systems programmer application goes, they just don't have enough skills for an enterprise of our scale!
A C systems programmer can definitely make a list of buzzwords as well.
Also, let's say team A (10 C app/systems programmers) in a company asks HR to look for a C developer and HR comes back to them with 10 great web developers to be grilled by the engineers of team A - what happens then? Does team A shrug and say "welcome to our C codebase, we shall now rewrite it in tailwind or whatever because you are now here!" - I really don't see how it can play out
This supposes team A has 10 C programmers in the first place. By one means or another, teams of web developers are put together and made to do non-web-development projects, and now half of the Windows 11 userland is written in fucking React. I'm not the one making these stupid decisions, but probably they were originally hired to work on a web project, then later moved to a new OS-related project because they were the pool of idle employees available, and the fleet of React-in-the-OS programmers expanded as new hires were now being funneled directly into React teams working on OS projects.
Because they lack any better signals from within the company. At several places I have worked, hiring is almost fully detached from the groups that need the workers. They never could find good candidates for our teams. This kind of disconnect is what corporate cancer looks like, and it is endemic in big business.
If you're installing Samsung Magician for firmware updates, keep in mind that you can always update your firmware without using it and it's just as safe.
Is my understand correct that if I install an app with homebrew cask and then uninstall it everything should be gone, or not even with the homebrew cask would everything be uninstalled?
Man, that is actually hilarious.
Also reminds you that "Big Tech" doesn't necessarily build great stuff. They sell well, but are they built well? I don't even want to know how Microslops stuff looks behind the scenes :)
this reminds me, I still have an ancient version of iTunes on my old win7 box because something got corrupted at some point and now I can't uninstall it.
Not being able to simply remove a program like you would any other program is next level evil in my book.
I have a modern application from the macOS App Store in a permanent update purgatory. I dared drag to delete it, now it won’t update nor open. But an update is always shown available!
I empathize with many of the complaints, but some are a bit ridiculous. Using custom fonts in software UI is completely reasonable and normal, even if you don't like it.
I remember a time when UIs looked consistent, instead of custom-branded, and I still think the "completely reasonable and normal" state is the former, not the latter.
As I remember, that was before the rise of multi-platform, web-based and mobile apps.
You'd get Office 2003 and it'd follow the Windows XP style with lots of blue [1] and you'd get Office 2004 for Mac with the brushed metal styling [2] - and many applications only targeted a single platform.
Whereas in the modern age you get Slack for Web, Slack for Windows, Slack for Mac, Slack for Linux, Slack for iOS and Slack for Android - and it tries to be consistent across different platforms, instead of being consistent with different platforms.
We never pushed back on it when we could, because we thought WinAmp was sooooo cool, and now every application you run on your machine has a different look and feel and does not respect your desktop themes or customizations.
Each version up thru Win8 had a style guide. If you wanted the windows sticker on your box you made it consistent. Why would you want that sticker? If you did not have it it was much harder to get floor space at many of the big box stores.
It was at win8 where everyone just noped out and just started doing whatever they wanted. XP/2000 was the last era where anyone really cared.
Office 2007 introduced it, then it was implemented in Windows Live Essentials suite and in W7 applications. If I'm not mistaken LibreOffice got it not so long ago but with a different name to avoid any problems.
> What kind of fucking name is that anyway? “Samsung Magician” - for a disk utility? Who greenlit this? Who sat in a meeting and said “yeah, Magician, like it does magic”
I agree with all your points except this. Disk utilities have a long history of magic-themed names: PartitionMagic, Disk Wizard, Magic Partition Resizer, the list goes on. Samsung is doing whatever everybody else does and is naming their tools based on user expectations.
I hate how Mac OS makes it harder to delete than to add stuff to system folders. I forgot what was it, but adding something worked with sudo, removing it required disabling sip. Is there a reason for that?
The last time I booted to a windows drive on my prior desktop was to update the firmware on a Samsung NVME SSD drive to prevent premature failure. Was kind of a pain for even that task as I hadn't been running Windows for about a year at that point... in fact my insiders build of windows was so out of sync it wouldn't even update anymore. Meh.
Since then I've been using Corsair and WD Black drives, since Samsung has gotten overpriced and hasn't seemed as reliable the past few years. That application was one of the reasons.
I feel like the complaints here are…not really Samsung's fault?
> So I’ve dug around and found a cleanup script buried six folders deep inside the app bundle. Let’s try to run it:
> sh ~/Library/'Application Support'/Samsung/'Samsung Magician'/SamsungMagician.app/Contents/Resources/CleanupMagician_Admin_Mac.sh
> It ran. And my kitty exploded. Sweet kitty overflowed. Hundreds - literally hundreds - of lines of chown: Operation not permitted.
I mean, if you read on, you'll find that most of the things that were removed were from system folders that are owned by root? Presumably this was run without sudo…
> I rm -rf every Samsung folder I could find. The Preferences. The Caches. The LaunchAgents. The LaunchDaemons. The kernel extensions. The crash reports.
…that's where you put your stuff on macOS. Would you prefer that they picked some non-standard location you had to dig up?
> Package receipts in /private/var/db/receipts/ (Samsung left its receipts behind like a burglar leaving a bunch of turds in the living room)
This is again for your benefit so you know what was installed on your system
> Cached processes in /private/var/folders/7v/<your username hash>/C/ (yes, Samsung is in there too)
That's getconf DARWIN_USER_CACHE_DIR
> I shut down my Mac. Held the power button. Booted into Recovery Mode. Opened Terminal. Ran csrutil disable. Rebooted. Opened Terminal. Deleted the kernel extensions.
That's just how kernel extensions are on Apple silicon
* going into some internal directory and running a script based on the name
* deleting a bunch of directories
Seem like pretty bad ideas. Especially for software provided by a hardware vendor, which is probably a little clunky and inherently touches deep stuff.
But not including a removal script seems like bad form.
Edit: On the other hand, I don’t actually know for certain that the tool doesn’t have an uninstall script. Just, that the author didn’t find it. This seems worth noting because the author really wasn’t giving them the benefit of the doubt on anything, see all of the irrelevant complaints about animations.
I mean, there clearly was an uninstall script. It was in the app's Contents/Resources file, and it was called CleanupMagician_Admin_Mac.sh. Which means there was some intended way to trigger running it. Perhaps Samsung's instructions or their menu system weren't clear and they managed to hide it from him. But there most definitely was an uninstall script, and if he had managed to find the intended button in the interface, it would have asked for admin permissions and then done all the cleanup for him. The very cleanup that he complained about having to do by hand.
I think you are probably right. Although, with a name like that it could be some post-install cleanup of temporary files (which would explain why it was doing chown, rather than rm, although there are certainly other options!).
> I feel like the complaints here are…not really Samsung's fault?
I don't know man, the last time I uninstalled an app on macOS, all I had to do was drag it to the trash. If you find this procedure sane, then I don't know what to tell you.
Samsung is responsible of how users interact with their app, including its install and removal.
It's a .sh script, so he could have read it before running it. And when he saw "chown: Operation not permitted", he could have realized that the word Admin in the script was a clue that it needed, well, admin-level privileges, and he should try running it with sudo (after reading it first, naturally). I'm with you, I feel like this is someone who caused himself a lot of self-inflicted pain.
I mean, if he had read the script before deleting it (that's the third time I've mentioned reading the script, do you think I'm dropping enough hints?), he might have found a handy list of ... ALL THE FILES HE WAS LOOKING FOR. You know, all the 18 or so locations that he had to find by hand.
But nope, he didn't ... yes, I'm going to say it for the fourth time ... READ THE SCRIPT.
And what about for users that either can’t find this uninstall script or wouldn’t know how to read it or what the contents mean? While I think you do have a point, we also can’t assume that the uninstall script really would’ve removed all traces.
Those users have never heard of the word `uninstall` nor have any comprehension of what it would do. They will after a time, just buy a new computer because the old one is full up.
Also it doesn't take 18 steps to uninstall. The steps provided are the steps he took stumbling around trying to remove every trace of it, but it is in no way the optimal method.
Absolutely agree I hate that software. Last I remember I was trying to upgrade firmware I think of either a usbc drive, but could have been some m2 nvme drive via usb4.
Software looked so nasty that I think I managed to get it somehow working in a VM for firmware update.
I recently tried to install Samsung magician on Windows 11. Tried. It flat out doesn’t work, tried some basic remediation and internet searching to figure it out, but could not get it to run at all. Completely nonfunctional. Seems to be an issue with some electron configuration or command line args. I gave up because it wasn’t worth more effort, but I believe it when I read that the software is a dumpster fire.
This type of writing is very grating on the nerves. It's not AI slop, but it feels the same way, where AI slop is trying to trick you into thinking every sentence is the pinnacle insight of human endeavor of all history, this writing stops every single sentence to say "Are you outraged? I'm outraged! You should be outraged! This is outrageous!"
Especially when the outrage is that the user didn't follow instructions to use sudo on an uninstaller that needs to touch root owned files.
The writing style has a name called ragebaiting. The gold:
> Localization files for every language on Earth
Yeah because English is the only one language that matters. Let's fuck up all the non-native speakers to save, I don't know, 50kb of text files? How could one frame this as a bad thing?
> Help documentation with 40+ screenshots in 10 languages
Seriously how Anglocentric could this author be? Even physical products have multi-language manuals nowadays.
No. Language resources are part of the app bundle, which means they are part of the bundle’s code signature. Removing or altering them breaks the signature.
In the past I've certainly seen that, but more and more I see all the language files being installed. You never know when someone is going to change their language, add another one, or add a new user.
Well I once watched an sysadmin with 430 years of experience swear his way through an installation process. Until I, back then a intern, pointed out that maybe reading the install instructions would have been a good idea, since there were some steps in there that would have saved us some time. We scrapped everything and reinstalled following the instructions and 15 minuted later it worked.
I admit that I also often deviate from installation processes, but only when I really know why I want to do that. And I tend to read the instructions first.
But I know people who are snuggly proud about not reading the manual and I really don't get it.
> But I know people who are snuggly proud about not reading the manual and I really don't get it.
Agreed... but there seem to be more and more products that either don't have manuals, or whose manuals are so badly written that reading them turns out to be a waste of time. I feel like people are being trained not to read manuals anymore, so I understand the people whose first instinct is "that thing is going to be useless, I'm not going to waste my time reading it". But not the ones who are proud of not reading manuals, that doesn't make sense to me either.
While I agree in the general case (e.g., software aimed at end users), there's also a good reason why the Archlinux Wiki is so good: because installing an OS does require a manual if you want to be able to do any customization at all (yes, you can just install the defaults, but if that's what you wanted, you probably wouldn't be running Arch). And the same applies to systems software not quite as broad in scope as an OS: there can be multiple different customizations you might need to apply, or you might need various dependencies. atoav didn't mention whether the software the sysadmin was installing had a distro package (it might not have even been on a Linux system, no particular reason to assume it was Linux rather than FreeBSD or AIX or Solaris or...), but I kind of assume it didn't, precisely because there were installation instructions. The sysadmin wouldn't have been "swear[ing] his way through an installation process" if the installation process was "sudo apt install some-piece-of-software", after all.
On Windows, you run the uninstaller, click once, and a few seconds later everything is uninstalled. You reboot to remove any remaining files immediately, or you can just wait until the next time you naturally reboot and it happens then.
This has been how it works in the Windows world for several decades. Surprising that Apple still hasn't figured this out yet.
Ever tried to uninstall an antivirus on windows? Or any program that does not want to be uninstalled? I've had programs whose uninstall.exe was no different than /bin/true.
On this point, Windows is no better than macOS: the OS relies on the goodwill of the developers to provide working uninstallers. The only protection is a world where the OS provider does the application packaging: Linux repositories, Mac App Store, Windows Store. And even then, apps are still free to litter your filesystem at runtime, unless they're heavily sandboxed. Then FlatPak it is, or iOS apps or Android apps. Not great.
Yes, I have uninstalled antivirus. The uninstaller removed most of the files, except those in memory. I turned off the computer at the end of the day, and after startup the next morning the remaining files were gone.
The only remaining files were the "user space" like custom preferences or files created by the user using the program. The uninstaller rightfully leaves it up to the user to decide what to do with those.
Parts of that article are just downright terrible.
First, the criticism of Electron is moot. Yes it's not sleek, but it's sufficient. This app is not supposed to be used heavily on a daily basis. Run it once to setup your drive, run it a few months later for a firmware upgrade or a quick health check and that's all. And when you had a taste of the absolute UX monsters some hardware vendors can produce on the software side, really an Electron app feels nice.
But it gets more ridiculous. Embedded fonts? God forbid companies enforce their own design guidelines in their software. Translations? Fuck non-English speakers. User guide with screenshots? The audacity.
It’s always the dummies who don’t know what they’re doing who write long screeds about how bad something is. The first indication the OP is a dummy was using “sh” to run the Samsung uninstall script instead of just invoking it directly, then not realizing he should’ve sudo’ed it. This is not a defense of Samsung, their software sucks, but this over the top.
> Localization files for every language on Earth - [...] - Samsung really wanted to make sure everyone on the planet could experience this suffering equally
Why are you considering localization as bloat? I bet your reaction wouldn't be positive if your native language(s) were missing instead.
The alternative would be the installer only installing the languages that match the system settings. Which yes is imperfect, but not nearly as bad as separate downloads or god forbid the two tier base language and modification pack system Microsoft came up with.