Open safinaskar opened 1 year ago
The critique is only useful if it's factual, and it's not:
In Nix, as far as I can tell, there's no sharing/deduplication of individual files across different packages or different versions of the same package.
nix has had store optimisation since 2007 and exposed automatic optimisation since 2012
Chapter 6 of the Nix thesis talks about making the build outputs "content addressable" (where the checksum describes the build target's contents instead of the build command + dependencies) but that's described as experimental. I don't know if it was ever implemented in Nix.
CA derivations also exist, so I don't know where they're going with this one.
It also means that you can't share/reuse any work done by intermediate build steps within a package -- with Nix the granularity is at the level of each package.
This is about the only useful sentence here, but that's also not really unique to nix? Besides, I've no idea how guix handles this in comparison.
The far more relevant response from a nix dev here: https://lwn.net/Articles/821845/
Thanks for post! Please, add info from this comment: https://lwn.net/Articles/821765/ . But the author said that he didn't use Nix, so, of course, everything need to be checked.
This critique is very good, because it concerns fundamental Nix problems: its architecture. So this problems possibly should be added to the top