Guix is such a cool idea, but Nix accomplishes essentially the same thing, and the syntax is much more accessible in a post-JavaScript world. Most programmers nowadays aren’t that familiar with Lisp-like syntax, for better or worse.
I don’t hate on any language’s syntax tbh, but the tooling for nix is absolutely miserable compared to similar.
People hate on yaml a lot, but I can start typing and then press tab and it completes a whole template for whatever k8s objecy I am trying to make. Having to copy from my other project’s shell.nix/whatever into the new one feels miserable in comparison.
I do agree, yeah, although I can certainly also understand LISP fans being annoyed that someone created a custom DSL for something that is adequately solved by the LISPs. I’m also certainly not enamored with the Nix syntax myself, but do find it easier to parse than a million parentheses.
But yeah, ultimately the complexity of Nix and Guix isn’t in the particular symbols you type out. The complexity comes from them being expression-based (which does make sense for the use-case, but isn’t as familiar as e.g. imperative languages), as well as just having to learn tons of modules for the different things you want to configure…
Guix is such a cool idea, but Nix accomplishes essentially the same thing, and the syntax is much more accessible in a post-JavaScript world. Most programmers nowadays aren’t that familiar with Lisp-like syntax, for better or worse.
I don’t hate on any language’s syntax tbh, but the tooling for nix is absolutely miserable compared to similar.
People hate on yaml a lot, but I can start typing and then press tab and it completes a whole template for whatever k8s objecy I am trying to make. Having to copy from my other project’s shell.nix/whatever into the new one feels miserable in comparison.
I do agree, yeah, although I can certainly also understand LISP fans being annoyed that someone created a custom DSL for something that is adequately solved by the LISPs. I’m also certainly not enamored with the Nix syntax myself, but do find it easier to parse than a million parentheses.
But yeah, ultimately the complexity of Nix and Guix isn’t in the particular symbols you type out. The complexity comes from them being expression-based (which does make sense for the use-case, but isn’t as familiar as e.g. imperative languages), as well as just having to learn tons of modules for the different things you want to configure…