Introduction to the Nix package manager

A package manager installs, upgrades, configures and removes computer programs in a consistent manner. Software engineers use many package managers every single day. They can be divided roughly into 3 groups:

  • OS package managers, for example, brew, apt, pacman
  • Programming language package managers, for example, go mod, cargo
  • Programming language version managers, for example, gvm, rustup

All of the above and more can be replaced with a single tool as long as you don't use Windows.

You don't even have to use docker that much, unless you're building distributed systems.

The best way to experience nix is not to use it directly, but through devbox, which can be installed with a single command:

curl -fsSL https://get.jetify.com/devbox | bash