But NixOS is immutable in a very different way to all the mention distos, which are focused on containers, isolation, and layers; Maybe the author doesn't consider it to be in the same category?
Personally, I've decided that NixOS is not for me. The concept is great, but the actual experience seems to be held back by Nix (the language and the tool) being hard to understand and debug.
Have you ever used the nix repl? I find between that and having the failing build keep its working directory around for inspection, it's always easy to debug thing. I guess the third tool is overlaying the equivalent of debugging into derivations but that's rare.
The problem with nix repl, is that it only seems to help if you already understand both nix and how the derivations are actually implemented in nix. It's pretty useless as a learning tool.
I don't think that's true. Because the main way I learned those things was poking in the repl. Hitting tab and stuff. And reloading changes to files or overlays and debugging what happened by inspecting things.
It's the same as learning Haskell. Outside of syntax and some basics, you don't need to have deep knowledge to use ghci. And Nix and Haskell are both just substitution-based evaluation (lambda calculus) which imo is 80% of understanding them.
I really don't know how much of the problem is me.
For some reason, I have a really hard time groking Haskell, and Nix seems to fit in the same boat. I don't know why.
It's not the functional programming. I love doing functional style programming in Rust, Python and recent versions of c++. And I didn't have any problem with Prolog and Lisp for those few university courses. I have a suspicion that my brain just finds the concept of lazy evaluation by default to be deeply offensive.
What I do know is that personally: I could never grasp Nix; The repl didn't help; The repl was the extent of the debug tooling; I never found good documentation to help me learn; and I was getting anxious at the thought of doing anything on that server.
But NixOS is immutable in a very different way to all the mention distos, which are focused on containers, isolation, and layers; Maybe the author doesn't consider it to be in the same category?
Personally, I've decided that NixOS is not for me. The concept is great, but the actual experience seems to be held back by Nix (the language and the tool) being hard to understand and debug.