The same infrastructure written three ways, and what I learned. Infrastructure as code has split into two camps. One says infrastructure should be described in a declarative configuration language, like Terraform's HCL. The other says: we already have great programming languages, why not use them? That's the idea behind Pulumi and the AWS CDK. The best way to compare them is to write the same thing in all three. So here's a simple S3 bucket with versioning, in each. Terraform ...