The Ultimate Abstraction: Trading ./configure for Click-to-Install
cowmonkMacOS…
The very name whispers promises of seamless integration and… well, mostly just working.
Already, there’s a sense of profound relief when you think about starting with a sleek, aluminium unibody and not having to build everything from the ground up. And it only gets better – one quick look, and you learn of the magical process of the App Store, where dependencies are someone else’s elegantly hidden problem. Not only is installing effortless, but updating? It just happens, often while you sleep, like benevolent digital elves maintaining your walled garden. Looking at this, people will naturally wonder, “why didn’t you switch sooner?”.
I am, perhaps surprisingly, still the same person who championed LFS, but I now use a MacBook for school, development, and other fun things with newfound ease. What I say doesn’t mean I’m telling you how you should use your computer, but an insight into why I personally now crave this… simplicity. If you are intrigued by this radical shift, and if you want to try macOS; I implore you to experience the polished cage, but be aware of the sheer lack of hardship you’ll face because, I do want to preface that macOS is no weekend project in reverse; it’s an instant gratification machine, and your patience–or desire to tinker–will be rendered utterly obsolete.
Embracing Pre-Packaged Perfection
There is a common misconception that macOS is restrictive and locks you down; however, that can only be far from the truth, the real freedom is the liberation from choice. The difficulty isn’t high either: the Human Interface Guidelines can be easily ignored as a user, and the process is relatively simple to understand: you click things. Most people can just drag & drop, just like most of troubleshooting involves turning it off and on again anyways. However, there is a level of difficulty in the tedious task of resisting the urge to look under the hood. But that also isn’t fully true in itself either, as you can install tools like Homebrew to automate most installations of things Apple didn’t deem worthy. Obviously, you could use Windows and also install WSL on top of that, but the ability to have one blessed way of doing things, dictated by Cupertino, without the need to distro-hop, and without the need to worry about isolating package managers because it’s all handled with magical fairy dust… it’s intoxicating.
And that is where we go into one of my favorite aspects of macOS: the ability to accept everything built with Apple’s tools and environment that they want: You are blissfully bound to their curated environment. That probably means everything to the majority of users, and the fact that you are bound to it is very… relaxing; what it means is the ability to be consistent–similar to how LFS is defined by its lack of definition, macOS is defined by its polished, unwavering look and feel–macOS is defined precisely by what it comes with.
But of course, another thing people say is that macOS is just polished BSD with vendor lock-in. This is not entirely true, macOS is a “lifestyle”, a fancy way of saying that although it is much less customizable than even Ubuntu, it is still an “experience” at the end of the day. There are tools and aesthetics forced upon you, such as Finder, the Dock, etc. that make it give you the “Apple experience”. A real user experience means starting from UNBOXING (no source tarballs or whatever) and accepting the tools they give you, which is what you do on macOS anyways. But then does it mean that you can’t enjoy the simplicity macOS already gives you? Of course not!
But what I mean is that the lack of customizability and control that you have over your macOS system is unlike any other OS I have ever used. There’s something satisfying that comes from not understanding how applications are packaged or how system integration really works on a lower level. There is maximum abstraction, and you get to take in the raw “Consumer Experience”. There is a sense of relief from avoiding these types of challenges as well, so that’s another bonus too.
Challenges of Effortlessness
Of course, the ease of macOS can only be true if you follow the Apple way word for word and don’t try to shake things up a bit. Everything I said about macOS’s simplicity before is still true. But the real hell comes from the lack of need for documentation; while the Apple Support pages are comprehensive for common issues, doing anything slightly non-standard often requires accepting it’s impossible or finding obscure forum threads. Whilst this is the norm for niche problems, at least with the rise of AI: finding answers to macOS internals seems less important than asking how to sync your iCloud photos. Unfortunately for me, doing crazy things like trying to replace launchd with systemd is apparently not in any training data or reality I wish to inhabit anymore. Resulting in just… not doing it. And trust me, I’ve done all sorts of web searches, but to no avail. Why fight it?
A common truth that I want to address here is concerning the stability of macOS. And unlike Arch that’ll break if you look at it funny, or LFS that you break by looking at it funny, macOS is surprisingly stable and nothing usually ever breaks in ways you can fix yourself, only very rarely in ways that require a Genius Bar visit. And it has to do with the fact that it’s not very common for most macOS users to update core components themselves, and most macOS users follow the stable releases pushed by Apple that are known to just work (mostly). At least from my experience, a macOS system has never broken in a way that required recompiling the kernel, but there are update issues if you try and hold back: Apple’s own damn way. Other than those outliers, it’s similar to why appliances are stable in that you rarely ever tinker; and when you update, it usually should work out fine since you usually only update the whole OS monolith, like for example accepting the latest point release rather than worrying about glibc very often.
Challenges to using a macOS system are always… first-world problems. They always happen due to Apple’s nature of changing things too much between versions, but at least for me: the lack of challenge is always worth it. It makes using my computer less exciting, and the results of doing something that everyone does makes me feel… normal. Every time my computer boots instantly, it’s a testament to pre-optimization and continuous integration from a massive corporation, and somewhat of a surprise given how complex it must be under the hood (not that I care anymore).
Final Thoughts (Seriously?)
I have done my best to compile some of my favorite aspects of macOS into a coherent blog post, but in reality it’s a complicated… well, actually, it’s pretty simple. I really think macOS is about embracing abstraction layers and discovering the beauty of a polished surface hiding complex design. Before I tried macOS seriously, I never really understood how simple using a computer could be, how modern tools really made our ideas of computing so effortless and we don’t really appreciate the work that goes into hiding the complexity; especially for me, as someone who built an OS from scratch, it’s really thanks to Apple that I have a clear path… to getting actual work done without compiling GCC for 8 hours.
For all to have made it to the end of this blog post, I want to thank you personally for taking an interest into my shocking change of heart. I want to apologize if this caused any LFS purists heart palpitations. I also want to thank… uh… Tim Cook? I guess? For this amazing ecosystem.
But that’s all from me! Happy clicking, and may your system updates be error-free!