The M1 Mac - Is it worth it for devs?
Published: 2021-03-01 11:04:07

---
title: The M1 Mac - Is it worth it for devs?
description:  Thoughts after using the M1 Mac from a developer perspective
canonical_url: https://blog.alexandrudanpop.dev/posts/the-m1-mac-is-it-worth-it-for-devs-3fi5/
---

I can say I was very impressed by the [benchmarks results](https://tech.ssut.me/apple-m1-chip-benchmarks-focused-on-the-real-world-programming/) given by those machines, so I decided to try one out. 

**TLDR** - I didn't choose the M1 Mac Mini as a mainly daily driver - yet - until docker will be fully supported. I'll use it for frontend workflows that involve running a bunch of the node.js tasks + mock APIs + continuously running tests in the background.

{%  twitter 1358002530245095427 %}


## Why I choose the M1 Mac Mini with 16GB RAM
I wanted to use it with - 2 big monitors (M1 MacBooks support only one external display - although there are workarounds). I don't like staring into small laptop screens, so for using both my monitors and also having more ports I have chosen the Mac Mini instead of the MacBooks.

Also, I am working remotely and already have a Dell XPS 15 laptop. So buying an M1 laptop didn't make sense - since I can use my laptop when I need portability.

I went for 16GB of RAM because some of my development workflows require running multiple docker containers locally, and we all know how much memory docker consumes. Also, I noticed that the 16 GB model barely uses less than ~7-8GB RAM but I'll get to that later.

## Impressions
A lot of my development work implies running `VSCode` and `node.js` locally for frontend workflows.

Running the native arm `node.js` on this machine is extremely performant. Can say for some frontend builds I was getting ~60% speed increases from my 2y old Dell XPS 15.

With a local frontend workflow (build and running unit tests), lots of Chrome tabs open, docker running a few containers, VSCode, Spotify, and other programs running in the background I haven't seen it use more than '~12,5GB' of RAM. It never used the full '16GB' RAM. But it does use SSD swap, so that's interesting.

I did see that with very little use - like a few Chrome tabs + other background apps that run by default it will quickly consume the "standard" 8GB of RAM.

## Caveats 
I spent countless hours getting around some issues like for a Gatsby project I could not make the 'sharp' module work. When I finally managed to do that, BigSur had an update and after that, the arm version of `node.js` didn't work anymore. 🙀

I also tried `docker` and certain images that work on my Windows 10 laptop or on an Intel MacBook. Around half of them don't work on the M1 with [docker for M1 preview](https://docs.docker.com/docker-for-mac/apple-m1/). With some tweaks, I managed to run some of them, but others without luck.

## Things to consider 
Before considering this as your main machine check:
- [Is Apple silicon ready website](https://isapplesiliconready.com/) to browse if the software you use is compatible yet or can run through Rosetta 2
- consider issues like [USB-C connected monitors](https://www.macrumors.com/2021/02/03/macos-big-sur-external-display-issues/) not working from time to time (mine hiccups sometimes and have to unplug/plug the cable)
- consider Bluetooth issues - those seem to be partly fixed, but I still experienced some smaller issues when you need to manually connect the devices
- [docker issues](https://github.com/docker/for-mac/issues?q=is%3Aissue+is%3Aopen+label%3Aarea%2Fm1)
- no E-GPU support
- [Boot Camp no longer works](https://www.cultofmac.com/715395/boot-camp-not-supported-arm-macs/)
- some users reported [accelerated SSD tear](https://www.pcworld.idg.com.au/article/686484/m1-mac-users-reporting-excessive-ssd-wear-tear/)

I also recommend you to watch some of [Alexander Ziskind's Youtube videos](https://www.youtube.com/c/AlexanderZiskind/videos) around the M1 Macs. He is comparing them to Intel Macs or laptops and trying out various programming tools.

## Personal conclusions
My impression is that if you have moderately big projects to work on - with a lot of dependencies & especially if you need to use `docker` - you will run into various issues that you need to fix. Some of those fixes will be easier as the community posts issues and fixes on `Github`. But for some other issues, you will just need to wait for fixes and use an `x86` machine in the meantime.

**Overall, I consider it a good price for a performant machine.**

If you do mostly *web development* or *web design* and don't rely on things like `docker` or if you can use a mock API to mock your backend dependencies - I think this system makes a lot of sense.

If you are just learning programming, an `M1 Mac Mini` is a good machine considering the costs - you could even go for the cheapest M1 Mac mini. ✌️

{% twitter 1358214187244277771 %}

If you are patient and already have a good computer, you could probably wait around 3-6 months to see if more stable versions of the software you use pop up. Although seeing how fast the trend of fixing issues is - I think a lot of the current problems will be fixed soon.

If you are using Windows, I also have an article for setting things up for development and making a Windows machine more pleasant for development.

{% post https://dev.to/alexandrudanpop/modern-windows-10-dev-setup-1lnl %}

And, if you want to embrace Linux but like the MacOs BigSur look & feel, I wrote an article how to tweak Ubuntu to look like BigSur & configure some extra stuff to make it more pleasant:
{% post https://dev.to/alexandrudanpop/ubuntu-20-04-how-to-make-it-perfect-for-development-productivity-1jk5 %}