---
type: blog-post
title: I don't like MacOS (Software dev PoV)
description: This post goes into some of the reasons why I do and don't like MacOS but mostly don't
draft: true
date: 2023-09-12
updates:
  - time: 2023-09-12
    description: first iteration
tags:
  - "#blog"
---

I don't like MacOS, I've been using it profesionally for the past year and a
half, and it hasn't gotten better. This post goes into some of the things I
like, and which I don't. This is mostly a post shitting on MacOS, so fanboys
please stay clear.

## Some background

I am a systems / platform / data engineer, so what I need is generally a tool
where I can be productive writing code, in a variety of environments, some
virtualization, mostly docker thought. I need a browser for browser stuff, and
in our case for Google Meet as well. I also have a variety of utility apps, such
as Mailspring, Linear, Obsidian and so on I use on a daily basis. I don't use
MacOS because I need to build apps, it is simply a company default and what is
recommended, which is why I am using it. The laptop I am on is a pretty beefy
1st gen M1 MacBook Pro, and the hardware has been awesome. But this post isn't
about the Hardware, but about the Software, and why I think it is crippling its
potential, at least for me.

## The things I like

I should probably start off a little positive, so here are some of the things I
like

- The user interface is generally quite polished, I haven't felt the need to
  change the look of the UI, so that is a plus.
- I like the dock and the top bar, The dock is generally quite clean, even if it
  a more _animated_ than I'd like. The top bare is quite useful, I like the
  integration with my globally available apps, though the navigation leaves much
  to be desired, I work on a large monitor 50% of the time, and it is just so,
  so far away. I tend to never use the `File`, `Edit` and so on options only
  when I absolutely need to, otherwise key-binds are preferred, as they're right
  there.
- It generally just works, even if the bar is quite low. I trust that when I
  update the Os, the OS itself doesn't break, which sometimes isn't the case
  with the Linux and Windows os I normally run on my personal machine. (This is
  mostly my own doing, as I prefer cutting edge Distributions)
- The fingerprint integration is quite good, it is responsive, and quite a few
  of my apps can use it for various effects.

Quite a small list, but that is how it goes

## The things I don't like

This will be quite a hefty, section, and I should preface, that I've tried to
fix a lot of the follow issues using various third party apps. But generally
they all feel like they are fighting against the OS, to actually provide a good
user experience. I will go into some of the specifics as we go.

### Display manager

I like to be organized, and have opinionated workflows, as such the default of
dragging, resizing windows and spaces are clunky at best. I've tried to use
Stage manager, but I didn't like that it was as fluid as it was. It felt like my
windows were in a pool of water, drifting around when I moved another window.

I would like to jump between windows and spaces using keybinds, and feel fast
doing so. I've been using `Rectangle` and have been fairly happy doing so. I've
built my own little manual I3wm workflow around it, but it is a quite manual
experience. Recently I've tried `yabai` and friends. And that is actually what
prompted me to write this post. Not because of the tool, but because all the
limitation MacOS impose on it.

I ended up switching away from `yabai` again. Not because `yabai` was missing
features, or had an obscure command set. No because MacOS made it too unstable
to use properly (and required super root access, i.e. turning off root disk
protection to the OS).

I simply wanted a display manager which organizes my windows for me, and allows
me to create new ones, move them between spaces, and let me jump between spaces.
But no. MacOS will automatically change the numbering on the spaces, if you use
one more than another, it will think. Hippity hoppity let me move that space for
you. This was not great when yabai would reassign an app to a space. I would get
ghost application, where MacOS would think they were in one space, but yabai had
moved it to another (Where I actually wanted it to be).

MacOS doesn't allow by default removing transitions between space changes, you
can enable animation reduced mode, where the space transition changes to a fade
in and out, instead of a sliding thingy. I just want a snappy change from one
space to another, I don't care for the transition, it is pretty and yes the Mac
display is high refresh, it is smooth and all that. I just don't care. I want to
quickly change to my email client, slack or something else and back in a jiffy,
Mac doesn't allow this workflow.

