Using the new M1 MacBook Pro as a developer
- Publish Date
- Joseph Lozano
- Andrew Walker
With Apple’s release of the newest MacBook Pros with the M1 chip, we found a lot of developers asking our early adopter engineers for the inside perspective on what it’s like to use.
Here are some impressions from folks who are in their first few months using the sparkling new version.
What stuff is smooth sailing? 😎
Long battery life
Battery life is amazing. I can work all day without having to plug in. – Andrew Walker
Prompts are nice
MacOS doesn’t come with backwards compatibility (Rosetta) installed. It does however prompt you to install it as soon as you try to run something that needs it. This process is incredibly painless. – Andrew Walker
What stuff is meh? 😐
You tell us. So far there’s nothing we’re really non-committal about. In fact, one double agent called it the best Macbook release in a decade. Okay, there is the notch.
What stuff is fine, but needs close attention? 🔬
ASDF/Kerl needs special compiler flags, or else Elixir will compile projects super slowly. Adding the flags 6x’d compile times on a large-ish open source project. – Joseph Lozano
Check for M1 versions of software
Some applications may not have M1 versions and you may be running the Intel version of software without realizing it. This can cause your battery to die much faster. For example, LastPass (who is not intending to release an M1 version ever - https://www.macrumors.com/2020/01/30/lastpass-to-replace-mac-app-with-web-app/) and Visual Studio Code (that has a vsls-agent that runs in the background after the app is closed. You have to manually kill it). Fortunately it is easy to spot what is running “Intel” vs “Apple” in the Activity Monitor. – Andrew Walker
Monitor CPU usage
I recommend using a tool to monitor CPU usage. Some programs don’t make use of the high-power cores and instead only use the slower efficiency cores. Since there are fewer efficiency cores in the newer Macs, this can actually make some programs slower. If you have an eye on what cores are being used, you can diagnose the problem quickly. Fixing it is another matter. This is why the Erlang builds (mentioned above) were so much slower. I use stats to keep an eye on the cores in the menu bar. – Joseph Lozano
What stuff is honestly still a pain? 😳
With package managers (such as Brew or ASDF) many packages have been updated to support Apple Silicon, but that’s not true for everything yet. Depending on what you’re using, you may still run into architecture issues. This can often be because the developers do not have access to M1 machines to test on. – Andrew Walker
Old versions of Ruby
If you need to install old versions of ruby or run “bundle install” with old versions of ruby, it can be a bit of a nightmare. I’ve spent three consecutive days trying to get one repo set up. I’ve given up now and am starting over on an Intel-based machine. – Andrew Walker