Hacker ApprovedDepartments

HCL

Ranked 4 of 9 configuration languages by recommenders

Recommended as a simple, declarative configuration language that covers its main use case well, especially in Terraform. Critics say it is hard to refactor and has grown imperative constructs.

Recommended as a simple, declarative configuration language that covers its main use case well, especially in Terraform. Critics say it is hard to refactor and has grown imperative constructs.

25 people gave an opinion

recommend it
10
criticize it
15
approval share
40%
Each figure is one person. RecommendsCriticizes

Recommended in 6 of 13 months

  1. November 2025: recommended
  2. December 2025: recommended
  3. January 2026: recommended
  4. February 2026: recommended
  5. March 2026: not recommended
  6. April 2026: not recommended
  7. May 2026: recommended
  8. June 2026: not recommended
  9. July 2026: not recommended
  10. August 2026: not recommended
  11. September 2026: not recommended
  12. October 2026: recommended
  13. November 2026: not recommended (month in progress)

Why it doesn’t carry the badge

  • 10 people recommend itNeeds 10 or more, met.
  • 0.6 recommenders for every criticNeeds 2 to 1 or better, not met.
  • Recommended in 6 of 13 monthsNeeds 4 or more, met.

The same three rules apply to every product, and the badge can’t be bought. How the badge works

What people say about it

The reasons people give, with the number of comments that give each one. Open a reason to read what they said.

Why people recommend it

Each mark is one comment

  • Deliberate limits act as guardrails

    “The lack of expressiveness of HCL is the point and what makes it so good”

    Comment from 10 Dec 2025 in “The future of Terraform CDK”

    “You can have conditions and types without having the full flexibility”

    Comment from 9 Dec 2025 in “GitHub Actions has a package manager, and it might be the worst”

    “HCL is simple enough and can have pretty good guardrails on it”

    Comment from 20 Feb 2026 in “Almost Every infrastructure decision I endorse or regret after 4 years”
  • Simple to read and write

    “HCL is simple enough and can have pretty good guardrails on it”

    Comment from 20 Feb 2026 in “Almost Every infrastructure decision I endorse or regret after 4 years”

    “I do find HCL to be simpler.”

    Comment from 27 Feb 2026 in “Show HN: Peekl – A modern alternative to Ansible and Puppet”
  • Good fit for its DSL role

    “HCL solves the problem of unknown values. It's certainly not a "horrible design" unless you're trying to compare it to something that does a different job.”

    Comment from 18 Oct 2026 in “A skeptic's first contact with Kubernetes (2024)”

    “We use it as what it is - a DSL - that covers its main use case in an elegant manner”

    Comment from 18 Nov 2025 in “How when AWS was down, we were not”

What people warn about

Each mark is one comment

  • Poorly designed language

    “It's a half baked idea that became production way too fast.”

    Comment from 24 Aug 2026 in “AI and Infrastructure Engineering”

    “I NEVER liked HCL, it never made sense to me.”

    Comment from 10 May 2026 in “I returned to AWS, and was reminded why I left”

    “rather than the poor pseudo-language of hcl”

    Comment from 11 Dec 2025 in “The future of Terraform CDK”
  • Adds imperative constructs to compensate

    “Yet said language continues to add imperative-inspired constructs to make up for its limitations.”

    Comment from 10 Dec 2025 in “The future of Terraform CDK”

    “HCL 2 has loops and conditionals. It is most definitely imperative.”

    Comment from 5 Dec 2025 in “CSS now has an if() conditional function”
  • Hard to refactor or reuse

    “I always found HCL to be quite terrible, slowly becoming less painful, but not really refactoring-friendly.”

    Comment from 10 Dec 2025 in “The future of Terraform CDK”

    “First-class deep merge support is something that I really miss in hacky configuration languages like HCL”

    Comment from 15 Dec 2025 in “Dagger: Define software delivery workflows and dev environments”

    “DRY is not something HCL is good at.”

    Comment from 10 Dec 2025 in “The future of Terraform CDK”
  • Hard to learn or parse

    “their parser and implementing it was actually a little bit more difficult that doing just raw YAML parsing”

    Comment from 9 Mar 2026 in “Show HN: Peekl – A modern alternative to Ansible and Puppet”

    “I thought that it would be too complex to learn”

    Comment from 24 Feb 2026 in “Show HN: Peekl – A modern alternative to Ansible and Puppet”

