HashiCorp's 2023 license change (Terraform moved from MPL 2.0 to BSL 1.1) split the IaC community. OpenTofu forked under the Linux Foundation and remains open-source MPL. Pulumi gained momentum from teams wanting a legitimate alternative. The IaC landscape in 2026 is more fragmented than it was in 2020.
Terraform (and OpenTofu) use HCL — HashiCorp Configuration Language — a declarative, JSON-like syntax with limited programming constructs. The plan/apply workflow (show what will change, then apply) is the gold standard for safe infrastructure changes. The provider ecosystem is unmatched: 3,000+ providers, with AWS, Azure, and GCP providers maintained by the cloud vendors themselves. If your infrastructure is straightforward AWS/Azure/GCP resources, Terraform or OpenTofu are the pragmatic choice — the ecosystem, community, and tooling (Atlantis, Spacelift, Terragrunt) are mature.
Pulumi uses real programming languages — TypeScript, Python, Go, C#, Java, and YAML. This is the decisive difference for teams with complex infrastructure logic. Dynamic resource creation (generate 50 Lambda functions from a config file with a for loop), higher-order abstractions (reusable TypeScript functions that create standardized infrastructure patterns), and type-safe resource configuration are all natural in Pulumi and awkward in HCL. Pulumi also supports Terraform providers via a bridge layer, so the ecosystem gap is smaller than it was.
AWS CDK (Cloud Development Kit) deserves mention. It uses TypeScript, Python, Java, Go, or C# to generate CloudFormation. For AWS-only teams, CDK provides the programming language benefits of Pulumi with deep AWS service integration and L2/L3 constructs that encode best practices. The gap: CDK is AWS-only and generates CloudFormation, which has its own limitations.
OpenTofu is the practical choice for teams who were on Terraform and want to stay on open-source licensing without migration cost. API compatibility is maintained, and provider support is identical to Terraform since providers aren't licensed under BSL.
Practical guidance: OpenTofu/Terraform for multi-cloud teams with standard resource patterns, Pulumi for teams needing complex logic in infrastructure code, AWS CDK for AWS-only teams comfortable with TypeScript.