Remix.run Logo
Pay08 4 days ago

Mostly, the DSL in Guix has the syntax of (field value), I don't really see the problem with them. There are some more complex DSLs relating to service/package modification but those tend to take imperative code blocks. IMO the most difficult it gets are g-expressions, which are quasiquoting for the Guix daemon.

MarsIronPI 3 days ago | parent [-]

Eh, I think it's that with Nixlang one can write

  foo.bar = true;
as a shorthand for

  foo = { bar = true; };
which makes deeply-nested options much easier to write out. In general Nix looks a lot more like a config file to me.
Pay08 3 days ago | parent [-]

I've never seen more than one level of nesting in a piece of Guix code, but that comes with the caveat that Guix is quite happy to extract fields that would perhaps be nested with other languages into their own top-level fields, like the build-system and arguments fields being separate in package definitions.