Ask HN: I've run Linux for 13 years. Is it time to switch to a Mac?
I've always used Linux because I want to keep my computer as similar to prod as possible, first servers and now robots. Now that everything is containerized that feels somewhat less important...
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?
41 comments
[ 3.4 ms ] story [ 86.2 ms ] threadOn the other hand, we are generally deploying to AWS Graviton anyway which is ARM as well, so perhaps it will be more similar!
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/
The short of it is, that you can enable VirtIO file sharing and Rosetta compilation of Docker images in Docker Desktop on Mac now to get massive, massive speed boosts, and it's just clicking some settings in the app. I have compared with some folks at work who have a top-of-the-line Linux laptop, and our speeds inside Docker containers are roughly equivalent with these features enabled.
Also, I'm planning on trying out https://orbstack.dev/ soon, which is basically an alternative to Docker Desktop with all these optimizations enabled by default and a smaller footprint, so theoretically a lot simpler, still, and plenty fast.
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
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.
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.
Would have the added benefit of compatibility with all the hardware tools that are windows only...
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.
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.
What walled garden is there with macOS? You've always been free to run whatever you want. iOS is where the walls are.
16 years might warrant another attempt. ;)
Now compare that to the ease of free access to any file of yours (and others when permitted as well) in the filesystems of other operating systems (even Windows).
Even getting your photos off your iPhone can be a pain in the neck. And that's just one example.
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.
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.
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.
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.
perhaps try a simpler linux setup and change it less frequently. on arch or alpine edge.
Same goes for switching in the other directions.
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.
https://rectangleapp.com/
For window management, check out Yabai[0] - it's an actual tiling window manager that can be customized in conjunction with skhd[1] for hotkeys.
[0] https://github.com/koekeishiya/yabai
[1] https://github.com/koekeishiya/skhd