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) “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…)
2) 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…
3) 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. For example:
Then you have a multistep installer like on Windows.
For example, here is
After the installation
conda is not in PATH:
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.
Alternative to manual download:
brew is a 3rd-party package manager for Mac.
I did not enjoy
brew as much as
apt-get on Ubuntu:
brew is slow, often throws errors.
App Store simply has almost no apps for developers: no
nodejs , no
4) 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…
5) 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).
6) 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.
7) 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
8) 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…
9) 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.