HACKER Q&A
📣 bibabaloo

Pros and Cons of Switching from Linux to M1 MacBook in 2022


Last asked a year ago (https://news.ycombinator.com/item?id=27005357), I'm curious to hear how things might have changed and how Linux users have felt moving over. I have the opportunity to swap to a top of the line M1 Max Macbook Pro for work, but as a 10 year Linux only user have some reservations.

Things I'm excited about:

- M1s seem much faster, I do a lot of code compilation so this would be a boon

- "Just works"

- Better hardware, much better battery life - can actually use a laptop as a laptop!

Things I'm concerned about:

- Package management not being first class

- Having to learn a new OS/new shortcuts/etc

- Being disconnected from how things run in production. For example, its really useful to run things like Heaptrack locally to track down memory issues.

- Docker not running well (maybe this is better than it was in 2021 though?)

- Things being similar but different enough that it'll be frustrating

Have any long time Linux users switched over? How are you finding it/enjoying it now?


  👤 treis Accepted Answer ✓
I (forcibly) switched to Mac's about 9 months ago. Here's my thoughts:

(1) It just works is total bullshit. Multiple times a day I accidentally move my dock to a different one of my monitors and have to go into settings and move it back. At least once a week I turn it on and it doesn't detect one of my monitors.

(2) Its a different work flow. It expects one window open per monitor and for you to switch windows. It doesn't natively support snapping or tiling.

(3) Docker is unusuably slow. Our tests natively take a few seconds to load the app and start running. In Docker it was 2-3 minutes.

(4) Compatibility is a pain in the ass. Yes you can run things emulated but then everything is emulated within that terminal session. Switching back and forth is annoying.

I could go on but the bottom line is that Linux is way better. It may be more fiddly to get running right but once it does it stays running right. At least in my experience.

IMHO there's no point to a mac as a developer. These days everything I use is electron or web based. Similarly the code you write is almost always going to run either on Linux or in an electron like cross OS environment.

All that said, the M1 Macs are a fantastic piece of hardware. Silent, the battery lasts forever, and the design is on point.


👤 kkielhofner
I can echo some other comments here.

My daily drivers have been Linux for over 20 years. That said I have everything - Surface Book, several MacBooks, etc.

I’m most productive in Linux but Linux on laptops is still pretty rough. It took hours of weird scripts, kernel params, etc to get sleep/suspend/hibernate, display switching, etc to work the way I wanted. It’s still not perfect but it’s close enough.

I bought a new M1 MBP and wanted to give myself at least a few days trying it out (considering a scenario like yours).

I was expecting “it just works”.

Much to my dismay Apple has really slipped. The M1 itself was very impressive but MacOS just isn’t what it used to be. Weird display switching issues, weird resume with display issues, etc.

Thing is in Linux I at least know how to generally script up and somewhat automate these edge cases. I’m sure there are probably various ways to do it in OS X too but I wasn’t about to wander in that rabbit hole.

Also, I understand OS X is intended to be “safe” for the general user. That said the countless nanny features are extremely annoying. I generally want my computer to get out of my way. I bought you, I own you, I tell you what to do and you just do it. If I mess up I deal with the consequences. I don’t want to end up in system settings every time I need to give some application yet another permission for whatever (as one example).

I switched back to Linux after a few hours.


👤 recvonline
I switched from a Thinkpad (Arch) to a MacBook Pro M1 Max.

- M1s wakeup incredibly fast, like no time, and using it with the finger print reader the whole experience is like an iPad. It’s really good.

- I run Rust and cross-compiling is a bit of a pain, and some tooling is not supported yet for the M1 architecture.

- The usual feeling when coming from Linux: The beauty of configuring your system via the terminal is gone.

- You can finally run games again without issues. Not supported (non AAA) title run so well via Parallels or Crossover.

- Battery life and temperature is a dream.

The bottom line: The M1 is an absolute dream for Notebooks and I will never run an Intel Notebook again (at least until I see parity with M1 in terms of speed and battery life). macOS is still sadly not comparable to the good old OS X days and can be annoying, but no show stopper what-so-ever. I love it.


👤 zamalek
> "Just works"

This couldn't be further from the truth. I have been using a work-provided M1 since December, and it has been absolute hell.

If you want to use two monitors in clamshell mode? Tough luck.

> Having to learn a new OS/new shortcuts/etc

If you use an external ISO keyboard, this is a really bad experience. You are able to swap the mac key and ctrl in the options, but that doesn't work for all apps (notably: ITerm/ITerm2). So much for a consistent experience.

> Docker not running well (maybe this is better than it was in 2021 though?)

Colima does a lot to improve the situation, the problem is that Rosetta doesn't work in the Lima VM; it falls back to QEMU emulation. If you need to a) build an amd64 image or b) run an single-arch/amd64 image good luck. For example, I had to remove the default VOLUME from the official RabbitMQ image and it was easier to send the Dockerfile to my coworker - on the M1 the build segfaulted after about 20min (it completed on an Intel MB in about 2min). This is not the first container-related segfault I've experienced, not by a long shot.

Lima aims to be WSL for Mac, and it gets incredibly close. However, just this week I learned that the M1 does not support nested virtualization. I was attempting to play around with Firecracker, and you can't on the M1: full stop.

This whole situation could be vastly improved if Apple added container support to the kernel, but that certainly isn't happening: MacOS is a consumer product, not a developer product.

> Have any long time Linux users switched over?

I use Silverblue on my personal desktop. Think for a minute how many third-party tools are required to turn MacOS into a barely capable developer platform (e.g. Homebrew, Colima/Rancher Desktop). Many of those tools receive deserved high praise for how they improve the MacOS developer experience. However, there isn't anything to compare them to. People love Homebrew because they would be shit out of luck without it. It doesn't hold a candle to whats available on Linux (and I'm an avid distro hopper).

I'm setting up a VM in the cloud so that I can just get my fucking job done.


👤 ameyv
I'm using M1 Pro latest with 16gig ram. If you are doing development on anything that has yet to release apple silicon binaries its huge pain the a*. I'm working on specific version of python that has virtually no support or binary for ARM. All the monkey switching between brew for arm and brew for intel and the mess you get, I find it frustrating. Nothing on device its truly well built but just gets in the way of work a lot.

👤 ThePhysicist
I'm using both, Thinkpad T460p and Macbook Pro M1 16'. The M1 of course wins easily in terms of performance, battery, screen and design. The Thinkpad still holds up quite well though and for most regular work tasks I don't feel the difference so much. The Mini LED screen is just great though, everything's super sharp. And as the new "top of the line" Thinkpads cost almost the same as a Macbook Pro I think there's very little reason to not switch to a Mac. MacOS is a bit weird and personally I like the KDE desktop way more as a power user, but it's still a good experience.

👤 Ologn
I have an M1. I compile Android apps in Android Studio a lot. For a small Android app without many bells and whistles M1 compiles fast (even faster than my Ubuntu laptop). However some Android apps I compile have some C/C++ code compiled with the NDK and accessed via JNI - and which now have to compile on an ARM chip - and that is a rigmarole currently ( https://github.com/android/ndk/issues/1299 ) to the extent that I am just sticking with Ubuntu on x86-64 until ARM is fully supported in Android Studio full release (not some alpha/canary version).

Also, I have never used the MacOS Active Trader Pro app, but I downloaded it to my M1 and it did not work, and online old Macbook users say it works and people with M1s say it has problems on M1.

So my experience is look to see what apps support M1 and ARM. I can tell you that Rosetta does not work for everything.

Apps were not working, and I put Rosetta in, and now some apps work and some don't. So this is another thing to look into.

(Side point - my work laptop is not an M1 and was force updated to 11.6.2 a few months ago. Now when the screen is unused for a few minutes and the computer sleeps or hibernates or whatever, I can't log back in any more half the time and have to shut down and reboot)


👤 jraph
> much better battery life - can actually use a laptop as a laptop!

I have two laptops running Linux that can easily provide 6-8h of battery life. Maybe more. One of the laptop is second hand (HP Elitebook 860 G6), the battery health is said to be at 69%. I think this laptop would give me 10-15h of battery life with a new battery.

I've been actually using Linux laptop as laptops for more than 10 years now.


👤 ehutch79
The comments on this post feel like a lot of ass-hattery. Lot's of "it doesn't work for me, so it's shit"

I do web dev stuff, and I have had zero issues switching to an m1 other than lack of ram on the the 8gb model i have (this is a ms teams / chrome problem, not my dev environment)


👤 abigail95
If I use it as a desktop with a real keyboard and monitor, I hate it.

If I only used it as a portable laptop, it's fantastic.

There is no competing laptop trackpad.

As for the OS/CPU, the benefits are to the larger community.

It really shines a light on some horrible dev libraries that should be replaced.

Many, many python packages refused to build, taking many months for their maintainers to release stable builds.

All that C code they scammed us into believing was portable and correctly written, laughable.

Edit:

Don't use package managers. I don't on windows and I don't on linux either. Install go or python from a package manager and have it give you some ancient version - just throw the package manager away.


👤 FrenchDevRemote
Cons:

-Shortcuts are really atrocious(I still copy/past the || sign or ~ after a few weeks because I just can't remember it and it's just muscle memory at this point), I already left meetings accidentally by using the wrong shortcuts...

-need adapters for so many things and some adapters brand don't work on mac even though they work fine on linux/windows/any other(btw I don't get the point of having an SD card slot in 2022 but not one USB port... there is an HDMI which is just as thick but they couldn't put one freaking usb port for a mouse)

-Rosetta isn't perfect so some binaries don't seem to work really well(and in rare occasions not at all)

(those 3 cons are actually linked, since I can't do some stuff on Mac, I still use my linux PC sometimes, so it's really hard to use two different sets of shortcuts ...)

-can't split your screen in 4, you need multiple clicks/mouse movements to split your screen in 2...

-having to give permissions to apps can be really annoying(yes Apple, I shouldn't have to allow my terminal to read ~/Documents ffs), very annoying to have restart your browser to give it permissions

-performance isn't THAT good, of course it's a huge step up for Apple, but compared to my old laptop with a i7 and a GTX it obviously feels weak sometimes, especially given that my laptop was like 700$ cheaper.

Pro:

-battery life/charging time, it's nice to charge your laptop for just a few minutes, and spend hours on it afterwards

-video quality/sound, that's expected for this price range, but it feels really nice

-some software that don't work well with Wine works on Mac

-slightly less time on linux/unix specific issues when you're reckless and f*ck up your OS(but I guess you rarely have this kind of issues after 10years)

Besides that, not much.

Not worth the price IMO, I wouldn't get one if it wasn't paid for by the company, if it's free then take it, but if you can choose the brand you want then you can get something nicer IMO


👤 legerdemain
I have a three-year-old Ubuntu Dell 5540 that was the top of the line at the time. It's stuck on 18.04LTS forever, and I am starting to need to upgrade the OS because my tools need a newer glibc version.

Online comments suggest something like a one-in-three chance of success because of nonexistent OEM drivers, Dell not certifying this model for the next Ubuntu LTS, etc., etc. After only three years, I cannot rely on this machine to make a living.

That's Linux. As much as I dislike the MacOS look and feel, upgrades are fearless.


👤 aborsy
Linux is the best operating system in my view. There can be rough edges on laptops, but I had more issues with Apple’s products. With Linux, at least there is a way to solve them.

👤 GianFabien
I'm thinking about getting a M2 Mac mini (when they finally ship) to replace my Intel / Debian desktop.

Since my use case is server software development, I really don't need all the GPUs. My perception is that Apple is aiming their hardware at video and other demanding GPU-oriented usages. Maybe AMD / Arm / RISC-V based hardware would be more suitable.


👤 glacials
Between formulae and casks, package management feels first class. I can `brew install discord steam ffmpeg` and it all just works.

👤 efficax
Although apple silicon support is pretty good now for Docker and there are lots of arm64 container images out there, docker on macos is always a subpar experience because it requires a virtual machine with a linux kernel. Docker is just linux cgroups with fancy glue, so if you want the best docker experience, you need to stay on linux.

👤 crmd
I love my M1 MBP but ran into a world of pain doing kubernetes storage work locally. Relatively simple things on x86 like NVMe-over-fabrics are a huge pain in the ass with Apple’s hypervisor framework. I ended up moving everything to x86 dev instances in AWS and just ssh in.

👤 Darmody
I just switched from Linux to a M1 MacBook. I hate it to the point I'm thinking about leaving the job.

It doesn't just work. The workflow is a step backwards to me. I don't have the same freedom to change what I don't like.

The only good thing about it is the battery life.


👤 digisign
Make sure to install "Little Snitch" to have a semblance of privacy.

👤 arkaniad
I spent a long time as a Mac hater and Linux snob, but the M1 got me curious again just around time for me to get a new machine. X1 Carbon + Linux was so much trouble for years, at the end of the day I need some browsers and a nice terminal. Great battery life and performance obviously a plus.

M1 MBP Pro + iTerm2 has been fantastic, all my dotfiles ported over with minimal fuss, Homebrew has packages for almost all my userland needs. I do miss the aspects of customization around certain things, but I've found more often I just want to be able to do work and not have to worry about making sure my audio device sample rate is tuned properly for Zoom to work or whatever have you.

The things you are excited about are likely going to satisfy you - I can run on battery for around 8-12 hours of full activity (browsing, documents, light docker containers, vscode), the SSD tests so fast in `fio` it's ridiculous, and the thing is sturdy and travels well.

I haven't done a 1:1 Docker performance test but most of the things I'm doing in Docker are to test before shipping into a k8s cluster, so it's never usually that intensive. My experience has been satisfactory with Rancher Desktop - though it was a little rough a few months ago it's perfectly serviceable now and lets me run amd64/arm64 containers interchangeably as well as run microk8s.

TL;DR - I ate some humble pie and I now unironically enjoy using Apple hardware. The M1s are really nice and worth the money if gaming / VR aren't of major concern.


👤 a-dub
i found the touchbar era butterfly keyboard with soft esc to be borderline unusable. has that been fixed in the new models?

how's running x86 vms or containers under rosetta 2?

will note that the mbp was EXCELLENT for video conferencing in every way. mics, speakers and camera were carefully tuned.


👤 knowmad
I was forced to switch from Debian running on an Asus ZenBook to a MacBook Pro 4 years ago when I got my first "real" software engineering job. Having used Linux for 8+ years before that in highschool and college, it took some getting used to learning new key bindings and quickly navigating the OS. Fortunately, I was surrounded by experienced highly technical MacOS users so I had a lot of support when I didn't know how to do something on MacOS. I'm now at the point where I can easily switch between Linux and MacOS (going to windows is a lot harder for me).

There are a few things that make me comfortable in both OSs: - I spend 80% of my time in the terminal (nvim, tmux, etc.) - Apt and Brew are pretty comparable package managers for my needs - I learned to use spotlight on MacOS and I make sure my Linux system has a similar fuzzy launcher with the same key binding - I use vcsh to manage my dot files it's split into 3 repos root: all cross-platform config, macos: MacOS specific config, debian: All Debian specific config - I keep most windows fullscreen which helps me focus on what I'm doing - If I need to look at things side by side, I use Tmux if they're both in the terminal or hammerspoon if one is in the browser - Hammerspoon is the most useful MacOS specific application in existence, is a text configured swiss army knife that I currently use for: window tiling, keyboard application launching/jump to application, and clipboard history - Karabiner is really useful for remapping keys like Caps Lock -> Ctrl, also it can disable the built-in keyboard so I can set my mechanical keyboard on top of it

I recently bought an M1 MacBook Pro to use as my personal development machine and it's been life changing. It is far and away the best laptop I've ever owned! Doing everyday tasks like moving files around in the file manager and opening applications is noticeably faster (or more accurately unnoticeably faster as I don't ever have to wait it just does what I want instantly so I don't think about it). Using my M1 now reminds me of how I felt in highschool when I put Debian with xfce on my netbook after having Windows 7 on it, everything felt so snappy and quick. It's delightful to go from a machine that has a slight lag after every action to one that doesn't.

Another thing that I've really enjoyed about MacOS is a lot of things "just work". I remember spending days messing with Wayland and X trying to fix screen tearing issues during HD video playback and everytime there was a major version update for Debian I'd spend a couple hours fixing small things in my workflow that stopped working. There are some annoying things with MacOS too, mostly hardware issue revolving around dongle life, but they don't usually take long to sort out. I'm at the point in my life where I'm starting to prefer convenience over configuration (e.g. I haven't rooted my last few phones, because the extra configuration options aren't worth the time sink)

Overall, having used both MacOS and Linux(Debian) as daily drivers for years I really like both, but day-to-day use of my M1 has pushed me solidly into the MacOS camp and I would choose an M1 MacBook Pro over even the best alternative running Linux.