MacOS for developers: Pain points.
I’ve heard people saying MacOS has a good UX, and that on MacOS things “just work”, while on Linux you have to fix things a lot.
I’ve been using MacOS for 2 years (2019–2021) and I encountered numerous problems.
Here are my examples of basic things not working.
1) “gem install” doesn’t work
I’m not a Ruby developer, but once I wanted to install an app, which required me to run
gem install .
It simply spits an error — go figure out what’s wrong with your Ruby.
$ gem install timetrap
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.
2) “pip install” works, but executables not in PATH
$ pip3 install jupyterlab
[...] success$ jupyter-lab
zsh: command not found: jupyter-lab
There is an old stackoverflow question, but in 2021 I still faced this problem…
I had to find
Python folder in
~/Library , and add
bin folder for
Python 3.8 to
PATH (so for newer versions I’ll have to do it again… Wow so handy…)
3) Git rename lowerCase to upperCase
Say you want to rename
App.js and commit to
Easy enough? Not for MacOS… As it’s not strictly case sensitive…
Prepare for some extra work…
4) Installing apps: no official package manager
There is no
apt install , prepare for the manual download + “drag n drop” experience… And GUI installers… And then manually adding the app to the
VSCode installation instructions for Mac:
To install an app you have to drag and drop:
Then you have a multistep installer like on Windows:
After the installation
conda is not in PATH:
Alternative: there is
brew — a 3rd-party package manager for Mac.
But it worked quite poorly for me, as I had 2 users.
Turns out there is no easy solution for “multiuser setup” (stackoverflow). I could never fix it completely…
brew is updating itself whenever you try install any package, which is quite annoying TBH. And it’s slow.
brew is just not as smooth as native Linux package managers.
Lastly, App Store simply has almost no apps for developers.
Cherry on the pie: MacOS won’t allow you to open apps downloaded from web by default
You have to open file manager, right click the file, then click “open” now it will show you the “open anyway” button.
5) Want to compile a
C file in terminal? Requires XCode GUI…
And you can’t install it from terminal! You have to open
App Store GUI…
6) Uninstalling apps
Should be an easy and obvious thing… Nah, you have to google how to do it…
Turns out, in the
Applications folder, you just select
Move to Trash .
Sounds easy, but is it really uninstalling the app?
No, there is another guide for “completely uninstalling apps”:
You may need to delete the app’s preferences from your Library folder.
First, you need to access the Library folder — this has been hidden by default since Mac OS X 10.6…
Finally, there are 3rd party uninstaller apps (!)…
(quotes are from a macworld article).
7) It is not possible to completely hide the bottom panel (“Dock”)
On Mac at the bottom of screen you have a panel with all the useless apps: Siri, Safari, FaceTime, Apple TV, etc.
Guess what, you can’t get rid of it (completely)!
Turning it off completely is pretty much a no-go without breaking OS X in the process.
You can hide it, but again, not completely… 😂 (it will popup when your mouse is at the bottom of the screen).
The best I can suggest is keeping the dock hidden, and make the size as small as possible so you’re less likely to trigger it.
8) Unix commands are different from Linux: mv, ps, sed
I want to sort processes by cpu usage, stackoverflow answer:
But on MacOS that simply doesn’t work, as
ps has no
$ ps --sort=-pcpu
ps: illegal option -- -
usage: ps [-AaCcEefhjlMmrSTvwXx] [-O fmt | -o fmt] [-G gid[,gid...]]
[-g grp[,grp...]] [-u [uid,uid...]]
[-p pid[,pid...]] [-t tty[,tty...]] [-U user[,user...]]
mv multiple files: syntax is different
9) Charging from the left side of laptop results in 400% CPU load by
How to find cause of high kernel_task cpu usage?
High kernel_task CPU Usage is due to high chassis temperature caused by charging. In particular Left Thunderbolt port…
10) You can’t delete Apple TV, Safari, QuickTime
The “Delete” button for all the Apple apps simply doesn’t exist.
MacOS, like any other OS, has many pain points for development: often things just don’t work out of the box.
My impression is that MacOS provides a smoother developer experience than Windows, but not as good as Linux (e.g. Ubuntu).
Especially, if you like working with Terminal.
MacOS is actually very GUI-centered: all Settings are in GUI, apps are installed via GUI. There’s almost nothing you would do with MacOS via Terminal. When you google “how do I … on MacOS”, prepare for N steps with GUI screenshots, rather than running a command in Terminal.