But try to compile and run a random C program you found on the internet on NixOS and that complexity immediately becomes apparent. Because there is no "system library" set for NixOS you have to create the environment needed for every single thing you do. If it is a very popular thing than someone else will have done it. If it is not, as is the case in most situations, you end up having to create the environment yourself via config. A huge extra layer of complexity and work before you even begin to attempt compiling.
So for me, NixOS doesn't add too much complexity because my minimal complexity commitment is covers much of what NixOS 'adds' anyway. But this story:
> If you only use things people already created environments for it's pretty great.
doesn't end at that layer, and in fact it essentially recurs deeper down!
When it comes to packaging with Nix or crafting environments, what's popular is usually easy, and what's easy is really easy.
But when you go off the beaten path... you're going on a journey. Maybe a short one, but possibly a long and painful one.
For me, Nixpkgs and NixOS have grown so much since I first started running NixOS on desktop (like 8 years ago, now!) that such work is rare enough for me that I hardly think about it. But you're quite right that the additional complexity is there, and it can be discouraging and draining when setting up software environments in that way is new to you, or when you just don't wanna do it.