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/store can 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.