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
Strong endorsement. Having used ansible for work and Nix for my own computer, the experience is incomparable.
As two additional "against" I'll offer these:
1. while Nix-the-idea and NixOS-the-operating-system are awesome and vastly superior to the alternatives (other distros I've tried: ubuntu, mint, arch, gentoo, debian, devuan, centos, ...), Nix-the-language is... suboptimal. Weird syntax, not awesome error messages (but at least if you get an error you don't get it halfway through an ansible playbook leaving your system broken UGH)
2. the documentation is... Not Great. A lot of the time I had to read the source code for nixpkgs which should not be needed?
That considered, I still maintain it is architecturally vastly superior to the alternatives, in particular because error messages can be improved (for example, via the Nickel project), and the documentation can be fixed, without changing the architecture.
1Olivier Faure
As a counterpoint, here's my experience with NixOS: https://poignardazur.github.io/2021/09/08/nixos-post-mortem/
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 try- You can replace the vast majority of the use cases of the other programs
... (read more)