Statistical Rethinking and Nix
rgoswami.me
rgoswami.me
This is my fault, in a sense. In order to get the new Stan compiler (written in OCaml) distributed via CRAN (which requires everything to be built from source on its antiquated build servers), we decided to use js_of_ocaml to translate the OCaml compiler into javascript. See this thread for more details: https://discourse.mc-stan.org/t/a-javascript-stanc3/11044
When I posted that, I didn't really think we would end up using it.
Nix focuses on reproducible build declarations and development environments, while Docker focuses on self-contained, distributable sandboxes for code execution.
You can certainly try to use Docker to manage development environments or reproducibly build software, but that’s a secondary concern of the system. You’re probably right that these sorts of posts tend to have a “Nix hammer in search of a nail” feel, but the inevitable comparison to Docker always feels cheap to me I guess.
For us Docker is how we manage reproducibility, and it's pretty damn fine in so many ways, most certainly a lot better than Nix for the most part.