LESSWRONG
LW

824
l0b0
11010
Message
Dialogue
Subscribe

Posts

Sorted by New

Wikitag Contributions

Comments

Sorted by
Newest
No wikitag contributions to display.
The Best Software For Every Need
l0b04y120

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.
Reply
No posts to display.