Nix – Death by a Thousand Cuts
Overall sentiment & use cases
- Many describe a strong love/hate relationship: the core ideas (declarative config, reproducibility, rollbacks) are praised, while tooling, ergonomics, and docs are frequent pain points.
- NixOS is widely seen as excellent for servers, CI, and dev environments; desktop suitability is heavily debated.
- Several people keep Nix only for user‑space/dev (e.g., Home Manager or nix on macOS/Ubuntu) rather than as their main OS.
Desktop vs. server
- On servers, users report major gains in stability, repeatability, and ease of upgrading/rollback.
- On desktops/laptops, issues include Wi‑Fi/eduroam, NVIDIA/Wayland, webcam/sleep regressions, VS Code remote integration, and difficulty running generic Linux binaries.
- Some daily‑drive NixOS happily and say they “can’t go back”; others tried and reverted to more conventional distros (Ubuntu, Arch, Fedora‑Atomic/Universal Blue).
Nix language, flakes, and workflows
- The Nix language is widely seen as odd, under‑documented, and poorly tooled (weak LSP/“go to definition”, confusing module system).
- Flakes are divisive: many consider them essential (pinning, pure eval, devShells, easy
nix run), others note they’re still marked experimental, have UX issues, and overlap with non‑flake pinning solutions. - Lack of a clear, blessed “new user workflow” (system config layout, how to structure flakes, how to mix stable/unstable) is a recurring complaint.
Packaging, binaries, and compatibility
- Nixpkgs’ breadth is praised, but:
- Packaging complex or binary‑only software can be hard, especially when it assumes FHS paths or mutable config.
- Tools like buildFHSenv, nix‑ld, steam‑run, distrobox, and AppImage helpers are common escape hatches.
- Cross‑compilation and Raspberry Pi support work for some via remote builders and community projects, but are described as fragile or slow.
Docs, errors, and learning curve
- Documentation is called fragmented, outdated in places, and light on end‑to‑end examples; many mention “too many ways to do the same thing.”
- Error messages are often considered cryptic; LLMs are reported as unhelpful for non‑trivial Nix debugging.
Comparisons & philosophy
- Some argue conventional distros + config management (Ansible‑like scripts, Btrfs snapshots, Timeshift) already solve most needs.
- Others see Nix’s declarative, near‑stateless model as a qualitative upgrade over Dockerfiles, LTS distros, or ad‑hoc configs, despite the current “death by a thousand cuts.”