STEVEY // FIELD MAP
← field map
THE RANTS~2004

Tour de Babel

Steve Yegge · ~2004 · from the Amazon-internal blog
TL;DR — A fast, loud march through the languages an Amazon engineer runs into, ranked by how much Yegge respects them. He reveres C (the syntax of the machine itself), loves Lisp and Ruby (languages that know themselves), tolerates Java and Perl (great outcomes, ugly means), roasts C++ (his real contempt), and laments Python (so close, undone by two flaws). The through-line: he prizes languages you can think fast in and that can reason about themselves.

"Tour de Babel" is Yegge in his native habitat: an internal blog post that turned into a rant, working through one language after another with almost no throat-clearing. It's a taste manifesto disguised as a survey — and the ranking tells you more about Yegge than about the languages.

The setup — a tour, with attitude

The organizing trick is a pair of poles. C sits at one end because it's the closest thing to how the machine actually works; Lisp sits at the other because it's the closest thing to how computation works. Every other language gets measured against that spread — closeness to the metal on one side, expressive power on the other — and Yegge's affection tracks how well a language earns its place between them.

The ones he loves

C isn't optional in Yegge's world. It's the base layer, the thing every serious programmer has to speak because it's a thin, honest wrapper over the hardware.

"You just have to know C. Why? Because for all practical purposes, every computer in the world you'll ever use is a von Neumann machine, and C is a lightweight, expressive syntax for the von Neumann machine's capabilities."Tour de Babel, on C

Lisp is the other pole, and it's where Yegge's reverence is loudest — the language built on the lambda calculus rather than the machine, and (not coincidentally) the language that powers the Emacs he'll evangelize forever.

"If C is the closest language to modeling how computers work, Lisp is the closest to modeling how computation works."Tour de Babel, on Lisp

Ruby is the surprise crush. Yegge — a Perl veteran of eight years — describes falling for Ruby almost instantly, ranking it at the very top of his running bicycle metaphor (a "$7,500 titanium mountain bike" next to Perl's ordinary one).

"I learned Ruby faster than any other language."Tour de Babel, on Ruby

The ones he tolerates

Java is the essay's most quoted line, and it's pure ambivalence: Yegge grants that Java rescued the industry from C++'s footguns while insisting the language itself is the weakest part of the whole platform.

"Java is simultaneously the best and the worst thing that has happened to computing in the past 10 years."Tour de Babel, on Java

Perl earns a grudging respect. Yegge rolls his eyes at the hype — he flatly credits Larry Wall with having "the best marketing in the world" — but he won't deny that Perl gets you to the finish line, and for him that's the thing that counts.

"You can get stuff done really fast in Perl, which is what really matters, in the end."Tour de Babel, on Perl

The ones he roasts

C++ is where the tour turns from ranking to genuine contempt. Yegge's core charge is that C++ can't examine itself at runtime — no introspection, no reflection — and to him a language that can't reason about its own objects is, quite literally, dumb.

"C++ is the dumbest language on earth, in the very real sense of being the least sentient."Tour de Babel, on C++

Python gets a softer roast — this one's a lament, not a takedown. Yegge clearly likes Python; his complaint is that it was this close to winning and got tripped by two things it couldn't shake.

"Python would have taken over the world, but it has two fatal flaws: the whitespace thing, and the permafrost thing."Tour de Babel, on Python

What it reveals about Yegge's taste

Line the verdicts up and one axis runs through all of them: Yegge loves languages that know themselves. Lisp and Ruby win because they're introspective and malleable — you can reach in and reshape them. C++ loses on exactly that ground; his sharpest insult ("least sentient") is a complaint about self-awareness, not syntax.

The second thread is speed of thought over purity. Perl is ugly and he knows it, but it ships, so it stays. Java is the reverse — clean platform, joyless language — and that trade-off nags at him. What he can't forgive is a language that makes you dumber to use it.

Read now, the tour is a preview of the whole Stevey canon: the Lisp-and-Emacs devotion, the dynamic-languages advocacy, the impatience with ceremony, and the habit of judging tools by how much room they leave for a smart programmer to be smart. The rant is early, but the taste is already fully formed.

Field-map note: this is Yegge's classic era — the Amazon-internal rants that made his name before the public "Stevey's Blog Rants" run. The introspection-and-expressiveness values he swings around here quietly power the arguments in everything he writes later.