I’ve used NixOS as the only OS on my laptop for around three years at this point. Installing it has felt sort of like a curse: on the one hand, it’s so clearly the only operating system that actually gets how package management should be done. After using it, I can’t go back to anything else. One the other hand, it’s extremely complicated constantly changing software that requires configuration with the second-worst homegrown config programming language I’ve ever used.
I don’t think that NixOS is the future, but I do absolutely think that the ideas in it are, so I want to write about what I think it gets right and what it gets wrong, in the hopes that other projects can take note. As such, this post will not assume knowledge of NixOS — if you’ve used NixOS significantly, there probably isn’t anything new in here for you.
NixOS is talked about a lot – but it seems impenetrable for a newcomer or outsider to get into it.
“but it seems impenetrable for a newcomer or outsider to get into it.”
Because this is the rabbit hole of trying to fix package managers, dependencies, and the problems they create; by creating more problems. The Linux desktop is definitely headed towards distros getting all their apps in flatpack (Fedora Silverblue) or Snap (Ubuntu). Even with these static linking app packaging methods, it’s still not comparable to the reliability of the baseline OS and SDKs provided by everyone else for running 3rd party software. The Linux KERNEL is reliable, however the community often conflates that with whether the desktop is reliable. If we were to start objectively measuring DESKTOP RELIABILITY, then we’d see some god awful numbers explaining why it’s never the year of desktop Linux. We’d see how often apps fail to start, how often users are forced to use the terminal (yes, I’m aware most of you are in a facebook like echo chamber where you tell each other users never need to use it, but that’s easily disproven by browsing new user help forums for 5 minutes.), how Linux versions of apps are crashing at many times the rate of Windows or Mac versions (LTT even mentions this in his latest attempt to use Linux as a daily driver), etc.