Linux user meets macOS

I decided to buy myself a nice shiny new computer.

Status quo ante

For several years preceding the start of the current one, my daily driver machine has been a Thinkpad T460. The hardware has served with flair, and in spite of years of extended daily usage and occasional surprise visits to the floor, it has remained in one piece and in good working order.

From a software standpoint this machine has been running Debian Stable since the day I got it. Much as I would like to claim that I’ve been running a single continuous Debian install since then, I did have to reinstall at one point along the way, as I mentioned in a previous post a few years ago.

People do occasionally joke about the software versions in Debian Stable lagging behind the latest upstream versions (I’m looking at you, NixOS unstable users!), however I also very much enjoy not having to worry about significant or breaking changes to my operating system more than once every two years. It’s been a long time since I ran Arch Linux on my NAS, and I have vastly less free time now than I did then.

Other than that, I’m running a fairly boring i3wm configuration, and most of my life lives inside a terminal emulator, Firefox tabs, Thunderbird, and (to my slight irritation) a slowly increasing number of chat applications.

English Wikipedia tells me that the T460 dates from 2016, and in the past year or two it has been starting to show its age. A RAM expansion was a well-earned mid-life upgrade, however the CPU has become a bit of a sore point. At some point I got it into my head that the CPU’s thermal power dissipation is low enough that it almost doesn’t need active cooling, however I don’t have any references on hand to back that up.

The desktop responsiveness of my T460 has been perceptibly lacking, especially since using a considerably newer Thinkpad with an AMD Ryzen chipset at work as a comparison point. It’s not clear whether this is purely a matter of available CPU cycles, or whether playing around with the kernel task scheduler might make a difference. I also have hyperthreading disabled on the T460 out of vague and poorly-defined concerns about security; I make no claims about whether this is well-justified.

My T460 has a 1366x768 display, and while I would really like to say that this is resolution enough, I’ve really been spoiled by the pixel density of contemporary smartphones and 1440p and 4K displays getting to the point where they’re readily available second hand.

There is a significant upshot here in that the lower CPU power and display resolution are both very good for battery life. The T460 is old enough to have two separate batteries, one internal and one external. With an expanded external battery, and accounting for battery wear, my Thinkpad reports an overall power density of 80 Watt-hours. Under light usage, the machine easily lasts an entire day on a single charge.

Philosophical interlude

There is a scale with idealism on one end and cynicism on the other. Somewhere on this line lies pragmatism. As with anything else, technology choices come with tradeoffs.

In the past I’ve cared strongly about owner control of my devices, which is either how I got into Linux in the first place or because I got into Linux in the first place – I was once upon a time a very enthusiastic tinkerer. This is how I ended up using Thinkpads, given that they intersect good driver support and reasonable durability. I run Android on my phone for similar reasons, given the ecosystem of third-party ROM’s and gratis open source software.

Of course, this points at a trade here. Linux’s hardware support has not always been so good in consumer hardware (though I have no idea what that’s like these days), and the software ecosystem is something of a mosaic. The fragmentation can make developing applications for Linux dubiously tractable, and there are still settings where Linux users are a poorly or not at all supported special case.

On the other hand, I have a lot of friends who are contented macOS users – and this is entirely reasonable, as macOS has some nice things going for it. Apple certainly knows how to make pretty computers, and sometimes aesthetics matter – as far as the Thinkpad is concerned, reducing the text size in the browser so I can fit more words on the screen works up until the display runs out of resolution for legible text rendering.

It’s certainly quite convenient to have a computer which stays cool to the touch even in 35 (Celsius) degree weather during the summer, and can nonetheless still tear through more demanding computational tasks like video streaming in between the heat waves. Apple integrates vertically, which the user experience also benefits from greatly. Not everyone wants to take a box of software Lego bricks to build their own bespoke user interface. I’m told that Apple’s accessiblity functionality is also very, very good, though I haven’t used it myself.

