The history of defining infrastructure as code is long. First came shell scripts configuring servers, then Chef/Puppet-like configuration management tools bringing "declare desired state and we'll converge to it," and AWS solidified it with CloudFormation — "bundle entire cloud resources in declarative templates." But YAML/JSON templates have one fundamental limit: they're data, not code. No loops, conditionals, type checking, function abstraction. Anyone who's hand-copied 1,000-line CloudFormation templates yearns "if only this were code." AWS CDK (Cloud Development Kit) is exactly that answer — write infrastructure in real programming languages, with output as CloudFormation.