At the same time, I've become more and more frustrated with Linux support on laptops. The last Thinkpad I used didn't have working wifi drivers out of the box! Getting Nvidia drivers to work well on a laptop is also a big pain.
So HN, what do you recommend?
Until the M1 came out. It hands down beats every machine I have ever owned. I have an M1 Air, no fan, 10hr battery life, tiny package. It is amazing hardware. Docker is fast on it. Not linux fast but fast enough to always be running a dozen containers.
I find the recommendations saying that 'the software on mac is terrible' to not be the case for me. Sure, I am not running a fancy Wayland/sway tiled setup but the MacOS desktop is not THAT bad; at least it is not Windows.
I mostly use open source software every day. Alacritty (terminal), neovim (IDE), zsh (shell), firefox (browser), obsidian (docs). Spotify, slack and zoom are pretty much the only applications that are not open source.
I use dotfiles and use brew/brewfile to install packages. Brew has problems but apt/yum/etc have problems too. If you really want to keep things clean then you can use Nix on Mac if you wish.
And the Apple ecosystem? It just works and that is all I really care about. I put in my airpods and they can connect to all my devices. If I need to share files I can just air drop them to whatever device I want or just let them sync with iCloud.
I don't have time to fight with technology as I want to spend that time building things or hanging out with the family.
I think Asahi linux on M1/M2 laptops will be pretty amazing in the next year and you can have the best of both worlds.
Software? I use tmux, emacs, firefox. My experience is very similar on GNU/linux, windows, or mac.
Mac window managment is a little wonky. So I installed the "rectagle" app for for simple window snaps and got on with stuff.
Plus, as other users have said, docker sucks on mac. Even windows is better (WSL can use memory ballooning so you don't have to dedicate a chunk of RAM to docker, the vm takes care of it)
Also I hear good things about ARM from a performance and battery/heat standpoint, but so much software out there is still designed around x86 arch that I don't want to switch.
(disclaimer: I use Windows, not Linux)
---
Coreutils:
brew install bash
brew install coreutils
Mac is way less frustrating than Windows, but not all Linux apps are available on Mac. If you use gpg on mac, be prepared for a lot of annoyances. On Linux it was more stable. Another thing that is missing is the i3 window manager. Virtualization limits you to modern systems, as there is the M1 chip.
Use whatever saves you the most time, we only have one lifetime
Join the dark side. It's not that bad here.
My pitch to you is that if you want an environment similar to production you should be using a bastion server. iTerm2 is a nice piece of software and quite ergonomic.
As a selfish admin (never for corp), being on Linux potentially means you are a non typical environment which requires higher levels of support or unique support, supporting multiple environments is like supporting more edgecases. There are economies of scale for everyone when you use the environment that everyone else is using.
If you're working for a company and development on a MacBook is slow, that's the companies problem, if you're working for a company and your development environment is linux, while everyone else is on a MacBook, that's your problem (or at the very least, you can expect lower prioritization).
Also, you might think of a device as the operating system it is running, but I would encourage you to instead, think about it in terms of how you use it.
The mac keyboard and track-pad set the industry standard multiple times now (with some notable catastrophes) and is very satisfying to use in ways that other laptops aren't. So if you use your laptop as a laptop, the keyboard itself deserves some consideration greater than the operating system, IMHO.
I am on the last generation of mac that ran intel, and don't have problems running other environments, but I use servers in the cloud when I want proper linux.
On most setups, I find myself lucky if _something_ doesn't go wrong when connecting my displays with a mix of USB-C and HDMI. And of course I cannot place my second screen to the right, it has to go to the left (in XFCE).
In Windows this just works, and I believe Mac is better as well.
My brother is the least tech user you can imagine and got tired of windows updates breaking his drivers every time they ran. So, he ended up with a Dell Linux desktop (Ubuntu) and has had no problems, meaning bluetooth, wireless, etc. I don't know about Nvidia support.
My disclaimer is that I have been using mac stuff forever, along with Linux because in earlier times, very little of the open source good stuff was compiled for mac. That said, most of my computer time these days is browsing, and processing photos, and I use open source apps on the mac to do that. The imac of over 10 years just lost its backlight, and I really miss the brightness and sharpness.
Don't forget that Apple and Microsoft exist to make boatloads of money, and will do what it takes to expand their business models. (selling content, devices, A.R., pushing A.I. into stuff, SAAS, and lately, banking) Linux is great because of what it's NOT doing, IMO. Getting things done is about focus on the task.
Same goes for switching in the other directions.
I've run Linux for 22 years and UNIX for 10 years before that. I had a brief flirtation with MacOS in 2006 - that lasted a mere 3 or 4 months. After Linux's freedom to do whatever I wanted, Apple's 'walled garden' was just too constrictive for me to bear.
The last Thinkpad I used didn't have working wifi drivers
There used to be an old saying back in the 80s or thereabouts: "Decide your OS depending on the Apps you want to run on it. Decide your hardware depending on the OS you have decided to run on it."
Did you buy a ThinkPad out of a store and then decided to work out what you wanted to run on it? Or did you do what I usually do, and that's to decide on a Thinkpad and then customise its hardware to suit my Linux on the Lenovo website.
Hint: Intel hardware generally is a better match with Linux.
WSL2 with wslg is pretty nice thou. Windows terminal and multiple distros in wsl2 is pretty nice. Even have arch running in a wsl vm.
With Linux, if you are having wifi issues, you are almost certainly running the wrong distro.
I have run Fedora on dozens of Thinkpad models over the last 15 years. All the hw things work OOB now. Several Thinkpad models ship with Fedora as well too. It really all just works at this point.
I'm sure people would say this cognitive burden is not useful and freeing your mind from it will let you get more valuable knowledge. But tinkering with your computer is an underestimate skill.
Last time I ran Docker on a Mac it was sooo slow. Not sure if they've improved that but something to be aware of... https://nodewood.com/blog/how-to-speed-up-docker-on-macos/
On the other hand, we are generally deploying to AWS Graviton anyway which is ARM as well, so perhaps it will be more similar!
13 years is enough time to try something new that just works.
To save yourself 13 more years of frustration over basic things like Linux wifi drivers and Nvidia drivers breaking down in 2023, just use a Mac.
It just works and gets out of the way.
If you want to be as similar to prod as possible, then Linux is much closer. Containers are much more convenient to run on Linux.
Given its a one time setup and you use the laptop for 1-2 years at a minimum, I find it a weird hill to die on.
perhaps try a simpler linux setup and change it less frequently. on arch or alpine edge.