langwhy

About

There are thousands of programming languages, and from the outside it looks like chaos. It is not. Every language was built because something concrete hurt, and once you know the pain, the language makes sense.

Four questions

  1. Born from. The concrete pain that made someone build it: who, when, what was broken.
  2. Trades away. What you pay for its strengths: how it handles memory, types, running and concurrency, and the cost of that choice.
  3. Where it won. Named deployments with a source each, not "used by many companies".
  4. Alive? Status, timeline, links.

Slots and stacks

A language alone makes nothing. A product has slots to fill: browser, server, database, deploy. Each card lists which slots the language can fill and how well, and the slot pages rank the candidates. Where there are numbers, we use them: the same API on the same server, one language at a time, from public benchmarks. Stacks, one pick per slot, come later as a beta.

How the data works

Every card is two files in a public git repository: a YAML file with the facts and a Markdown file with the story. Every claim has a source URL. A card starts as a draft, often written by an AI agent from primary sources, and is marked verified only after a person checked each claim against its source. Drafts are visible but kept out of search engines.

The data is CC0: take it, copy it, build on it. The site code is MIT. Facts about release years, repos and popularity will be imported from PLDB, which is also public domain, and fixes flow back there.

For agents

Read /llms.txt for the index, /llms-full.txt for everything, /api/v1/languages.json for the data, and every card as /lang/<id>.json or /lang/<id>.md. Or clone the repo.

Contribute

Fix a fact, add a source, or write a card: edit the files under data/languages/ and open a pull request. The rules are in data/README.md. Started in October 2026 by Karchi, written with AI agents, verified by people.