I think part of the reason they are now cruising past Nix (despite 1/10th of the users) is that it's written in a proper programming language, and not a home-made language that relies heavily on bash.
That said, I'm really happy with NixOS after two years, and would not consider going back to any "conventional" distro for my own workstation. Coming from a Gentoo background, there is nothing like screwing up your system and simply booting into the previous generation :)
Having the entire system configuration in one place that can be version controlled is a big plus too. You can create a live CD, VM, container etc from the very same code.
Nix and Guix can also be used standalone (think Homebrew or Gentoo Prefix), and can be very handy shell tools. E.g. `guix environment foo`[1] will drop you to an ephemeral shell environment with all build dependencies of package foo available.
0: https://www.gnu.org/software/guix/manual/html_node/Security-...
1: https://www.gnu.org/software/guix/manual/html_node/Invoking-...
If Guix gets to the point where every concern except that surpasses NixOS, we might see a close-to-upstream Guix-fork or third party repo (like MELPA and MARMALADE for Emacs) being established to address that.
Or at least so we can hope.
The fact that Guix won't distribute packages for non-free software does not mean that it restricts you in using Guix to manage such software packages.
I think a lot of people will get a taste of these advantages through e.g. Docker and Snappy and will eventually go all in with GuixSD or NixOS. These types of stateless software ecosystems will continue to become more common until eventually they are the norm.
>It uses low-level mechanisms from the Nix package manager, but packages are defined as native Guile modules, using extensions to the Scheme language—which makes it nicely hackable.
Though I've never bothered to figure out exactly how much if any code is actually shared between the two.