3 ms·
The problems with Nix have nothing to do with FP per se. The problems with Nix start long before you get to any programming. Take the home page. The first two s
by noelwelsh 4y ago
The problems with Nix have nothing to do with FP per se. The problems with Nix start long before you get to any programming. Take the home page. The first two sentences on the hero image:
1. "Reproducible builds and deployments." OK, this is exactly Docket etc. claim. No differentiation here.
2. "Nix is a tool that takes a unique approach to package management and system configuration." Uh, why should I care? What problem is this solving? What's the benefit to me?
And it continues throughout Nix. E.g. advice in this thread that the only sane way to use Nix is with Flakes, which are some semi-documented experimental feature of Nix. It's just terrible user experience right from the start. Just read the thread.
- maartenh 4y agoI agree that the FP part is not the only issue. It's that the community feels a bit more academic/I'll fix this for myself in the way that works best for me. You can indeed achieve some reproducibility with Docker. It's tricky though, as you'd have to pin exact package versions of software. If you'd `FROM ubuntu:$VERION`, and would run an `apt-get update`, you're not guaranteed to get the same software. Nix is like ZFS, as that it breaks the wall between two previously distinct area's. Those being building software, and installing/configuration software on your OS. It's quite different from the snapshot-everything methodology that Docker uses. Yeah, one can split in multi-stage images etc, but than you'll be keeping track of which dependencies need to be moved between the stages yourself, in a manner that cannot be abstracted away, so you're doomed to repeat the same patterns over and over again. People also state that LVM + ext3 is more than sufficient compared to the complexity of ZFS. They miss out on the fact on how much more fine grained solutions are possible with ZFS. I've used niv [0] before flakes arrived, and am actually still using that instead of flakes. The experimental nature of them has scared me away from them, as I'm not daily involved in this ecosystem at the moment. [0] https://github.com/nmattia/niv#niv https://github.com/nmattia/niv#niv
- toomanydoubts 4y agoNot to even mention that you just went into nixos.org and now it's talking about Nix(not NixOS).
- ParetoOptimal 4y ago> 1. Reproducible builds and deployments. Docker doesn't give you reproducible, it gives you repeatable 90% of the time. > 2. "Nix is a tool that takes a unique approach to package management and system configuration." > Uh, why should I care? What problem is this solving? What's the benefit to me? Because #2 enables Nix to actually deliver 100% reproducibile builds and deployments.