3 ms·
Purely functional programming in package management and system configurations is next-level.[0] When your package installation scripts no longer are represented
by siraben 3y ago
Purely functional programming in package management and system configurations is next-level.[0] When your package installation scripts no longer are represented as actions from one state to another but as a state that is either realized completely or not, things become a lot more deterministic, manageable, and compositional. In Nix, a package is a pure function that takes in inputs and produces outputs. Given the same inputs, we have the same outputs, and so caching becomes easy, for instance, along with extensive sharing.
As an active user and package maintainer I can't count the number of times I've decided to rebuild an old project that I haven't touched in years and it still working, while in the same session working on another project using up to date libraries.
There's also straight.el for Emacs[1] which has finally made Emacs config maintenance far better for me.
[0] https://nixos.org/ https://nixos.org/
[1] https://github.com/radian-software/straight.el https://github.com/radian-software/straight.el