### Display

I often have to share a part of a screen or use an external monitor, either for
a presentation, or at the office because we have free seating. The mac often
forgets window placement, or craps out entirely, requiring me to unplug and plug
the monitor in again until it works. This is frustrating, and I'd hoped that the
experience at least was better than what we have on Linux, but to be honest it
isn't much better.

### Sound

Don't get me started on the sound system in macos, it has a life of its own.
Sometimes it just randomly changes my Microphone to the build in one, even when
the mac is closed, and docked. The same for the output. I honestly don't know
what is going on, but it sucks when speaking to a large group of people and you
just disappear.

### The Dock and app lifecycles

You can hide apps in the dock, but they may also be unhidden if you do a global
action on them. Lets say I have a VPN client I'd like to hide, because I use it
once in the morning, and turn it off when I stop for the day. I don't care of
looking at it on my dock the entire day.

When you close an app for the most part, it is just pseudo dead, it is actually
still stateful, and can be started nearly instantly again. This is somewhat
nice, but when I want to close and app, it should just die. It shouldn't keep
running in the background. `Cmd+q` will kill it for me, which is nice, so it
isn't a huge deal, it is just annoying, given how troublesome MacOS generally
makes building routine apps running in the background for a root user.

### Package manager / App store and updates

Homebrew or rather its packages are often abysmal, often the packages are binary
builds, which means that it builds the binaries for me instead of downloading
them. This can be hefty, both in time and battery usage. Especially as homebrew
is run sequentially, which I don't understand, it should know the dependency
graph of the different packages, so why couldn't it resolve it after downloading
the taps and casks? No idea, but it is by far the slowest in my normal day to
day update cycle. I've also got a lot of them, as I am working in multiple
different development environments.

I don't use the App store, I haven't found a lot of value on it, maybe slack and
so on. But either I use `dmg`s or `homebrew`. The installation for Apps is
childish and obtruse, you have to know how macos works, to actually install an
app properly. First you download an app of, of the internet. A random dmg file,
then you double click it and a draggable application pops up, you move it to the
application folder, and then nothing happens, you usually don't get a
confirmation that anything was installed. You have to manually open the
application to verify that it works, and then you can close the popup and delete
the dmg file. This is quite strange, a few family members have called me because
they couldn't understand why the app wasn't installed, when it turns out it
actually was, they just hadn't opened it yet.

There is also the story of actually getting a dmg to install, if you don't have
a signed dmg, then it is quite bothersome to install, and properly not something
a non technical person would be able to figure out on their own. Though that may
not be true.

### Inconsistencies

MacOS default apps work a lot like windows apps, in that they tell the os to
play by certain rules, but don't actually follow those rules themselves. For
example the new settings panel cannot be made wider, the finder cannot be hard
killed using `Cmd+q`.

Xcode is rolled out with os updates (as far as I can tell), this breaks on every
single goddamn update, and I have to reinstall the cli tools package again. This
also often breaks, and I have to retry it a few times for it to actually update
properly. This has been reported multiple times, and have been a problem for
years, as far as I can tell given the support tickets, but it doesn't look like
it will be fixed anytime soon. I don't even use xcode, but still it is giving me
grief.

### Shady stuff

I don't generally care all that much about privacy, especially on a work machine
like this one. As I don't use the Mac for anything other than work. But seeing
the background processes sometimes consuming a lot of memory, and then googling
the process names to reveal that it is some kind of trial run by Apple doing
image scans, feature toggling, telemetry and all sorts of crap. It doesn't feel
nice, and I don't want to give a trial process a few gigabytes of ram, when I
don't benefit at all from it.

## Conclusion

There is a bunch more, but I think this is probably enough from me for now. I
can still keep using the Mac and MacOS, but it isn't as impressive as people
say, I am probably not the intended user, and that is fair. It is just
frustrating as the MacOS generally markets itself as a general purpose os, but
also for professionals, and after this experience I think it is anything but.
