Some notes on nix flakes

Some notes on nix flakes

Julia Evans

a few people in the replies are asking why someone might want to use nix as an OS / to manage your python packages / to manage your config files.

does anyone want to share their reasons for doing those things? I don't really know.

(please give examples of some specific problems Nix solves for you and what you like about it, don't just say "it's reproducible/declarative” :) )

@b0rk I find it compelling for cases where you are doing any of:
- FFI
- linking to system dependencies
- depending on stuff that are appropriate for your use case, but that have a complex dependency footprint themselves, and you don't really care about it beyond needing to satisfy so you can Do Your Thing

I face these concerns working in Elixir/Rust, but I think those are commonly encountered in Python ecosystem too. Things like CUDA or TensorFlow might be popular examples of the third point.

@b0rk these are sort of pathological examples where a single programming language's dependency handling is not totally sufficient to fight off complexity, bitrot, etc. Going to a project months later may not work, & might be sensitive to other things you've done since then.

Having the flake content in question versioned right alongside your project is a super power, because you can enter your dev env and satisfy prerequisites as the project understood them at any point in the commit history.