Other configuration languages people recommend

The four most recommended other configuration languages, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.

HCL compared with 4 alternatives
ProductRecommendCriticizeApprovalMonthsOwnedBadge
CUE29781%12—Approved
TOML191359%8——
Jsonnet12380%5—Approved
HCLThis page101540%6——
Dhall90100%5——
See all 9 configuration languages, ranked

What people said

25 of the 30 comments that mention it, newest first. Each links to the original comment.

“HCL solves the problem of unknown values. It's certainly not a "horrible design" unless you're trying to compare it to something that does a different job.”

RecommendsComment from 18 Oct 2026 in “A skeptic's first contact with Kubernetes (2024)”

“HCL was a horrible design.”

CriticizesComment from 17 Oct 2026 in “A skeptic's first contact with Kubernetes (2024)”

“We do know how that turned out, but maybe that was more questionable design”

CriticizesComment from 17 Oct 2026 in “A skeptic's first contact with Kubernetes (2024)”

“It's a half baked idea that became production way too fast.”

CriticizesComment from 24 Aug 2026 in “AI and Infrastructure Engineering”

“these horrendous HCL constructs”

CriticizesComment from 24 Aug 2026 in “AI and Infrastructure Engineering”

“I NEVER liked HCL, it never made sense to me.”

CriticizesComment from 10 May 2026 in “I returned to AWS, and was reminded why I left”

“their parser and implementing it was actually a little bit more difficult that doing just raw YAML parsing”

CriticizesComment from 9 Mar 2026 in “Show HN: Peekl – A modern alternative to Ansible and Puppet”

“I do find HCL to be simpler.”

RecommendsComment from 27 Feb 2026 in “Show HN: Peekl – A modern alternative to Ansible and Puppet”

“I thought that it would be too complex to learn”

CriticizesComment from 24 Feb 2026 in “Show HN: Peekl – A modern alternative to Ansible and Puppet”

“HCL is simple enough and can have pretty good guardrails on it”

RecommendsComment from 20 Feb 2026 in “Almost Every infrastructure decision I endorse or regret after 4 years”

“Just write HCL (or JSON, JSONNET etc) in the first place.”

RecommendsComment from 5 Jan 2026 in “Show HN: Terminal UI for AWS”

“First-class deep merge support is something that I really miss in hacky configuration languages like HCL”

CriticizesComment from 15 Dec 2025 in “Dagger: Define software delivery workflows and dev environments”

“HCL/TF feels like a tool that was developed by people who actually wanted to use it”

RecommendsComment from 11 Dec 2025 in “The future of Terraform CDK”

“rather than the poor pseudo-language of hcl”

CriticizesComment from 11 Dec 2025 in “The future of Terraform CDK”

“the garbage HCL with its even more garbage module system”

CriticizesComment from 10 Dec 2025 in “The future of Terraform CDK”

“they don't look great in a declarative language like HCL”

CriticizesComment from 10 Dec 2025 in “The future of Terraform CDK”

“Yet said language continues to add imperative-inspired constructs to make up for its limitations.”

CriticizesComment from 10 Dec 2025 in “The future of Terraform CDK”

“DRY is not something HCL is good at.”

CriticizesComment from 10 Dec 2025 in “The future of Terraform CDK”

“The lack of expressiveness of HCL is the point and what makes it so good”

RecommendsComment from 10 Dec 2025 in “The future of Terraform CDK”

“I always found HCL to be quite terrible, slowly becoming less painful, but not really refactoring-friendly.”

CriticizesComment from 10 Dec 2025 in “The future of Terraform CDK”

“it used HCL which was at that point only really implemented in Go”

MixedComment from 10 Dec 2025 in “GitHub Actions has a package manager, and it might be the worst”

“You can have conditions and types without having the full flexibility”

RecommendsComment from 9 Dec 2025 in “GitHub Actions has a package manager, and it might be the worst”

“HCL 2 has loops and conditionals. It is most definitely imperative.”

CriticizesComment from 5 Dec 2025 in “CSS now has an if() conditional function”

“We use it as what it is - a DSL - that covers its main use case in an elegant manner”

RecommendsComment from 18 Nov 2025 in “How when AWS was down, we were not”

“after my experiences with TF & HCL”

CriticizesComment from 13 Nov 2025 in “Zed is our office”

Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.