Other programs I've tried: Puppet, Ansible, Pip, Poetry, Virtualenv, Vagrant, NPM, Yarn, Gradle, Docker, Apt, Yum, Make, and many more I can't remember the names of.
It would be difficult to convince myself from ten years ago that Nix was even a good idea without trying it. The change is probably as fundamental as going from ./configure && make && make install to a package manager, or from no version control to Git. I'll give it a try
You can replace the vast majority of the use cases of the other programs above with Nix – it's not just another tool on the pile.
Do you ever work on more than one programming project? It's trivial to ensure they don't clobber each other, for example when they use different versions of NPM or Python.
Reverting to a previous version of your entire operating system configuration is trivial.
You don't need to write any rules to uninstall packages or disable services when you no longer need them, like in Puppet or Ansible - you simply remove the relevant line and rebuild.
Some arguments I can think of against Nix:
Builds can take a relatively large amount of disk space, but that's already really cheap and getting cheaper.
The Nix language is maybe about as complex as Puppet, Ansible or Vagrant, but unless you're developing software you won't need to deal with anything as complex as that.
Some of the tooling is still not very mature. Again, unless you're a developer using some unusual package management solution you should not worry about this.
Software: Nix
Need: Package management
Other programs I've tried: Puppet, Ansible, Pip, Poetry, Virtualenv, Vagrant, NPM, Yarn, Gradle, Docker, Apt, Yum, Make, and many more I can't remember the names of.
It would be difficult to convince myself from ten years ago that Nix was even a good idea without trying it. The change is probably as fundamental as going from
./configure && make && make install
to a package manager, or from no version control to Git. I'll give it a trySome arguments I can think of against Nix: