These are all good reasons, and I would jump on CDK if it didn't have Cloudformation underneath. The issue of Cloudformation is not just its horrible syntax, but that when it fails it fails hard. There is no rollback and there is no roll forward. You have to call AWS Support to unstuck it. And it's slow.
The one super advantage I see for CDK is that if you go with it, you are on AWS's golden path. All the other tooling you really want is there and all the future tooling AWS brings will be on top of CDK (which means it's on top of Cloudformation unfortunately).
The other problem is if your organization already committed to and has its entire infrastructure based on Terraform, I don't know of anyway to transition other than throw away the old and start over with CDK.
Yes, but
All AWS CDK applications require Node.js 10.13 or later, even if you work in Python, Java, C#, or Go.
I think it's a significant disadvantage. Instead of using only one binary file (terraform), you have a chain of dependents.
Friedrich Brunzema Sciex
Nice article. Dont know CDK, but agree with the other comments about Cloudformation being horrible. Now I never have to know what happens, maybe it is OK. Rewriting terrform/terragrunt scripts is probably not worth it for us. Of course having a 'normal' programming language is a big asset.