Years ago Mac laptops were getting so much better every year that I was on a 2-3 year cycle for upgrading my machine. The performance increases helped with my productivity as it reduced compile times for my work. This increase slowed dramatically in the last decade and I stopped buying new machines so often.
When the Retina MacBook Pro was released (2012), I got a fairly loaded one (quad core i7, 16 GB RAM, 512 GB SSD). This machine was a workhorse for me for 5 years. In 2017, I bought a new 15" MacBook Pro that was kind of a mid range machine that was still a quad core i7, but had a higher clock speed. It definitely was faster, but for being 5 years newer, I really had expected more. In any case, I gave my 2012 machine to my wife (she says she doesn’t mind getting older hardware as long as it works; does she really mean it? I hope so!).
For a few years, the 2012 machine has had an indicator saying that the battery needs service, but it can still be used. We’ve ignored that for awhile as it mostly stays connected to power. Two weeks ago, the machine restarted a few times while my wife was using it to teach. My theory was that the battery was on its last legs and when the MagSafe adapter got knocked out, it lost power and restarted. That might not quite be the issue, but started me thinking about what to do with it. We had basically 2 options; option 1 was to replace the battery myself using a battery from iFixit or buy a new computer.
I’ve opened up machines before and replacing a battery should be doable. However, this machine has the battery glued in and was rated as a hard to replace. If anything went wrong, the machine was basically toast. A friend of mine saw a technician replace the battery and advised my against it. Apple put the machine on its obsolete list last year so Apple wouldn’t touch it and authorized repair centers couldn’t get Apple parts for it; so if I wasn’t going to replace the battery, who would? If the battery wasn’t the problem, getting it serviced would be near impossible. It would also be throwing money at a very old computer (9 years is a pretty long life for a laptop).
The second option of buying a new computer was the easier option, but far more expensive. My wife didn’t care if I got a new machine and she got my 2017 machine or if we got her a new machine. I asked a few friends what they would do and the answers ranged from don’t buy an M1 machine now because it is a first generation to loving his M1 MacBook Air. I had shied away from the MacBook Air for me in the past because they had been underpowered and I thought the screens were too small. These days I use an 11" iPad Pro often and don’t use my laptop all that often without it being connected to an external display, so I would be OK with the 13" display and the differences between the Air and the 13" MacBook Pro were relatively minor that I’d save a few dollars by going with the Air.
I decided to get a new M1 based MacBook Air and my wife would get the 2017 machine. While she didn’t care, I justified me getting the new machine thinking that if there were any problems with the M1, it would be better that I had them than she did as the computer is just a tool for her and she doesn’t like futzing with technology.
The machine I picked up was a 16 GB/1TB/8 GPU M1 MacBook Air. Of course I bought AppleCare+ with it as I now buy AppleCare+ on just about every Apple product that is portable. This was the least I’ve spent on a laptop (in raw, non-adjusted dollars) in a long time; did I make the right decision? Would the machine be able to handle my daily work?
After setting up the machine, I worked on getting my projects to build. While they built fine for an iOS device, they wouldn’t build for the iOS simulator due to a different simulator architecture. Unfortunately there are a few 3rd party libraries I use that I don’t have source for and needed a workaround until the libraries are updated. I did a bunch of searching and found the answer:
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
That magic line in my project (as well as sub projects) got me going again. A full build of one project on the M1 machine was 42 seconds; on my 2017 machine it was 1 minute 24 seconds. Wow! That’s some pretty impressive performance.
The next part of getting setup was getting a Ruby on Rails project setup. Luckily Homebrew has many packages compiled for the M1, so I installed that, Ruby and some other pieces. Unfortunately it took me about a week to figure out that I had to change the version of a library to the latest as someone committed changes to build on the M1.
I took the machine on a trip last week and I absolutely love the size and weight! Even though it is a lot smaller than my 15" machine, the screen is easy to read. The keyboard is excellent and the machine performs well in everything I’ve thrown at it. While it only has 2 Thunderbolt/USB-C ports, that’s not a problem. I have 1 connected to a Thunderbolt 3 to Thunderbolt adapter for my Thunderbolt Display and the second is connected to a USB-C hub that has a few USB-A ports, SD Card reader and power delivery.
Up until yesterday I hadn’t restarted the machine since I got it, but have had 3 kernel panics since then which is concerning to me. I’m not sure if it is related to the external hard drive I connected to perform a backup or running Cura in Rosetta 2.
As long as the kernel panics stop and performance remains as good or better than my old machine, then I’ll be a happy camper and this will have been a good purchase. When Apple releases new machines with either the M1 or a newer processor, I think they’ll be a hit. However, I’m so taken with the size and weight of the MacBook Air, I might not want to move to a larger machine even if it has better performance.