Brian Riehman

Moving from Linux to MacOS - Initial Thoughts

· Brian Riehman

I am moving my work laptop from Linux to MacOS after almost ten years developing exclusively in Linux. I have never used MacOS before so although I am a bit worried about moving outside my comfort zone, I am also eager to learn how to develop on a Mac and hopefully experience what some folks love so much about using them.

I have been using the new laptop for almost two weeks at this point and I wanted to document my experience as some of the pain points I experienced are amusing for someone with more than 15 years of development experience.

The first few days were quite humbling as my google history indicates:

  • how to switch windows
  • how to close an application
  • how to lock screen
  • what is finder

It took a few days to feel more comfortable moving around the OS. Even though I have 30+ years of experience to leverage, it’s still taking some time to adjust.

What I like

Consolidated Settings

System settings in a single location just makes sense! The experience in Linux has dramatically improved in the past decade here, but the organization of the Mac OS settings is quite impressive.

Outlook email application

My only choice for retrieving Outlook email in Linux was via the web application. It’s so nice having a native application with calendar and contact integration.

CPU Performance

The machine I am using is an M3 with 36 GB of RAM. I have only heard the fan noise a few times when running multiple large containers or a large application build.

Battery life

The battery management on the Mac has been fantastic. It should be because it’s a new machine compared to the old one, but even when running heavy workloads off battery it does very well.

What I’m getting used to

Control / Super / Alt vs Control / Option / Command

I cannot count how many times I’ve hit Ctrl followed by X/C/V for cut/copy/paste instead of Command. Muscle memory. Part of this is due to using a PC keyboard, but I have remapped the keys so they’d be in the same physical locations anyway.

Text navigation

There are home/end/page up/page down keys on the laptop itself. I still struggle to use option-arrow to move between words instead of control. I find the closeness of the key combinations required a bit more cumbersome than the Linux/PC equivalents.

What feels familiar

brew

brew feels very familiar and has had everything I have thrown at it to install.

Unix foundation

I have not run into incompatibilities with the various utilities that may differ between GNU / BSD.

What I miss

Disk performance

I’m not sure if this is actually the disk speed or a difference between Linux and Mac OS, but the disk performance seems ..slow? Running git status is noticeably slower than in Linux as well as using git grep.

I am not sure if this is due to the disk actually being slower, a misconfiguration, or some settings causing slowness. I had to disable the git prompt from my starship prompt since it was adding >500ms to the prompt.

Alt-` between windows

The Mac behavior for Command-` switches between windows directly instead of showing the choices as Command-Tab does. With multiple active windows this is a bit slower for switching. Maybe I can re-configure this.

Mouse hover to focus

I miss being able to focus a window by hovering over it. This saves time and reduces the likelihood of missed clicks. It seems there may be some way to configure this, but I have not tried them yet.

Overall

The experience has been fairly smooth overall. I am still hitting small bumps here and there, but I was able to get up and running fairly quickly. I also was able to update my dotfiles to using gnu stow and configure the system using Ansible to simplify the setup for others and myself in the future.