Use different semantics if you must, but please use some existing syntax for your DSL.
I'm so tired of learning a pointless new variety of almost the same thing, only with slightly different syntax, maybe some awkward string quoting, and some rather pointless syntactic sugar.
I'm not saying NixOS is the worst offender, but innovating in (mostly) superficial syntax, or using obscure syntax is almost certainly not well spent time except for a few very narrow niches/contexts. Especially not for prospective users.
I get it, it's fun inventing both languages and tools, I love doing it myself!
However, and in general: Don't invent a language when you need a tool, and vice versa.
It does not excuse Nix to have such a braindamaged^W esoteric syntax.
I don't think the immutability is actually important. Only derivations (which are basically language agnostic) need to be immutable/hashable.
> It does not excuse Nix to have such a braindamaged^W esoteric syntax.
What's so bad about it? The main pain point I've found with it is the lack of documentation for builtin functions. The syntax seems fine to me.