Dog Snog dot Blog

The “MacOS Feel” that Developers Love

IMO, it comes down to a:

  1. Controlled UI,
  2. Consistent user experience, and
  3. Dev-friendly choices.

Windows controls the desktop, but only has so-so consistency (many windowing toolkits in evidence in the OS). And the choices aren’t dev-friendly (more below).

Linux has nearly zero control over its own UI: The Chrome browser, for example, refuses to follow standard keyboard shortcuts for Quit and other functions. Even worse, built-in apps have problems: the Gnome Software store also doesn’t support the Quit shortcut. Settings app does, but it doesn’t handle page-up and -down keys properly. KDE has problems too: various versions gain — but then frustratingly lose — the ability to adjust the mouse scroll speed. Finally, Linux copies Windows’ anti-dev-friendly UX designs.

MacOS, on the other hand, stands out above these:

  1. Like Windows, MacOS has absolute control over the desktop. E.g., the Chrome Browser responds to gestures and keyboard shortcuts just like every other app.
  2. 99.99% of apps behave in the same predictable ways. It’s rare (or impossible?) to find a user-level difference due to toolkit changes.
  3. MacOS provides an extremely friendly dev experience:
    • It’s the only OS that provides Bash/Emacs-style keyboard shortcuts in every text input in every app. This feature alone makes MacOS feel more Linuxy than Linux to me. (A weaker, not as usable version of this can be enabled on Linux via Gnome Tweaks.)
    • It’s the only OS that provides the same Cut, Copy, Paste, etc. keyboard shortcuts across every app, including the terminal. It does this by smartly, in an opinionated manner, using e.g. super-c for copy everywhere, instead of the ctrl-c / shift-ctrl-c pair used by Windows and Linux. This frees up the ctrl key in terminal for dev and coding.
    • MacOS keeps your fingers close to the home position for the really common actions, next tab / previous tab: super-} and super-{. I find this faster and much more comfortable than the Windows & Linux standard, ctrl-PageUp and ctrl-PageDown. Those always make me stop and hunt for the right keys. On a laptop, the difference is even more pronounced; MacOS stays the same, but the Windows/Linux combo is usually harder to reach.
    • It builds on this consistency and the super- “key space” by defining lots of useful system-wide shortcuts that the other OS’s don’t. super-, comes immediately to mind: it opens up the Setting/Preferences dialog in every single app.

Now, me personally? I’m typing this on a Dell XPS tower running Fedora, heavily modified to act like a Mac with AutoKey and a keyboard whose keys I’ve slightly re-arranged. I have global mappings for super-c, etc., and a separate set of mappings for obnoxious apps like Chrome. Further, I use the imwheel hack to adjust the mouse wheel scroll speed. And Firefox because it implements scrolling inertia. (Gnome has this, but only for certain compliant apps.) It’s a fragile setup, but this is what fits my budget at the moment.