I feel the same about HCL in Terraform. The tool is perfect, the language is bollocks.

Pulumi may be what you're looking for. Same concept as Terraform, and many of its provider libraries are just wrappers around Terraform provider libraries, but you can use a variety of common programming languages to declare your desired state, rather than HCL.

Yeah, I tried it briefly some time ago and it seems like a solution.