First, about the title. I say I’m a current and former user because I had a 4ish year hiatus from using MacOS. My 2011 Macbook Pro bit the dust due to the graphic card issue mentioned in this article from cult of mac. I was experimenting with Linux at the time, so I used the opportunity to fully commit to running Linux full time and never replaced my Mac. That explains the"former user" bit. I’m a current user because my job provided me with a recent(probably 2 generations ago) Macbook Pro.

When I was a full time Mac user I really enjoyed the experience. Boot times were acceptable, login was snappy, and the general UI was as what it has been since the beginning of OS X. There were, of course, pain points. Window management became more and more of an issue as I became more of a power user. Tools like spectacle, now deprecated and moom were very helpful in wrangling the mess that I created opening windows. Other pain points would crop up here and there,usually solved by clever use of Automator, or other bits. (A moment of silence for the horror that was Applescript. May it die in the fires of Mount Doom.)

Then I switched to Linux.

The pain was still there, initially. However the pain was different on Linux, as it was often caused by not having familiar software. This pain is easily solved with time and patience. Eventually the pain subsided mostly because I stopped needing the software I was missing. I also found better alternative options for replacing some of the software I was missing. Now I’m using Linux full time at home, and doing so 95% pain free. The options for window management are fantastic on Linux, with a wide array of window managers of all kinds. Currently I’m using one of the more “hipster” window managers DWM, an automatic tiling window manager. The configuration of DWM is done via the C header file.

Additionally, the boot times are almost infinitely optimize-able. I exaggerate, however systemd-analyze blame is incredibly informative when debugging intolerably long boot times. Just be careful disabling things you’re unsure of.Login times are also easily debugged/optimized, especially when using a minimal window manager such as DWM. My computer goes from the login screen (admittedly a console login) to fully useable in almost a literal blink of an eye. This is in stark contrast to my current experience on Mac OS, as you will see shortly.

My return to MacOS has been bitter. I’m frustrated by the boot times. Well, boot times are fantastic, but the login times are crap, absolute crap. I’m pretty sure they’re deferring at least half of their boot sequence to the login process. I push the power button and approximately 10 seconds later the login screen pops up. This is fantastic, but then I go to log in. I’m greeted with a progress bar that I should have seen before the login screen came up. I’m fine with waiting for the login screen, but if you’re showing me the login screen I expect to be actually using my computer about as quickly as I can get my password entered correctly. A brief delay is acceptable for loading settings and UI, but current MacOS is unacceptable.

Also, I’m used to a tiling window manager now. I am using Yabai currently on MacOS, and it’s nice, but I can tell it’s not native. Part of the issue I have is that MacOS overloads the super (command) key. On Linux the super key is free real estate which means that I can bind all of my window manager bindings to the super key and not shadow anything useful. On MacOS I have all a wide array of awkward keybindings. I admit, I’m still getting used to it, so there is still some adjusting to be done. Also, yabai is closer to BSPWM for Linux than it is to DWM. I’m not, and never have been a BSPWM user, so I’m not familiar with the workflow. The difference is still clear. MacOS needs better built-in window management, and they need to stop overloading the super key.

System wide updates are infrequent, but the one I had took way too long. I get why they’re doing things the way they do, but updates is one area where Linux just does it right. On MacOS the update took 15 minutes or more, and for that entire time my computer was unusable. I experienced a series of reboots and progress bars, none of which really told me how far along in the process I was. All I knew is that I had to keep waiting. Eventually the system came back up and I was good to go again. Sure, closing down the GUI during updates does prevent people from doing stupid things, but why does it take 15 plus minutes to update a few files on disk? Even when I ran OpenSuse Tumbleweed which had frequent large updates (100+ packages at a time) and kept snapshots of system changes I never had an update that made my computer unusable for any significant length of time, and a single reboot was all I ever needed to “apply” the update.

After all the things I’ve been complaining about, I must admit, there are some redeeming qualities. Security is acceptable. Sure, hardened Linux or BSD is usually going to be better, but MacOS is a BSD derivative, and Apple takes security seriously. The fact that MacOS is a BSD is also a plus because it’s Unix, which is hugely helpful as a developer, since UNIX tools are more powerful than what I’m aware of on other platforms. The UI while not being anything that I prefer, is attractive and configurable, if not as much as Linux.

At the end of the day, I’m glad it’s not Windows. Apple at least pretends to care about privacy, which is more that can be said about Windows. It’s also a UNIX, which is familiar to me. I’m absolutely frustrated by the lack of window management, boot process, and updates, but I’ll live, and perhaps I’ll even learn to enjoy it.

Update as of Friday April 10 2020: I’ve stopped using Yabai. There was too much friction in the workflow and I ended up spending more time being frustrated by it than being helped by it.