May 16, 2026

No infinite loops, infinite side-eye

Charity – Categorical programming language (1998)

A 1998 coding dream promised every program would end, and commenters instantly smelled trouble

TLDR: Charity was a 1998 academic programming language that bragged every program would always finish, a bold promise meant to make software cleaner and easier to reason about. The community’s reaction was basically one sarcastic eyebrow raise, with commenters joking that this neat trick comes with serious limits.

An archived 1998 Charity page looks, at first glance, like a very earnest blast from academic-computer-science past: a programming language from the University of Calgary promising a pure, elegant way to build software, with a huge flex hidden in plain sight — every computation terminates. In normal-person terms, that means programs written in it are supposed to always finish instead of spinning forever. And that one line is exactly where the community pounced.

The loudest reaction wasn’t awe, it was a dry, nerdy mic drop. Commenter dlahoda took Charity’s big promise and turned it into a one-liner roast: if every program always finishes, then congratulations, you’ve escaped the usual anything-goes chaos of modern coding and landed in a much more restricted world. It’s less “this will change everything” and more “wow, so the computer has training wheels now,” which is the vibe people instantly latched onto.

That’s the drama here: Charity presents itself as beautifully clean, teachable, and mathematically tidy, while the comment mood is skeptical, amused, and just a little savage. The humor is all in the understatement — one short comment effectively saying, “Cool story, but there’s a catch.” For a dusty old language homepage, that’s surprisingly juicy: a grand promise, one devastating comeback, and an entire mood of 1990s academic ambition meets internet side-eye.

Key Points

  • The archived page describes Charity as a categorical programming language being developed by The Charity Development Group at the University of Calgary in Canada.
  • Charity is presented as a functional-style language intended to be accessible to programmers familiar with declarative paradigms such as functional and logic programming.
  • The language is based on strong categorical datatypes, divided into inductive and coinductive datatypes.
  • Programs in Charity are expressed using folds (catamorphisms) for inductive datatypes and unfolds (anamorphisms) for coinductive datatypes.
  • The page lists Charity’s features as purity, lazy evaluation, higher-order functions, and termination of all computations up to user input.

Hottest takes

"All Charity computations terminate" — dlahoda
"Turing decidable" — dlahoda
"it was" — dlahoda
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.