| NixOS gets my vote too. I started on Gentoo back in 04, played with Arch for a year or so, then went to Nix a few years ago. I have never had so much love for an operating system. The Nix language is cute, very powerful, and as you say, is capable of cool tricks. I personally find it very easy to read too. For every project I work on, I define a .nix file describing its build environment. It is then just a matter of cloning the repo, typing nix-shell, and then all build dependencies will be downloaded and I'm ready to go. These nix files also specify which emacs I want to use and with which modes: I don't use Emacs' package manager. I use nix-shell for pretty much everything. My basic environment contains only core utilities. I launch firefox with "nix-shell -p firefox --run firefox" (bound to a shortcut defined in my xmonad config). Nix is easy to customize. The override infrastructure makes it easy to modify package definitions from your user config file, and I find I am much happier doing this in a programming language rather than a bespoke config file format. Other pros: you don't need to be root to install stuff. And there isn't much more satisfying than getting a new laptop, git cloning the repo containing your intended system configuration, and being back up with your old OS with one or two commands. As you say, if Arch turns you off, Nix may horrify. Despite the vote, I'm pretty discriminating about who I recommend it to. |
* -- again, standard disclaimer, any Linux distro can kill your puppy, eat your homework, and burn your laptop; but that's true even of Ubuntu :)
Not sure how to rephrase the original post to better express what I mean. That said, after reading your reply, I agree that I find it hard to push on NixOS to even fellow "regular" devs; I don't have balls yet to install it as my main OS either. Maybe it's that NixOS has somewhat harder initial curve than "your common Linux"; the install phase reminded me somewhat of Slackware of '90s for a sec (though it's still better); again, not sure how it compares to Arch; plus there's the new language (Nix). That said, personally I wouldn't even think about using Arch, knowing how even tweaking Ubuntu is risky. And exactly as you said, I found Nix (the language) truly cute quite quickly. Totally much simpler than Haskell (which I still can't break into, even after some initial successes with SML, OCaml, and growing interest in Idris, which is reportedly Haskell-inspired).