3 ms·
> For various reasons, Terraform was ditched in favour of a python-based boto3 solution, and one of those reasons was that the restrictions of a more declarativ
by Simran-B 4y ago
> For various reasons, Terraform was ditched in favour of a python-based boto3 solution, and one of those reasons was that the restrictions of a more declarative language produced more friction than the benefits gained.
I feel the same about CMake. It's horrendous and everything would be much simpler if you could use the full power of an imperative programming language. Conan on the other hand is Python-based and essentially a framework (though for a different purpose). With a nice set of built-in functions and a clean interface design, I believe that using a full programming language gives you many of the advantages of declarative languages without the oddities and an easy way to drop down to a lower level.
- brabel 4y agoIn the Java world there is also the debate between Maven (more declarative) and Gradle (less declarative, but also tries to pass as declarative), and the same conclusion is always reached: Maven make it very difficult to do complex things, therefore Maven builds tend to be very simple (sometimes lacking obvious features because of that) while Gradle projects tend to become utterly complex as it's just easy to use Groovy or Kotlin to create whatever mess you need the build to do... my argument to defend Gradle when this is pointed out is that if the build is doing intrinsically complex things, having a proper language to manage that complexity is the only sensible solution: people writing these builds are professional developers, if they can't keep complexity under control using a fully featured programming language, then they are just not very good professionals.