Good things come with a price however – both in terms of how much lighter your wallet becomes after buying a computer from Apple, and in how much Apple keeps their fingers wedged into it after they’ve handed it over to you.

Any tradeoff is influenced by what you’re trying to achieve.

It’s like threat modelling: what are you actually up against? Idle web browsing, watching Netflix, video conferencing, or rebuilding the Rust compiler? A machine which can chew through Haskell builds like a hot knife through butter can probably handle these tasks just fine, but it’s not necessarily going to be as portable as a butter knife.

I can comfortably do a little bit of coding here and there on my Thinkpad, which was a good match for churning out university coursework back in the day. However, it’s a bit bulky and gets a bit too hot for comfortably watching films in bed, and the CPU really struggles with video conferencing, which is decidedly suboptimal in the current age. My leisure time these days, alas, features much more media consumption and socialising than software development.

My requirements have changed, and hence the tradeoffs I’m willing to accept as well.

The Darwin side of the Force

I was originally going to write “sometimes, idealism is for suckers” at the start of this section, but on balance I think that’s a bit mean. Regardless, I bought an M2 MacBook Air earlier this year.

The hardware is sleek. It’s an Apple product, so that probably goes without saying. Nonetheless I’m very impressed with how thin the machine is. I’m not sure how it compares to the Thinkpad in weight, however it slips into the back of my rucksack and is more comfortable to carry. It’s light enough that I’ve developed the incredibly bad habit of simply throwing it across the room from my desk to my bed and trusting that the bed is clear of obstacles.

My initial impressions of the battery life were a little underwhelming, however I adjusted my expectations when I realised my point of reference was a seven year old Thinkpad with considerable extra battery capacity strapped on. The MacBook battery comfortably lasts a day or two of light usage, and given the ubiquity of USB-C chargers in my social life I don’t need to worry about forgetting a charger of my own. In comparison, my Thinkpad slightly predates USB-C, and uses the weird proprietary Lenovo power adaptor which externally looks like a USB-A plug – these are considerably less ubiquitous in my social life, so knowing where one’s charger is is much more important there.

The first draft of this post was left neglected for over three months before I got round to finishing it, so the memories of the unboxing and first-boot setup experience are lost to the wind. The UI is otherwise fairly pleasant overall, and in spite of its (apparently well-known?) quirks and shortcomings, the floating window management is a nice chanage. I find this works better than tiling for me on larger displays, though I might just not have had enough practice using i3 on big screens.

The UI is mouse-oriented, and the touchpad gestures integrate with the window management splendidly, though I got used to the gestures so quickly that I’ve had difficulty using macOS with a mouse. I’m less enthusiastic about the keyboard, as the key travel distance is much shorter than that of my Thinkpad, and I’ve found that prolonged use causes some wrist pain. While I initially developed a strong preference for the MacBook over the Thinkpad, overuse of the MacBook keyboard contributed to me straining my wrist a month or two ago, so more recently I’ve been preferring the Thinkpad for more keyboard-oriented activities when I’m not sitting with my ergonomic keyboard.

As for application software, I’m using Homebrew – that’s what my macOS power user friends are using. I considered installing Nix, however I use Nix at work, and this is meant to be a leisure machine. Homebrew also integrates with native applications (so they’re visible in the spotlight search and so on), which to my knowledge Nix does not.

The difference in performance between the two laptops is stark. That much is obvious on paper – going from a seven year old dual core chipset which traded performance for power consumption to a contemporary many-core heterogenous chipset (running an operating system which is vertically integrated for this hardware) is a big step up for sure. But it’s another thing to observe that in practice. One of the first things I noticed with the MacBook is that it reloads webpages in Firefox much quicker than the Thinkpad, and I’ve also found that some web applications (including some instant messaging clients which will remain unnamed) are much more responsive on the MacBook. The thermal efficiency goes without saying, as all the Apple Silicon MacBook Air’s are passively cooled.

Appendix: tweaks and tricks

Some of the accumulated wisdom from the road.

Was it worth spending that much money on this computer? Yeah, I think it was.