For me, it was easier to just continue to use Ansible for machine reproducibility. I really like the thought behind Nix but I felt like I needed to elbows deep in it 24/7 to really grok it. And if I stopped looking at Nix for 6 months, then that knowledge just disappeared. I migrated away from NixOS for my homelab because I would come back to flakes I had written and not understand how anything worked and couldn't be bothered to relearn. I know that Ansible and Nix can sometimes be apple and oranges but I know that I can come back to a playbook and understand what it does even if I haven't touched Ansible for years.
"What I had been calling “Linux knowledge” was actually two different things bundled together: understanding of how systems work, and familiarity with where things live on a particular filesystem. The first transfers perfectly to NixOS. The second becomes largely irrelevant, and whilst that felt like a loss at first, I now think it is fine. Knowing that configuration files live under /etc is useful context, but it is not deep understanding. Deep understanding is knowing what the configuration does and why, and that knowledge is entirely portable."
Particularly:
>> "familiarity with where things live on a particular filesystem."
Taken in context with mightyiam's quote:
>> "because I get to keep it, share it across multiple computers, "
It seems to me like a primary advantage of NixOS is that familiarity with where things live on your particular filesystem is made to be portable across machines, and not a constant beachead.
For me, it was easier to just continue to use Ansible for machine reproducibility. I really like the thought behind Nix but I felt like I needed to elbows deep in it 24/7 to really grok it. And if I stopped looking at Nix for 6 months, then that knowledge just disappeared. I migrated away from NixOS for my homelab because I would come back to flakes I had written and not understand how anything worked and couldn't be bothered to relearn. I know that Ansible and Nix can sometimes be apple and oranges but I know that I can come back to a playbook and understand what it does even if I haven't touched Ansible for years.
"What I had been calling “Linux knowledge” was actually two different things bundled together: understanding of how systems work, and familiarity with where things live on a particular filesystem. The first transfers perfectly to NixOS. The second becomes largely irrelevant, and whilst that felt like a loss at first, I now think it is fine. Knowing that configuration files live under /etc is useful context, but it is not deep understanding. Deep understanding is knowing what the configuration does and why, and that knowledge is entirely portable."
Particularly: >> "familiarity with where things live on a particular filesystem."
Taken in context with mightyiam's quote: >> "because I get to keep it, share it across multiple computers, "
It seems to me like a primary advantage of NixOS is that familiarity with where things live on your particular filesystem is made to be portable across machines, and not a constant beachead.