3 ms·
I tried out NixOS a few years ago but recently transitioned back to Rocky Linux and Ansible. I know that Nix is treasured by some but it always came across as a
by OhSoHumble 4mo ago
I tried out NixOS a few years ago but recently transitioned back to Rocky Linux and Ansible. I know that Nix is treasured by some but it always came across as an esoteric tool for functional programming idealists. I found the community to be split between people who were genuinely helpful and people who were just... not.
I found Nix just really hard to work with. The documentation was just so poor and every aspect of Nix just seemed to be divorced from pragmatism.
An example of this, years ago, was that I wanted to do something VERY simple: codify the creation of a directory in NixOS. It took me 6 HOURS to find the relevant code for doing that. I couldn't even get an answer out of the Discord server.
I don't know if I'll ever pick it up again. The learning curve was incredibly steep and it's just not on job descriptions and I've never worked in a shop that has used it. I tried it out as a curiosity, found that it was hair pullingly frustrating to use, and moved on.
- bwm 4mo agoYea, I totally get it. The thing is agents change the game. You no longer need to worry about the learning curve or how best to implement. Just point your agent at a machine0 VM and say "make a machine that does X", then you get code you can use to build on any nix box and you'll always get the same result. Once you experience this, it's hard to go back to a "traditional" OS, you'll want to nixify everything :)
- astralkraft 4mo agoI could say the same about Atomic distros and reproducible builds. Nix no longer has an exclusivity here. I find Ansible w/ Alma 10 Atomic (there's an rpm-ostree driver, cargo, pipx, etc.) gets the job done with less tokens, and less cognitive load on my team, that already doesn't want to work on configuration. Does Ansible have perfection? No, but neither does posix. Papering over this bump with a perfect abstraction isn't as useful in our imperfect world. All that being said, I'm glad people like you are pushing Nix forward. Competition here is a good thing.
- ikety 4mo agoAnsible is a different tool than Nix. It's been specifically designed to fit your exact use case. If ansible works for you and your team, there's no reason to drop it. I've never had a moment using nix where I've felt "wow I couldn't do this with any other tool". That's not really the benefit of nix. The benefit is the flexibility of the idea and the tooling. It's a flexible enough platform where I can use one config to manage 5+ computers in my house with various operating systems. I can use it to easily setup all my dependencies for my work projects. I can use it to build my work projects. I can use it to create vms to test those projects on. I can use it to build 3rd party projects without any instruction. All that required was a few months of pain learning the fundamentals of nix and I've received the rest for free pretty much. It's the epitome of upfront work for long lasting benefit in my opinion.
- mplanchard 4mo agoI do think the community recognizes this to be an issue and is steadily working on improving beginner-friendly docs. I am about seven years into using Nix for various things, and can mostly solve most problems, but I won’t deny that the learning curve at the beginning was brutal. The real and most meaningful unlock is learning to read the nix language well enough to follow what is happening, then checking out nixpkgs locally to look at crate derivations and such to understand what idioms exist in “real code.” The module system also took ages to click for me, but was a big unlock. Anyway, I hope the community continues to make the onboarding process more welcoming and easy. Personally, I am hopeful that guix will really take off at some point, because even though I get it now, I’d way rather read lisp than nix.