locxter.net

I was about to buy a Mac as a software developer, this is why I didn't

2024-08-25

I have talked about buying a new laptop before starting my university studies quite a few times over the last few months and almost all of my considerations have been around choosing a MacBook for my software development needs. Hack, I did even order a MacBook Pro for a great price online, but my order was cancelled for better or for worse, and now I am happily typing this article on my new certainly NOT-MacBook laptop running Linux. So, let's talk about why I was about to buy a Mac as a software developer and why I ultimately didn't...

Before we start comparing devices and their advantages against each other, I want to emphasize that everyone has different needs for their computer and what is great for me might be a bad choice for you - so take this article as my humble opinion on the topic and not necessarily general advice. With that out of the way, my needs are almost solely a great experience for software development and office work, since I don't edit photos or videos regularly and don't game at all. This means that I couldn't care less about GPU performance or an especially color-accurate screen, but deeply care about CPU performance, great input devices (especially the keyboard) and especially exceptional battery runtime. Good IO featuring full-size USB-A ports and HDMI is nice to have, but if the whole package is great otherwise I can also accept using dongles. Last but not least, I also won't use Windows as my operating system and demand a Unix-based system - so it either needs to run macOS out of the box or have good Linux support, which comes with its own set of requirements for the hardware.

These criteria immediately make a MacBook an appealing choice, since they have amazing battery life due to the efficient ARM architecture of the M-series processors, great performance (especially single-core, but multicore is also good) and best-in-class screens as well as touchpads. The keyboards are fine and macOS allows me to run all the software I need adequately without many of the shortcomings of Windows, but it can also be quite annoying with some of its questionable design decisions like terrible window management. Overall, MacBooks just are really good developer machines and would be easy to recommend, if there weren't the plethora of artificial short-comings (limited external screen support and only passive cooling in the Air line, no support for Multi-Stream Transport et cetera) or the outrageous pricing - especially for upgrades. All of my machines until now have had 16 GB of RAM, but that just isn't cutting it anymore due to how memory-hungry all JetBrains IDEs and especially Android Studio with its emulator are - so I need more for my new laptop together with at least 512 GB of storage, ideally 1 TB. The MacBook Air starts at a somewhat acceptable 1.299 € here in Germany, but only features 8 GB of RAM and a 256 GB SSD for that, so I would need to max out the RAM to 24 GB and upgrade the SSD to 512 GB to match my requirements, which immediately puts me at 1.989 € and is an insane price to pay for these simple upgrades. Even worse, 24 GB of RAM feels barely enough and not super future-proof, which is something I demand such an expensive machine to be. The only solution to this would be to choose a M3 Pro MacBook Pro with 36 GB of RAM, but that would cost at least 2.959,00 € and still only comes with a 512 GB SSD. Granted, it has a better processor, active cooling, better IO and a better screen, but paying almost 3000 euros for a laptop is just crazy and I heavily dislike the idea.

To my shame, I even ended up ordering a M3 Pro MacBook Pro with 36 GB RAM and 1 TB SSD in a great deal for closer to 2000 bucks though, which was then cancelled by the seller, because it apparently wasn't in stock - or they noticed that the pricing was just too good. Looking back, this cancellation was good thing, since Apple's reveal of their AI plans with deep integration into the OS made me feel quite uncomfortable investing so heavily in any of their products and would require an increasing amount of effort over the years to remove these features, which I don't want on my computer. Additionally, everything in these machines is soldered down, so I can't upgrade a single component and replacing parts is a typical Apple nightmare, which makes these machines not appealing from a repairability and sustainability standpoint. Ultimately, all of this eliminated a MacBook as a viable option for me and I was back to either searching for a feasible laptop for Linux or just waiting for the right laptop for me to come out. Luckily, I found a superb match with the HP EliteBook 845 G10 with an AMD Ryzen 7 7840U, 32 GB RAM and a 1 TB SSD for just over 1.100 €, which is less than half the price I would have paid for a MacBook and actually better in some aspects. Especially the keyboard, port selection and repairability/upgradability stand out as positive aspects with it. I am easily able to upgrade the RAM and SSD, replace the battery or any other part and there are even official repair guides available - that's something very rare these days, except for Framework of course. I was actually considering a similarly specced Framework 13, but despite having a bigger battery, it has worse runtimes, is louder under load and quite a bit more expensive - so I opted for the HP. To my surprise everything just worked out of the box with Pop!_OS 22.04 and even under Linux I manage to get all-day battery life, while having on-par performance to the M2 Pro of a friend in real-world situations (we used compiling Ghidra as a benchmark). Sure, the battery life isn't as good as on a MacBook and especially under load you manage to drain it rather quickly, but overall it still is an excellent machine, I'm very pleased with both it as well as the money I saved compared to buying the Apple alternative and am happily willing to sacrifice some quality of life for the freedom this machine offers me - both in hardware and software.

Before coming to an end, I want to talk about the elephant in the room - Windows on ARM laptops. Yeah, they seem pretty great (apart from this useless Copilot key) and offer MacBook rivaling battery life as well as performance, but at least currently they still struggle with software compatibility, stability and Linux support. This is expected for a first-generation product and will change in the future, but I'm in the market for a laptop right now and need something that works. Qualcomm seems quite determined to quickly bring Linux to these devices and there already have been some community efforts to build the required device trees, but from experience I can say that usable Linux support takes at least two or three generations and that's just more time than I can wait for.

With that said, feel free to share your thoughts on as well as personal experiences of buying a laptop as a software developer in the comments down below and have a lovely day...

RSS feed