So you don't like using programming languages as config languages, so you:
1. Use a declarative-style format for config, which is fine, I guess; 2. ... and when that inevitably fails, you... use a programming language?
Some people -- not all, but some -- may prefer to skip the first step and go straight for the second option. Particularly if it's a complex thing indeed like a build system and not, y'know, configuring your blog.
The theoretical difference in power between a non-Turing complete declarative language and a turing complete one is irrelevant in practice. Datalog is a decidable, declarative subset of Turing-complete Prolog. It's also EXPTIME complete. I don't think we exclude any real use cases by prohibiting super-exponential algorithms.
The problem is shitty config languages. I wouldn't group xaml in the same category as dhall for example.
OT, but seeing "alot" always sends me here: https://hyperboleandahalf.blogspot.com/2010/04/alot-is-bette...
Language is what people use, and "alot" is close to critical mass, so you'll outlive this species of pedantry. I just like the cartoon.
That's lovely. I look forward to seeing your autoconf and GNU Make replacement in MAUDE SYSTEM.
It's interesting because this is exactly what I used to do for my hyprland config (which the op is about). I had some keybinds that would shell out and use a script with the hyprctl cli.
Now it's all a single simple lua function and 3x as fast... I think this change is great.
Those aren't the only two options. There are non-Turing complete config languages like Cue, Dhall, and Jsonnet that are designed to complete and be consistent. They work well when did to generate static config from some dynamic input generated by regular program.
> 2. ... and when that inevitably fails, you... use a programming language?
Maybe it fails because you are trying to solve a problem with a configuration when it should be solved by a function implemented in the program you are trying to use.
And what do you suggest users do if that function isn't in the program and is unlikely to appear there?
> and when that inevitably fails
This assumption is doing a lot of work. Surely the question was precisely why it would fail?