Nixos.
The ability to have my whole system in a git repo is what i have been looking for when i did not know it.
Steep freaking curve though and the documentation kinda blows. But its the distro ive spent the longest on apart from Arch, and i feel quote at home even though most stuff is done differently.
Also, mixing stable and unstable packages; also nix run/shell/develop. On the other hand, error messages sometimes outcompete those from cpp in being confusing AF 🤣
Nix package managers have the worst error messages. But I like it for it's reproducibility. I'm contemplating moving over to Guix, as the Guile language is quite developed, and the GNU folks are taking a dive into experimental Guile REPL for debugging services and apps, which is going to be quite interesting.
I did some research on guix when i was deciding which one of the two i was going to try as a daily driver.
My conclusion was that choosing guix would mean choosing a smaller community and amount of support for a better language.
Would love your opinion if youve done your research on it. Why choose guix over nixos?
Most of my reasoning is experimentation to alternative form of OS interaction, and I would not use it for serious computing. NixOS is a different thing - since I have only one laptop, so I took the gamble, and I've enjoyed it, but if I can afford another device, I won't do something risky like that again without playing around with a VM. I've toyed around with Guix, and I've enjoyed it, but my justification for switching over to Guix in the nearest future is:
The first reason is pretty lazy, but GPL-3.0 license.
The second reason is that it will be a environment tied with a specific functional programming language (in my case, Guile). So, if I want to diagnose stuff, I can, for example, use the Shepherd REPL, which will support Guile. In a way, Guile will be a nice addition for sysadmin.
Similarly, I do not see a reason to stick over to POSIX conforming shell standard, because most of the stuff will be done by the Guile expression, right? With some exceptions like having to run CLI binaries, most of the shell will be pretty useless for me. I would not care about minor inconveniences like having to add a few extra characters, like for example, (run ( --help)) instead of just --help. So why not just switch to something like scsh, but the Guile equivalent? I could just replace shell with Guile REPL (haven't tried this in great depth, so I'm not confident) or gash (played with this a little, it's quite similar to POSIX-respecting shell).
The fourth reason is that I've come to appreciate Guile more, despite it being hard to read as a first timer to Scheme-like language. I know that Nix is more and less of a DSL, but perhaps that is why I'm not interested in it, because the NixOS repo is polluted with multiple scripts, and if I were to maintain a project, I want to make sure to reducing adding multiple languages or tools as much as I can, to keep it simple. Guile can also fulfil that role.