The Worst Experience I've Had With an aarch64 MacBook
Published on 02/15/2021, 1033 words, 4 minutes to read
I've had my hands on this M1 MacBook Air for a few weeks now and I have gotten a lot of opinions about it. I wanted to go over them and give my thoughts. This is an amazing laptop. Its battery life is iPad tier. I can run iPad and iPhone apps seamlessly.
That being said, aarch64 macOS is still very much in its teething phase. Rosetta is nothing short of a technical miracle, it's amazing how close it is to the performance of running amd64 apps natively. As such, it's probably going to end up being the worst experience that I have using an aarch64 MacBook.
My tower is running this version of Rust:
$ rustc --version rustc 1.51.0-nightly (a62a76047 2021-01-13)
My MacBook is running this version of Rust:
$ rustc --version rustc 1.50.0 (cb75ad5db 2021-02-10)
Building a development build my Ryzen gets this:
Finished dev [unoptimized + debuginfo] target(s) in 1m 00s
Doing the same development build, my M1 MacBook Air gets this:
Finished dev [unoptimized + debuginfo] target(s) in 1m 03s
And the MacBook didn't even get warm.
Everything I have thrown at this seems to get about the same results. This 15 watt laptop chip holds its own with desktop machines. I can only imagine how this will proceed as Apple advances their processor technology.
With the exception of virtual machines, the M1 MacBook Air runs nearly everything I need it to. I have a Go compiler, Rust compiler, Nix, Discord, Slack, Telegram, text editor, image editors, chat clients and more. Some of that software is running in Rosetta and I am not able to tell when that is the case.
The biggest thing that doesn't run properly on here is Emacs. I am able to get a version of it via Rosetta, however there are weird hangs that will randomly eat up all my input while I am in flow. This is undesirable to say the least. I've been using the aarch64 build of VS Code for the meantime, however I am really missing the native Emacs experience. Maybe a future version of Emacs for Mac OS X will improve this (or even make a fully native aarch64 build).
Being able to run iPad and iPhone apps is also really nice. There's some constraints involved with having to emulate the touchscreen input, however overall it's enough to get the job done. I had to use iMazing to get installable versions of some apps I wanted to put on my mac (such as Skip The Dishes so I could get its notifications in the same place and Procreate so I could use Sidecar to draw using the M1's GPU power and extra ram), however they work well enough in general.
It would be nice if more companies toggled the "supported on M1 Macs" flag. I'm willing to use a degraded experience if it means it's easier to access things that are otherwise exclusive to my phone (such as Facebook and my banking app). It would be great to use Netflix without having to open Safari.
Something that really surprised me was how well Dolphin runs when you use a native build. I'm able to play Gamecube and Wii games at retina resolution and the MacBook doesn't even get warm to the touch. The amd64 version of Dolphin uses some Just-In-Time compilation that Rosetta can't emulate at all, however the aarch64 one runs a lot faster than it has any right to. It must be easier to translate binaries between RISC processor types or something. You have to build Dolphin from source when you do this, however it's worth it.
I have written a depressing amount of this blog's content on a butterfly keyboard mac. The keyboard on the M1 Air is night and day better. It's like using an older MacBook keyboard without being forced to wear headphones to mask out the fan noise. I'm typing this in qwerty at the moment (I seem to have settled on being able to seamlessly switch between qwerty on laptop keyboards and Colemak Mod-DH on my Moonlander), but goddamn they really made the typing experience so much better. I wish I had this keyboard years ago.
My previous MacBook was a 12" early 2018 model. It had 16 GB of ram (though 8 of it failed and became unusable somehow) and chugged doing basic tasks. It had a dual core processor and ended up being practically unable to handle more than basic code compilation. I shudder to think about how long it would take to build my website code on that machine. It also got hot. Very hot. I didn't even have to push it very far to get it so hot. The battery also started to go sour by the end of me using it. Overall I think it was a good purchase and I've gotten a lot of mileage out of it, but this M1 Air is so much better it's not even funny.
If you are looking for a machine that is silent, room temperature, and capable of doing anything you can throw at it, look into getting an Apple Silicon Mac. This first generation is going to have the most teething issues; so if you don't want to deal with the jank that comes with a first generation product I'd probably suggest waiting for the M2 or whatever they are going to call it. I know it's certainly worth it for me, but I am not you and my needs will be different from your needs.
This writeup was not sponsored in any way, Apple is not reviewing this post for content (and probably doesn't know that I made it). I am just a fan of this device and want to see aarch64 on the desktop succeed.
Facts and circumstances may have changed since publication. Please contact me before jumping to conclusions if something seems wrong or unclear.
Tags: mac, aarch64