I'm a self-branded hacker so I'll share my motivation:
Shit. Works.
This is critical. I can focus on my actual task at hand, rather than fiddling with the system.
Some perspective: I've been on Debian for 15 years, and I still hold it in very high regard for servers. I'm also an occasional Alpine & OpenBSD user; and Windows for games. I've tried Ubuntu, couldn't stop it from getting in my way. Before you suggest Fedora, Arch, NixOS, whatever: I'm done distro-hopping. The experience is about equal everywhere. No amount of "choice" beats thoughtful design, accessibility, and vertical integration.
I'm a software engineer at a company that does all macbooks. I hate my M1 macbook because it's way less reliable then my desktop, both software and hardware. I have to hold the power button to force it off roughly twice a month, it absolutely refuses to play nice with my KVM (that my desktop has no issues with), and the "keyboard secure input" feature regularly goes on the fritz and breaks anything that taps into the keyboard, including stuff that I've specifically installed.
Much of these complaints are usually better directed at Crowdstrike and other EDRs. The performance difference between my employer-provided Macbook and my personal one are like night and day.
Hell, half (but only half...) the reason I try to get MacBooks anywhere I work is because they're usually not quite as shitted up with broken surveillance software eating half the company's potential productivity, as the Windows ones.
> I have to hold the power button to force it off roughly twice a month [...]
Hmm...
$ last | grep reboot
reboot time Sun Feb 16 14:10
reboot time Fri Feb 14 19:40
reboot time Thu Jan 30 09:52
reboot time Fri Dec 13 16:20
reboot time Tue Oct 29 15:32
reboot time Tue Sep 17 12:19
[...]
I guess most of these are from macOS updates. I don't think I've used the power button at all in the past year or so? FWIW I'm using a Mac mini (also M1) rather than a Macbook, but "it works for me" was the entire point of my original comment.
> it absolutely refuses to play nice with my KVM (that my desktop has no issues with)
Honestly I'm with you here, but I'm pretty sure KVMs are just pure lottery. I plug the mini via USB-C/DP to a screen that has a simple built-in USB hub (which in turn handles mouse/KB/audio interface); this also works perfectly fine with my Thinkpad T495. However an expensive TB3 dock with a dozen ports doesn't work with either, but it's just fine with a 2017 MBP. TBH I wouldn't blame any of the involved parties; USB-C/TB always came off as a finicky mess to me.
> I'm a software engineer at a company that does all macbooks.
I can't say anything but extend my sympathy. In an ideal world, companies prioritise employee satisfaction and productivity. There's an argument that this is a trade-off vs increased IT support cost/workload, but I guess SWEs don't need much support to begin with?
You could at least appeal on the basis that the HW you've been provided with is clearly unreliable. Come up with some numbers about lost productivity. Bosses love numbers.
> There's an argument that this is a trade-off vs increased IT support cost/workload, but I guess SWEs don't need much support to begin with?
IME, it's also about being able to ensure that everyone has access to the same software. I worked at a company that used macOS-specific software for development (I think it was Sketch?) so I had to have a MacBook around, even though I primarily used a Linux desktop for work. Anecdotally, I don't think this is uncommon.
Yeah I'm using enough Mac-specific (Logic, Compressor, Sketch, ...) or otherwise proprietary software that it makes perfect sense. I'm lucky that this is already my platform of choice. And honestly it's been getting better (OrbStack!), and I don't even have to touch XCode too often :,)
Sorry to be that person but: As someone who's been using NixOS as their daily driver for about three years (after switching to it from Debian) and is currently trying out a MacBook I can tell you that NixOS provides a very different experience than everything else you've mentioned (including macOS). The only other OS I'm aware of that it's comparable to is Guix System which is distantly related to NixOS.
NixOS in its unofficial "endgame" is more like a container where you can strictly define what files to keep between reboots and everything else gets thrown away. Except unlike a container it covers your entire filesystem (not just a single application) and it's actually usable for things like a laptop since you don't have to reboot between making changes. There's a popular blog post titled "Erase your darlings" that explains it in more detail[1]. And, like with a container image (but different in how it's done), NixOS forces you to write any and all changes to your system's programs or config as code that can be introspected and delivers repeatable results.
This is definitely not to everyone's taste but for me this is now the only way to keep computers "clean" in the long term (sans specialized distros like Talos Linux). I can just look at the source code to know exactly what I'm running and I can delete stuff I no longer want without having to think about leftover files or anything like that. Backups also get a lot simpler when you only have to think about the persistent volume of your system and your config and full restores are just a matter of reinstalling with your config in place.
macOS is gorgeous and I love how everything just works pretty much (except defining global keyboard shortcuts). But I've been so spoiled by NixOS catering to my config management obsession that everything else feels kind of primitive in that regard. My dream would be the macOS userland and kernel on top of Apple hardware but built and assembled with the Nix module system. And then some APFS magic to make an ephemeral root filesystem work.
(Also yes I've tried nix-darwin. Love it and I'm infinitely grateful it exists because I'm also using a MacBook at work but it's not the same kind of "complete" experience that NixOS provides.)
I've been using NixOS for a couple of years; I still have it on one of my RasPis. I've had a moderately elaborate config for my laptop. I could enumerate all of the problems I've had with it, but back to my point: not that different from every other distribution. Once you get past the insane level of ecosystem fragmentation and DIY fixes (which NixOS adds to- with "regular" configs vs flakes), there's still the UX department, where both KDE and Gnome are severely lacking.
Of course, the software that goes onto a NixOS installation is the same as on most other Linux distros so it's not any different in that regard. What I was trying to say is the config management aspect - especially when used with an ephemeral root FS - provides an entirely different way of managing your computer that's not really possible to replicate anywhere else (except Guix as I've mentioned).
Not that that makes it objectively better or worse. The config shtick of NixOS can also be really annoying to someone who just wants to install stuff and move on. It comes down to personal preference.
Personally I prefer the approach that the BSDs took: your OS has a "base" that is designed and integrated as a whole, provides basic services (SSH, httpd, mail, etc) plus a spartan GUI and all the tools to support its own development. Everything else is in ports/packages, which theoretically can be erased all at once with no loss in core functionality. It's conceptually simple and works OK in practice.
Notably, macOS (a BSD in my book) took the next logical step and completely sealed the base OS, all the way via logical volume management, verified boot chain, SEP (aka TPM), etc.
I agree that NixOS solves configuration management in a much more elegant way, but that elegance carries a heavy cost: it requires domain knowledge to comprehend. Personally I just keep /etc in git, and use judo to propagate changes. <https://github.com/rollcat/judo>
Fedora is really good though. I’ve daily driven Windows, MacOS and Linux, Fedora is by far the best developer experience I’ve had so far. But then again, I tend to setup my devbox quite spartan, so that it just works.
Does Fedora support ZFS (without building from source) yet? Filesystem snapshots is not something I'd ever give up on, and Btrfs still doesn't seem production-ready.
Also - I'm done distro-hopping. The problem is KDE/Gnome- KDE is aping Windows (badly), Gnome is aping macOS (also badly). I'd list all of the problems but it would take an essay.
I don’t know, it’s my workstation so everything is in Dropbox/Onedrive/Github/Gitlab, making the machine itself ephemeral… Come to think of it I should
probably get a NAS and mirror Dropbox/Onedrive onto, just in case.
Does Dropbox or Onedrive keep hourly+daily+weekly+monthly deduplicated snapshots of everything that's happened on your machine, that work without any network connection?
It's no substitute for backups (I use Borg), and syncing is good (I use Syncthing, I guess iCloud also counts). But snapshots should be ubiquitous at this point, just like having a "trash bin" was mainstream in 1995.
Well, I may be an oddball, but I never really find myself having the need for snapshots, I have a tendency to not really delete files. Once upon a time i recall Dropbox having versions?
I'm also confused when I see threads like this. For dev work I've yet to try a distro that didn't "just work". The only real friction I've run into is the tradeoff between stability versus package freshness but that's going to be a tradeoff with any software environment.
Shit. Works.
This is critical. I can focus on my actual task at hand, rather than fiddling with the system.
Some perspective: I've been on Debian for 15 years, and I still hold it in very high regard for servers. I'm also an occasional Alpine & OpenBSD user; and Windows for games. I've tried Ubuntu, couldn't stop it from getting in my way. Before you suggest Fedora, Arch, NixOS, whatever: I'm done distro-hopping. The experience is about equal everywhere. No amount of "choice" beats thoughtful design, accessibility, and vertical integration.