Basing their killer app, the package manager, on a weird Haskell-like semi-functional undocumented language was a major faux pas of the project in my opinion. Guix is certainly easier to understand and hack, but sadly too "GNU" (i.e. orthodox) to be as useful in the real world as NixOS.
Adopting NixOS means learning how everything fits together as well as learning the quirks of a not very intuitive language. Way too make adoption even harder for everyone on the fence.
Re:Nix: An idea whose time has come
by otabdeveloper4 on Saturday February 19, 2022 @08:23AM
(#30396971)
The Nix language is just JSON + variables + lambda functions.
There's nothing "Haskell-like" in it as far as I can see.
And its real problem, just like with Javascript, is that it suffers from a serious case of roll-your-own-framework syndrome.
I've been using Guix in the real world just fine.
If you mean that it doesn't come with the vanilla Linux kernel: just add the nonguix channel and you can install it.
>I really wish this was written in something even like Haskell or Ocaml, that has actual real language support and tooling. Troubleshooting attribute errors was just not possible and I gave up (GUIX looks awesome, but I can't really use shepherd unfortunately).
The 3 times I've tried to use Nix (and invariably gave up), I always came to this conclusion.
A language like F#/OCaml with great typing and type inference and good auto completion could get us half the way to usability.
Nickel Is Coming! https://github.com/tweag/nickel, e.g. https://github.com/tweag/nickel/blob/master/examples/polymor... . Looks really exciting to me!
Have a look at PureNix: https://functor.tokyo/blog/2022-01-03-purenix
I really wish this was written in something even like Haskell or Ocaml, that has actual real language support and tooling. Troubleshooting attribute errors was just not possible and I gave up (GUIX looks awesome, but I can't really use shepherd unfortunately).
It really says something when I found myself looking to Gentoo as an "easier, well-thought-out alternative"...