The reason for not doing a full programming language for that is that you can prove the infrastructure is finite with a simple template language, but you can’t if your template language can do conditional branching.
Or something like that. My CS-fu is admittedly weak.
OTOH, I think Lisp would be the perfect choice for IaC.
It's a valid point. Although I think most of these templating languages are probably Turing complete anyway. We should make better use of Turing limited languages.
I think reinventing the wheel every time a for loop is needed in a resource spec makes things unnecessarily tedious for everyone.
IIRC, Terraform was not Turing-complete at the start, but users demanded features and that’s how it ended.
The idea to start from a programming language is that, since you are going to end up Turing-complete anyway, at least you make sure you don’t end up with a programming language with an awkward syntax.
Or something like that. My CS-fu is admittedly weak.
OTOH, I think Lisp would be the perfect choice for IaC.