NixOS 22.11 'Raccoon': a proof of concept you can do things with
theregister.com
theregister.com
I am half expecting some rather crunchy feedback on this. :-/
Yes, but I suppose better to be uncommented-upon than torn a new one...?
The first is that you seem to have considered your audience well. I think your review would be quite helpful for prospective NixOS users who already have some Linux experience and aren't sure how to compare NixOS to what they know.
The second thought is in response to this:
> Attempting to understand Nix and NixOS, as an outsider, are a little bit like that: the virtues and benefits that its website and wiki talk about, or even early coverage, for instance here on Linux.com, are rather theoretical. There appears to be little overlap between the sort of things that the Nix community seems to consider important, and things an ordinary desktop OS user might consider important, that it is hard to bridge the gap.
I think some times the F/OSS community in general tends towards objective abstractions when the real point is subjective experiences, and NixOS is no exception here. Within the wider F/OSS community, we often hear about freedom as a principle, typically somewhat moralistically. But one of the most essential and best reasons to use F/OSS (and even to stick to it as exclusively as is practical) is that it feels great. It is a delight to use a system which is not designed primarily to sell you things, that doesn't try to bully or nag or deceive you. The sense of 'ownership', of pride of place, of running a system where every possible avenue of customization is open to you, is beautiful. Those are all some of the absolutely vital, but often understated subjective corollaries and components of the F/OSS value of 'freedom'.
With NixOS, it's the same way. The project's background is with engineers and scientists, and what they know best how to describe and talk about are the novel ways NixOS tackles old problems in systems administration, software engineering, and computer science. That's where the language of 'reproducibility' comes from, as well as its emphasis— reproducibility is seen as critical in the Nix community because it's critical in empirical research and historical archiving!
But as with the abstract value of 'freedom', behind language like 'reproducible', 'declarative', 'immutable', etc., there's a subjective experience. That experience is a little harder to get at, but it gets closer to the heart of why someone— even a regular, shmegular desktop users with no engineering background!— might choose and stick with NixOS.
The most common way of putting this within the community, the closest it usually gets to explicit expression, is 'after NixOS, I could never go back to something else'. I'll see if I can get at why that is in a moment, and just describe what NixOS feels like to me.
NixOS feels predictable, reliable, and trustworthy. The system is thus something I navigate with a sense of both comfort and efficiency.
If I need to change something, or there seems to be a bug, the mental checklist of possibilities feels short and easy to run through. In the worst case, I can read through my entire system's configuration in a minute or two, and remind myself of every single thing I've got going on.
When I want to experiment with something new or unstable, I'm never worried about it. I just leave myself a comment of a few words in my configuration about what I'm trying and why, and give it a whirl! I know that if it doesn't work out, changing it back will be easy and fast (likely not even requiring a full reboot). This feature is usually described in terms of risk or self-protection, but the way I experience it is as a sense of ease and openness to new things.
Sometimes, NixOS helps give me the motivation I need to really fix a hardware quirk or optimize power consumption or something like that. The permanence of a declared configuration makes that troubleshooting and research feel like an investment, rather than trying to repair a machine whose parts are always being changed out from underneath me anyhow. In that way, NixOS can make me hopeful and optimistic about really solving problems that, on another distro, I might just choose to live with a certain level of chaos or mess.
Another subjective thing that I love on NixOS is that I never have to think about whether software is being installed. I can start an OS upgrade whenever I want, and if I need to install a new package or try something out while that's happening, I just do. I don't have to feel tethered by what my system is doing. I don't have to plan my upgrades around my usage or vice-versa. In that way, using NixOS gives me a sense of flexibility and adaptability.
There are also, of course, frustrations or difficulties. And there are also some positives I haven't touched on. But I hope that captures some of what 'reproducibility' and 'declarative configuration' can practically relate to for end users. It's about feeling like you can trust and understand your computer! In this day and age, that's a real treat. And that's why it's so hard for people to give NixOS up once it 'clicks' for them. Systems based on the old paradigm feel surprising, shifty, and inflexible in comparison, like it's such a struggle to keep everything in order on the machine or straight in your head that you might as well give up.
Never mind reproducibility in a strict sense! The joy of NixOS is discovering that you can actually trust and understand your computer, after all. :)