Posts
Comments
Comment by
l0b0 on
The Best Software For Every Need ·
2021-09-20T05:36:53.794Z ·
LW ·
GW
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 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.