Any distro where you have to write a little haskell-ish 30 line script to set up an environment just to be able to start compiling (or even running!) things is not going to be widely popular for desktop use.
Nix throws sparks, but I'm still cautious about who I recommend it to and how.
I understand why there's consternation about usability (and a steady stream of requests focused on helping novices get it up and running), but I'm not sure the project(s)/ecosystem are ready for the stress of getting strapped to a growth rocket that brings in many new non-developer general-computing users who can't reasonably contribute back.
I don't mean this in an elitist RTFM way. More users of any stripe just inevitably exert support pressure in all sorts of directions. The community is perpetually iterating on tools/automation/process issues to try and stay on the right side of the wave. I sympathize with everyone who has a tough time finding their legs, but for the near term I think it is probably a net good if ergonomics issues filter out people for whom most distros are effectively fungible.
That "little haskell-ish 30 line script" gives you a stable and reproducible system that other distros can never provide. If I can spare myself from doing a clean re-install of my system every few releases just by writing a few lines of configuration, it's absolutely worth it. It also helps that I can reuse that configuration for any of my computers too, because I don't have to spend time installing and configuring software for each new computer I use.
BTW most people don't need to write a full-fledged "script" to get their system up and running. All they need to specify are some configuration variables that specifies the sort of things you'd need to specify anyways if you're going to setup a new system, like which packages should be installed. With NixOS, you write those things on a file instead of typing it on the command line.
I was thinking more things you find on the internet and then do a bit of ./autogen or mkdir build;cd build;cmake ../;make; and the like. Without a file system you really do have to write that script and manually pull in the relevant libraries, and you have to figure out what those are. No autotools will be capable of doing it automatically because no global filesystem exists.
It's definitely going to take some work. I have set up my first NixOS install, and the functionality is very impressive, but usability-wise it is a mess.
I think Nix/Guix is going to be the bridge to the post-POSIX world where we can move away from the trend of a globally visible filesystem and into much stronger container-based approach. But it can't be in its current form; the Nix language and Guix's Guile/Scheme are too difficult and not declarative enough.