April 12, 2026
Perfectable or perfectly extra?
A Perfectable Programming Language
Lean fans call it “perfectable” — skeptics grumble about weird caps and black‑box math
TLDR: The author crowns Lean as “perfectable” for mixing proofs and custom syntax, even demoing a tic‑tac‑toe board that compiles. Comments erupted over the odd capitalization and a deeper split: fans see Lean as the future, while critics say baked‑in “black‑box” math undercuts the claim, nudging purists toward Agda.
A party dare to name 40 programming languages spiraled into a love letter to Lean — the tool the author calls “perfectable”: not perfect yet, but improvable because it can reason about code inside the code itself. He flexes Lean’s two superpowers in plain view: proof‑style types (so the program can check your claims) and custom, readable mini‑languages (he even whips up tic‑tac‑toe boards that compile!). If that sounds like a lot, it is — but the comments turned it into a whole soap opera.
First blast: stylistic drama. One reader side‑eyed the author’s weird capitalization, calling it a Bay Area tech flex and saying it was “uncomfortable to read.” Cue the copy‑editing police vs. the “let people vibe” crowd. Meanwhile, a different corner cheered the site’s slick hover‑for‑docs feature — rare on blogs and genuinely helpful for curious newcomers. Another dropped a handy OCaml‑to‑Lean log to onboard the skeptics.
Then came the big fight: Is Lean really “perfectable”? One fan gushed that Lean 4 is best‑in‑class, but a critic warned the magic is undercut by “non‑constructive” math rules baked into the standard library — think handy shortcuts the computer can’t fully check. The thread split between pragmatic fans (future Haskell replacement?) and purists who prefer Agda for rigorous math. And yes, someone casually rattled off dozens of languages like a resume on speed — because of course they did.
Key Points
- •The article argues Lean is “perfectable” because it can express and prove properties about code within the language using dependent types.
- •A simple function example shows Lean can formally prove behavior (e.g., returning 5), unlike most languages that can’t leverage such facts directly.
- •It highlights an industry trend toward richer type systems and compile-time computation (PHP 7.4 types, Python annotations, TypeScript, C++ templates, Rust constification).
- •Dependently typed languages can serve as theorem provers, provided they develop robust theorem-proving infrastructure for reasoning about type equalities.
- •Lean’s metaprogramming and custom syntax are presented as seamless, illustrated by a compile-time tic‑tac‑toe board DSL that validates input during elaboration.