3 ms·
My understanding is that Nix was initially invented to solved the "producing builds with a fully specified dependencies graph" problem; people then figured out
by RyEgswuCsn 3y ago
My understanding is that Nix was initially invented to solved the "producing builds with a fully specified dependencies graph" problem; people then figured out that it can dub as a package manager to support a better developer experience.
Docker, on the other hand, was introduced to solve the deployment problem --- it provides light-weight isolation so that you get boggled in resolving dependency conflicts. Of course, people later also use it drive development environments, which I find quite sensible.
- Smaug123 3y agoPersonally I think of Nix mainly as analogous to "the part of Docker which concerns itself with producing the OCI artefact", but in a much less cursed way than via Dockerfile and `docker build`. (`docker build` is inherently cursed by design; `nix build` is cursed only through incidental facts about Nix, and it would be possible in principle to write a non-cursed frontend for it.)
- rgoulter 3y agoThe nix PhD is titled "The Purely Functional Software Deployment Model", which suggests that deployment was very much in mind with Nix. https://edolstra.github.io/pubs/phd-thesis.pdf https://edolstra.github.io/pubs/phd-thesis.pdf
- RyEgswuCsn 3y agoThat is very interesting. Skimming through the thesis, I find it fascinating introductory material to Nix. And you are correct, Nix started as a deployment tool. Although I'd argue in an era (1978!) when software are mostly distributed as source, reliable deployment largely implies reliable building from source.
- Macha 3y ago1978 is not the publish date of the thesis. The examples (Firefox, JDK 5, OpenSSL 0.9.7) should give away that it's newer, and also the most recent citation is from 2006. I'm not sure why the title page has a 1978 as I can't read Dutch. Google Translate indicates it might be a date of birth of the author, but that's a weird thing for the title page.