<i>&gt; HCL is fine, but Terraform&#x27;s interpolation syntax has a long way to go</i><p>Oh, HCL is fine, you say so authoritatively? Well then do me a solid and show me an if statement, show me a for loop. Because you&#x27;re not building nontrivial, reusable infrastructural modules without logic. I know. I&#x27;ve tried. I&#x27;ve committed, between different projects and clients, somewhere around ten thousand lines of Terraform and probably half are copy-paste garbage because HCL is so crippled a tool.<p>It hurts me to say this at a deep and visceral level: Terraform&#x27;s interpolation syntax makes freaking <i>Ansible</i> and its &quot;no, really, it&#x27;s totally cool, string templates for logic are awesome&quot; look good.<p><i>&gt; The right approach to any problems with Terraform is not to spread FUD about it like below, but to contribute code fixes.</i><p><i>Spread FUD?</i> Oh, no no no, you can take your assertions of FUD and insert them somewhere uncomfortable, thank you very much. I wrote Terraframe[1] specifically <i>to</i> contribute back to the Terraform community, to make it better, and stopped (to create a different project) because I was stymied. By no documentation, by HCL &lt;-&gt; JSON not actually working, and by no interest from the developers in any sort of dialogue about actually fulfilling the promises <i>they themselves assert</i> for their software. Between this and bugs that a <i>trivial</i> testing framework should catch (Why are you validating AWS resource names differently between point releases? Why are you changing that validation to be <i>wrong</i>? Why are you breaking my existing states when you&#x27;ve done this? Why did your tests not catch this before you pushed this out to your entire userbase?) I cannot take the project seriously as a tool for being used in infrastructure I care about. Because I don&#x27;t trust them to take Terraform seriously, either.<p>[1] - <a href="https:&#x2F;&#x2F;github.com&#x2F;eropple&#x2F;terraframe" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;eropple&#x2F;terraframe</a>