These days, I've been working on a small tool to run GUIX as an unprivileged user, so that you can use GUIX profiles as a dev environment builder. I didn’t do any market research, but AFAIK there are similar tools using Nix. Honestly, this is just a toy project for fun. I had GUIX on one hand and Zig on the other, so I figured, why not try something new using both?
Why not Nix? I just don’t like the Nix language. Plus, it seems like they ended up reinventing part of Lisp with their Flakes, which made me even more convinced in using GUIX. The GUIX folks didn't disappoint me, as they utilized the full power of Scheme to design a (internal) DSL that is clean and almost reads like JSON/YAML. I feel quite confident that it’s a better language for building devenvs for most people. The only downside is that it can get really verbose, but, hey, at least you have full control.
One thing is that I was referencing the old popular quote on Lisp: "Whoever does not understand Lisp is doomed to reinvent it," so there’s a little bit of exaggeration there.
Still, it’s true that Nix Flakes is a kind of dynamically-typed environment that lets you compose various constructs in Nix in a uniform way. But, let's be honset, we have had duck typing forever, and Lisp is a dynamic language from 1960s. Reading through forum posts (as I never went deep with Flakes), Nix really needs a fundamentally better language, or I have a strong feeling that the project will just keep reinventing language features one by one.
Why not Nix? I just don’t like the Nix language. Plus, it seems like they ended up reinventing part of Lisp with their Flakes, which made me even more convinced in using GUIX. The GUIX folks didn't disappoint me, as they utilized the full power of Scheme to design a (internal) DSL that is clean and almost reads like JSON/YAML. I feel quite confident that it’s a better language for building devenvs for most people. The only downside is that it can get really verbose, but, hey, at least you have full control.