A long-term review of the M1 MacBook Pro
Through sheer luck and peculiar procurement processes I’ve had the opportunity to try out both the 14″ and 16″ versions of the 2021 MacBook Pro. Both models were similarly specced. After a brief evaluation of both models I ended up choosing the 14″ MacBook Pro, which I have been using as my daily driver for about six months now. Time for a long-term review!
I’ll start by listing the specifications, but they don’t tell you all that much. My machine is configured with an M1 Max chip, which has a 10-core CPU and a 32-core GPU. That’s pretty much all the information I could find on the product page. Apple doesn’t advertise clock speeds and other technical details any more, and to be fair, it doesn’t matter all that much any way.
|Processor||Apple M1 Max-chip with 10-core CPU|
|Memory||32 GB 6400 MHz LPDDR5|
|Graphics||Apple M1 Max-chip with 32-core GPU|
|Display size||14″ (3024⨉1964)|
|Retail price||€3669 (about three kidneys)|
There’s much to like about the 2021 MacBook Pro:
The screen is amazing. It’s bright, the colours look nice, and I haven’t seen any glaring issues (aside from some literal glare). The 14″ only feels marginally smaller than the 15″ displays I had in my previous MacBooks.
The bezels have also become much smaller. Consequently, the screen now has a notch: a small cut-out where the webcam resides. It’s a bit more noticeable on the 14″ model, but you quickly get used to it. Most importantly, the notch doesn’t take away any valuable screen estate. You still get your full 16:10 space below it.
The battery usually lasts about six hours for me, which doesn’t even come close to the advertised battery life. It’s even less when I participate in Teams meetings with a Kandao 360° camera. Then again, I’m running heavy workloads in the background most of the time. Other laptops don’t last more than two hours with this setup.
With regard to weight, the 14″ model is small and light enough that it can be comfortably held with just one hand. It’s perfect.
The 16″ model on the other hand is massive. You’ll want to hold it with both hands and you definitely don’t want to carry it on your back all day long when you’re on call.
Newer MacBooks don’t produce much noise or heat. You can
npm installor compile large programs all you want, but spin up.
I’m still happy with the keyboard. It works fine and looks nice. I still think ThinkPads have (or had?) slightly better keyboards, but really, I can’t complain.
MacBooks still have one of the best touchpads on the market. The Touch ID button also doesn’t feel cheap any more, now that the stupid Touch Bar gone.
The 14″ MacBook Pro’s speakers may not be as good as those of its larger 16″ sibling, but they’re still miles ahead of those in other similarly priced laptops. Heck, these speakers sound better than my 48″ TV!
The HDMI port is an absolute godsend for me, as I regularly have to give presentations or share my screen in different meeting rooms.
MagSafe has also made its way back to the MacBook. I didn’t really need it, but it’s nice that I can see if my laptop is charging.
As long as Apple doesn’t revert to its old habit of taking things away just because they can, pretty much all of these pros also apply to the newer M2 models.
The M1 MacBook Pro has a long list of pros, but there are also a few cons. Most of these have been around for a long time now, although there are also a few issues that are new and still present in the 2023 M2 models:
MacBook Pros are expensive as ****. I understand getting one if you’re planning on using it professionally (or someone else is buying it for you), but there are zero rational reasons to pick a MacBook Pro over a “normal” MacBook for personal use unless you’re absolutely loaded.
The 14″ MacBook Pro comes with three USB-C ports, but almost all of my peripherals at work use USB-A. I didn’t choose the dongle life, the dongle life chose me!
Most people know that Macs are . The 2021 MacBook Pro gets along better with external devices than previous models, but it still doesn’t support everything I want. Most notably, touch screens.
Personally, I’m glad that the Touch Bar is gone. But I understand why some people might miss it.
I’ve been using Macs for nine years, but I still don’t like macOS. Then again, I don’t really like Windows either (too many reboots) and I don’t have the energy to deal with Linux’s shortcomings on laptops. The only reason I use macOS is because it’s a rock-solid Unix system.
Some iPhone and iPad apps can be run natively on Apple silicon Macs. It works, but it’s awkward. Running mobile apps in desktop environments wasn’t a good idea on Windows and it isn’t a good idea in macOS either.
Apple M1 chips have been around for about 2.5 years now, but still do not officially support operating systems other than macOS. Boot Camp has become a thing of the past, so if you want Windows on your MacBook, you’ll have to run it in a virtual machine. For those who prefer Linux there’s Asahi Linux, but it’s probably not a good idea to install that on a company laptop…
The reason why newer MacBooks no longer support Windows and Linux natively of course has to do with Apple silicon. The is a very good reason to purchase these new MacBook Pros, but it can also be a very good reason to stay away from them.
As you probably know, the M1 chip is ARM-based (like Androids and iPhones). Most popular Mac software is compiled for ARM-based chips and will work natively on Apple silicon, but there’s a lot of older software that hasn’t been compiled for ARM yet. You’ll still be able to run that software however, due to Rosetta 2; for Apple’s new M1 chips on the fly.
This doesn’t mean that migrating to M1 is a walk in the park. Depending on your use cases, there will be obstacles.
Most widely used Docker images support multiple platforms. Docker generally downloads the image that’s most suitable for your platform, but sometimes this isn’t possible.
Many older images do not support ARM yet, so if your team is stuck with older
versions of software (e.g. MySQL or Elasticsearch) you’ll need to explicitly
tell Docker that you want to run the “normal” version by adding
--platform linux/amd64 to your
docker run command or
to your Compose file.
This is where Rosetta usually starts to come apart, so keep in mind that your containers may run slow as molasses or not at all.
Like I said earlier, the newer MacBook Pros do not support any operating system other than macOS. If you want to run Windows, you’ll have to run it inside a virtual machine.
I use Parallels Desktop, which works very well for the most part. Apple silicon is powerful enough that you’d probably have a hard time telling that Windows is running in a virtual machine. The cooling fans don’t even have to come on! I could definitely imagine myself running Windows on my MacBook like this literally all day long.
Where all of this breaks down though, is that at the end of the day everything is still running in a virtual machine. What’s even worse, you’re not running the normal version of Windows, but the ARM version – and pretty much everything you want to run on Windows is made for x86-64. Fortunately Windows also has a Rosetta 2-like emulation layer built in. Most software will still work as expected.
Many older video games work just fine, . However, any software that requires DirectX 12 won’t work at all due to technical limitations in Metal, Apple’s low-level 3D graphics API. So if you want to use an Apple silicon Mac to play games like Hogwarts Legacy, you’re shit out of luck.
I’m part of a team that writes services in C#/.NET (among other things). Services that use .NET 6 or newer works just fine on macOS, but I can’t get any of our legacy .NET framework-based services to compile on macOS. It technically works in my Windows virtual machine, but the experience is absolutely awful. Especially if your preferred IDE is Rider, because then you’re running an IDE that runs in a virtual machine that runs inside another virtual machine, which has a very noticeable effect on frame rate.
In other words: don’t buy a MacBook if you need to maintain legacy software that are written using Windows-only SDKs or libraries.