3 ms·
It's both. Nix is fantastic. I'm writing this comment on a laptop that has only ever run NixOS. Nix is also painful to learn. It's painful to use. That doesn
by thomastjeffery 3y ago
It's both.
Nix is fantastic. I'm writing this comment on a laptop that has only ever run NixOS.
Nix is also painful to learn. It's painful to use.
That doesn't mean it's impossible, or even that it isn't worth it.
It means that Nix has room to improve.
- esafak 3y agoThis mixed bag makes it hard to decide whether one should learn it. How much value do you get out of it? What are its best use cases?
- thomastjeffery 3y agoMy OS is always a fresh install. Everything I did to alter and configure my OS is self-contained and self-documented in one file. I can try anything without ever risking the stability of my system. If it breaks, I just reboot, and pick the second most recent GRUB entry. If I ever want to change my root filesystem or move to a new disk, I can do the whole reinstall in a few short obvious steps. I can keep my laptop and my desktop configurations identical. If I want a few things to be different, they can go in a separate config file. The trickiest part is running software that isn't already packaged. It's usually not too hard, though: there are a few nix features that construct a more traditional/compatible environment, like steam-run and nix-ld. The biggest problem is that their existence isn't obvious to new users. They should really go near the top of the manual.
- pxc 3y agoI wonder lately whether the pain is really the primary issue. As I've gotten deeper into using Terraform at work, I've found it much, much more painful than Nix— so much so that it has me questioning whether I want to continue to work with cloud infrastructure at all. Yet Terraform is 'industry standard' and widely praised, where Nix is marginal and maligned for its difficulty. Maybe it's because people think of NixOS more than Nix in all its broad uses, and when they do so they compare NixOS to desktop operating systems where those people don't see themselves as very interested in configuration management. But I wish that many industry standard tools had comparable iteration times to Nix, or concise languages like Nix, reliable transitions between configurations like Nix, efficient caching like Nix, minimally destructive replacement of old resources like Nix, etc. Most of the things people call 'immutable infrastructure' today are painfully slow and transparently mutable. I'm much happier when I'm reliably iterating on local Nix stuff than when I'm praying that `terraform plan`'s success isn't a fluke this time, and that the corresponding `terraform apply` will actually succeed. I'd rather spend an hour on the the thorniest Nix issues than spend 30 minutes fucking around trying to 'help' Terraform delete a resource that requires manual intervention to actually delete, for some godforsaken reason.