How does the M1 MacBook Air fare as a frontend dev machine? 12/13/2020

markdown img
How bad is the intel transition really if you are trying to do 'real work'

We know that the office users of the world are already getting beta builds of arm64 optimized apps for their primary workflow, but how is the machine as a frontend developer in 2020?

Finding Apps

First there is the wonderful 'nova' by panic. It definitely looks and feels like a native Mac app, but as someone that spends all day on my intel work machine in vscode it still leaves me wanting in a few key areas:

  • No support for styled components
  • Prettier extensions are janky at best
  • Relearning a whole set of keyboard shortcuts seemed excessive

Next, apparently sublime text 3 is NOT going to support arm64, however the beta builds of ST4 do have arm64 support on linux, so its not a far stretch to assume that Mac compatibility could be coming soon™ on that front.

Finally, after messing around with nova for longer than I probably should have trying to make it work for me, I discovered that in the week or two since Apple shipped these machines there is already an arm64 build of electron, so its just a matter of time until downstream projects adopt it.

Microsoft has apparently already adopted it, but only on their 'insiders edition' of vscode, which fortunately is just an extra download and seems to cohabitate quite nicely with the stable version.

So we have a reasonable editor now, what about actually building stuff?

The most critical tool to my particular workflow is nodejs. Both as a build tool and as a useful server layer in some of my simpler projects its pretty hard for me to tackle any modern frontend projects without a working version of node.

After a quick stop at their site looking for a pkg installer just in case they had a prebuilt one, I fell back on my old standby nvm. While nvm has binary builds available for intel machines, they don't (yet?) have any for arm64. Thankfully as I have previously mentioned this machine is wicked fast. Building node from source wasn't much of a challenge to the m1, and the bottom did not even get appreciably warm to the touch by the time the compilation process had finished.

Compile finished, firing up node worked beautifully. Cloning (note that git is no longer installed by default on Big Sur -- you'll need to install command line tools or Xcode itself) a few existing projects from GitHub was fast and smooth, and dependencies took quite a bit less time to install than on my intel MacBook--largely on the back of the storage performance boosts we have seen in the past 4 years since that machine was built.

Great so node works but what about go?

Apparently the go team is working on it, but at the time of this writing I wasn't able to get a reasonable version of Golang running on the m1. Im sure that will change with time as more and more software supports it. I also think that it is currently possible to do, I was just reticent to do some of the weirder steps involved until they have better support.

Its also of course quite simple to run brew under rosetta2, but I'm trying to stay as native as possible despite rosetta's reasonable enough performance in most cases.