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.

5 thoughts on “The “MacOS Feel” that Developers Love

  1. “Linux has nearly zero control over its own UI”

    This actually made me laugh, thank you 😂
    Sent from my Pop_OS! laptop running a modified Xfce4 DE to look like a lightweight cross between the macOS dark mode and some features from GNOME that I liked. Complete with custom keyboard shortcuts for actions that Linux doesn’t normally have (Meta+Space for an application launcher akin to macOS Alfred/Spotlight) as well as modified keybindings for Meta-Q to quit current application etc.

    Like

  2. Another macOS consistency is the pointer inertia, which can be very satisfying to use when you give the input device a flick, and the pointer lands on what you aimed for.

    It’s toggleable, sometimes, in Win, but the dynamics vary so much across the interface ,that it’s pointless to try, which is possibly why so many Win-ers prefer the dead-no-inertial default setting, as awkward as it is.

    Nice post. Balanced. Tnks.

    Liked by 1 person

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s