I encourage you to give Nix a try. I think the most obvious benefits to any developer, would be reproducible environments (no longer “but it works on my machine”), simplified instructions when getting started into projects (usually just 1 nix-shell command), and sanity (it prevents you from having hidden dependencies). Oh! It also lets you lock onto specific builds of dependencies, it’s like a deps lock file but for system packages
.
Let me change your mind. You can browse the derivations source of any application, with clearly defined ins and outs. Everything in Nix is deterministic. For example this htop derivation to not get you overwhelmed. Even in 30 years from now on, the same derivation tree will build and run in exactly the same way - isn’t reproducibility great? I have never seen it as any more complex compared to other package managers. I would say, that by having clearly defined dependencies you avoid lots of ambiguity, making it simpler to reason about.
If you still disagree, can you provide some more context or examples? I would perhaps be able to address some specific issues (instead of having my replies so broad).
2 Likes