M1 MacBook: Impressions after two weeks
On 25 February I received my M1 MacBook Pro (there's a pretty significant waiting time for the model with 16GB RAM right now) and after a week of using it for software development I'm thoroughly impressed by what Apple has managed to accomplish. The M1 chip is exactly as good as all of the benchmarks and reviews say it is -- performance on this laptop is fantastic. I also didn't run into any issues setting up my development environment except for not being able to run Puppeteer under Docker. Docker itself seems to be pretty hit and miss on Apple silicon at the moment, however, so your mileage may vary.
Apple has hugely improved performance and Rosetta is an incredible technical achievement, but what's really striking about the laptop is how nice it is to use. I generally find laptops underwhelming and annoying, but this one is fantastic for reasons beyond the performance of the M1 chip which is what most people seem to be focusing on.
Compared to my previous laptop, the MacBook weighs a little over half as much. The difference grows larger after factoring in the (extremely) long battery life of the MacBook, which means I don't need to carry a charger around as the laptop will still have a good chunk of battery left over after a full day of work. Not having to carry extra accessories everywhere is very convenient, and I'm curious to see how well the battery will hold up after racking up battery power cycles.
The thermals and noise (or lack thereof) are great as well. There's supposed to be a fan inside the Pro, but I haven't actually heard it even when the laptop has been sitting at 85%+ CPU load for a while. I also haven't felt any air being dispelled from a vent, which is unnervingly awesome. The only thing that isn't completely perfect in this department is that the laptop body can get a bit hot if the machine is under load or being charged, but it's not as bad as other laptops I've used in the past.
And the keyboard is wonderfully unremarkable :) I purchased a MacBook when I first started studying at University and returned it almost immediately because the butterfly switches Apple was using at the time felt unusable to me (and others, too). Laptop keyboards are simply never going to be as good as a quality mechanical keyboard due to the limitations of the form factor, so being unremarkable here is good enough for me. Using the laptop's keyboard with long acrylics can be a bit uncomfortable, but that just comes with the territory of slim laptops with low keys and short key travel.
Integration with the rest of Apple's ecosystem is as good as it always is, and Touch ID seems to work better on the laptop than it does on my iPhone. Only downside here is that I can't use Touch ID in a number of contexts where it would actually be really helpful. I can't use Touch ID to unlock my password manager (BitWarden) for instance, despite the fact that I can do that on my iPhone, and I also can't use it to execute
sudo commands. I think the BitWarden issue is down to their developers, but I feel like
sudo as a built-in program should have Touch ID support.
It's not a completely perfect laptop and I have a few gripes with it (mostly that I'm limited to a 13" screen and only two Thunderbolt ports until later in the year...) but for the most part they're within my level of tolerance and have obvious workarounds. The MacBook trackpad has been oversized for a few generations now, for instance, but an external mouse and keyboard prevents me from accidentally brushing against the trackpad and causing random mouse movements.
The only thing that is really annoying (and it actually has nothing to do with this specific laptop) is that Apple still haven't split the mouse scroll direction setting from the trackpad scroll direction. Under the trackpad gestures section of system preferences you're able to enable 'natural' scrolling which makes the trackpad scroll content in the same way a touchscreen does. Likewise there's an identically-named preference under mouse settings which, when enabled, will cause scrolling your mouse wheel upwards to scroll content downwards and vice versa. There is no indication that these two settings are one and the same until you try to configure them separately and find out that you're doomed to have either a broken trackpad scrolling experience or a broken mouse scrolling experience. When I swipe down on my trackpad I expect my page to go up, and when I scroll down on my mousewheel I expect my page to go down. This has been an issue for me since the first time I used an OS X computer in 2009, and the only way to fix it is with third-party software like Mos.
It's a really great product. The performance of the new chip has received a ton of attention, but every other dimension of the engineering matrix has been improved. Compared to the Intel-based MacBooks, the M1-based ones are cheaper, faster, slightly lighter (somewhere around 0.1 lbs), far better battery life, and runs both quieter and cooler. If Apple had only made a few of those improvements it would have still represented a large step forward for the M1 generation of MacBooks but accomplishing all of them really does set the new MacBooks apart from their predecessors.
Despite that, if you've already got a recent MacBook (or other laptop that you're happy with) it's probably not worth jumping upgrading just yet. The lack of ports is a problem and the upcoming 16" version will include more. Depending on what you're doing, 16GB of RAM might not be enough for you -- my desktop computer has 32GB and that can start paging when working on certain projects. Another really important consideration is the relative immaturity of the underlying architecture, and while Rosetta does a great job of allowing you to run the software you need there are still some gaps which might be dealbreakers for you. Folks working in crypto would find this a difficult laptop to use given that there's currently no Haskell, for instance.
The biggest uncertainty for most developers right now is likely Docker. I haven't run into any issues with the current tech preview aside from not being able to run Puppeteer, but other people have run into all kinds of issues. It feels like a bit of a coin flip right now as to whether your Dockerfile will be able to run without issue, and that means it's probably not appropriate to be purchasing this laptop for production use just yet. This is another reason to wait for the 16" variant to release, as by the time it comes out the situation with respect to Docker and other software should be greatly improved.
But if your tech is supported, you can live with two Thunderbolt ports, and you aren't concerned about the possibility of running into weird issues with Rosetta then the product is very good.