4 ms·
Not to sound too much like an evangelist, but Nix is the first ratchet I've found for software deployment / OS management. Everything else has been a lever. On
by colordrops 3y ago
Not to sound too much like an evangelist, but Nix is the first ratchet I've found for software deployment / OS management. Everything else has been a lever. Once you get something working, it works forever.
- xyzzy_plugh 3y agoI dare say it's the first truly genuine, malleable ratchet I've encountered in my entire software career.
- esafak 3y agoWhat do you use it for?
- xyzzy_plugh 3y agoEverything.
- lmm 3y agoI love the idea of Nix, but every time I go back to it I've forgotten the syntax. So it feels much more of a lever. I think something built on the same ideas but with a more standard configuration language (which I guess is what Guix was meant to be?) could be a great ratchet.
- fiddlerwoaroof 3y agoIt’s basically JSON, but with ; instead of , at the end of object fields and = instead of : The “programming language” part is basically an untyped ML: function application doesn’t need any parentheses or commas between arguments
- gmfawcett 3y agoSure, it's basically JSON with semicolons... that's used to define a graph of nested lambdas which are evaluated recursively until a fixpoint representing the stable configuration is reached. Also, you can add comments, which makes it nicer than JSON!
- unshavedyak 3y agoFor me it’s not the language, the language seems quite small in fact. It’s the damn magic functions. They’re everywhere, and the difficulty to find the function docs can be drastically variable. It would be a lot better if you could effectively trace your config like a program with debug breakpoints, but I’ve not found that to exist. I look forward to Nickel integration and never touching Nix again tbh.
- jerry1979 3y agoSince you are evangelizing a little bit, I have a question about nix. I'm a debian user, and I see debian as a base layer. It takes care of security updates and miscellaneous system configurations so I don't have to. In a way, it shifts under my feet, and I like that because those shifts are necessary for security and progress. How are you able to use nix in a way that allows those shifts to silently occur while at the same time maintain full control over your system's configuration? I imagine there must be some kind of tension between fully specifying what you want vs allowing experts to take care of configurations as they see fit. Thanks!
- packetlost 3y agoYou don't really fully specify most things. A complete working NixOS config with a few core utilities is like 50 lines without comments. Here is my main workstation's full definition: https://git.sr.ht/~chiefnoah/nixos/tree https://git.sr.ht/~chiefnoah/nixos/tree It's split up into multiple files, but even the total combination is not that much. If you let Nix take over your system (ie. NixOS) it moves out from underneath you in a completely reproduceable and revertable way so you can almost always just... run the equivalent of a dist-upgrade daily and get on with your life because you're 1 command away from undoing it all. You'll obviously have more the more you customize things, but for the most part its services.<service>.enabled = true;. The defaults are usually good enough IME.
- jerry1979 3y agoYour repo is very helpful. Really great comments. It's too bad that I'm so busy. The Nix sirens are certainly calling, but I'll have to plug my ears for now.