I think it's time to give Nix a chance
Enthusiasm and Benefits
- Several commenters describe Nix/NixOS as the first time Linux “just works”: painless upgrades, rollbacks, and trouble-free multi‑machine setups.
- Strong praise for reproducible dev environments, especially combined with flakes and direnv; per‑project shells spin up automatically and keep dependencies isolated.
- Nixpkgs’ breadth and freshness of packages is seen as a major advantage, plus powerful binary caching (including easy S3 CI caches) that can reduce long pipelines to minutes.
- Some use Nix purely as “a better Homebrew” or as a cross‑machine dotfiles / terminal environment manager, without adopting NixOS.
Complexity, Learning Curve, and Language Friction
- Many report a “honeymoon phase” that ends once you need custom derivations or hit opaque stack traces; at that point the Nix language and laziness feel painful.
- Others argue Nix is unfairly labeled “too hard”: simple use cases are straightforward, and serious systems (C++, Rust, cloud platforms) are at least as complex.
- Common complaints: typeless function arguments, poor error messages, unclear variable origins, heavy reliance on online examples, and split/controversial tooling around flakes.
- Some explicitly say they left Nix after concluding they were “doing masochism,” and returned to Debian, containers, or simple scripts.
Nix vs. Guix and Other Approaches
- Guix comes up often: people like Scheme/Guile over Nix language; capabilities are seen as broadly similar, with Nix ahead mainly in mindshare and package volume.
- Guix’s strict stance on non‑free software is viewed as a practical drawback, partially mitigated by nonguix.
- Several argue Docker + Debian/Ubuntu with pinned versions (or self‑hosted repos) solves most reproducibility needs with far less cognitive overhead.
Practical Pain Points
- Packaging ML stacks (Python/C++/CUDA) and messy build systems (Bazel, -sys crates, weird setuptools hacks) is repeatedly called frustrating; many fall back to conda, Docker, or FHS/nix‑ld escape hatches.
- Disk usage of
/nix/storecan grow large; GC helps but doesn’t fully remove concerns on space‑constrained devices. - Integrating editors and LSPs usually relies on project devshells + direnv; workable but under‑documented and non‑trivial.
- Corporate laptops and conservative IT/security environments can block or complicate Nix adoption.
Security, Adoption, and Who It’s For
- Supply‑chain story: strong on “this binary matches this source via hashes and reproducible builds,” weaker on social trust/“council of elders” compared to Debian.
- Some see Nix as ideal for orgs that can’t compromise on reproducibility and cross‑platform consistency; others think its complexity disqualifies it for most users.