Execution in the Kingdom of Nouns
It reads as a fairy tale — Evil King Java, a kingdom where verbs are serfs — but it's a precise complaint about a real language design. Yegge's target is Java's rule that every function must be a method owned by some class, which turns simple actions into ceremony: a noun for every verb, and a call to execute() to make anything actually happen.
The thesis
Yegge starts from something obvious — that human thought runs on verbs. "Our freedom comes precisely from our ability to do things," he writes; nouns are just the things the actions happen to. Then he asks the loaded question the whole essay hangs on: wouldn't it be strange if we suddenly decided we could no longer use verbs? The story is his answer — a place that did exactly that.
"In the Kingdom of Javaland, where King Java rules with a silicon fist, people aren't allowed to think the way you and I do. In Javaland, you see, nouns are very important, by order of the King himself."— Execution in the Kingdom of Nouns
The fable — nouns vs. verbs
In Javaland the nouns are the aristocracy, the adjectives are relieved not to have been born verbs, and the verbs are the working underclass. This is Yegge's dramatization of the plain fact that in Java a function cannot exist on its own — it must be a method belonging to a class.
"In Javaland, by King Java's royal decree, Verbs are owned by Nouns. But they're not mere pets; no, Verbs in Javaland perform all the chores and manual labor in the entire kingdom. They are, in effect, the kingdom's slaves, or at very least the serfs and indentured servants."— Execution in the Kingdom of Nouns
The running gag is that a verb is never allowed out in public on its own. Every action needs a noun to chaperone it — and since "escort" is itself a verb, you first need a VerbEscorter to do the escorting, which needs a Facilitator, and so on, all the way down.
"Verbs in Javaland are responsible for all the work, but as they are held in contempt by all, no Verb is ever permitted to wander about freely. If a Verb is to be seen in public at all, it must be escorted at all times by a Noun."— Execution in the Kingdom of Nouns
And so one verb ends up doing all the work for everybody — execute() — because any action can be smuggled in by wrapping it in a noun whose sole job is to be executed. This is the joke that gives the essay its title, and Yegge stacks the examples up until they collapse under their own ceremony:
"Need to wait? Waiter.execute(). Brush your teeth? ToothBrusher(myTeeth).go(). Take out the garbage? TrashDisposalPlanExecutor.doIt(). No Verb is safe; all can be replaced by a Noun on the run."— Execution in the Kingdom of Nouns
The real point about OOP
Once the story lands, Yegge drops the costume and states the actual argument. His objection isn't to objects — it's to the coronation of them. Java elevates one part of speech above all the others for no reason grounded in how people actually think, and forces every idea, even an action, to be reshaped into a thing before the language will let you hold it.
"As my friend Jacob Gabrielson once put it, advocating Object-Oriented Programming is like advocating Pants-Oriented Clothing."— Execution in the Kingdom of Nouns
"Classes are really the only modeling tool Java provides you. So whenever a new idea occurs to you, you have to sculpt it or wrap it or smash at it until it becomes a thing, even if it began life as an action, a process, or any other non-“thing” concept."— Execution in the Kingdom of Nouns
He's careful to say this isn't type systems in general — C++ has verbs, C has verbs, even statically-typed Haskell and ML have first-class functions. Java's noun-centrism is a self-imposed and, to Yegge, oddly stubborn choice: "eliminating standalone verbs seems a step beyond all rationale or reason."
Why it still matters — Yegge's own leanings
The essay is a period piece — 2006, pre-lambda Java, when wrapping a function meant a Runnable or an anonymous inner class — but the shape of the complaint is Yegge's whole language sensibility, and it explains where his taste points. In the fable, the languages he admires live "on the other side of the world" as the Functional Kingdoms: Haskellia, Ocamlica, Schemeria, and beyond them the fabled realm of Lambda the Ultimate where "there are no nouns there, only verbs." His practical fix is mundane by comparison: just let functions be first-class.
"I've really come around to what Perl folks were telling me 8 or 9 years ago: “Dude, not everything is an object.”"— Execution in the Kingdom of Nouns
This is the through-line to the rest of Yegge's writing: the Python/Perl/JavaScript pragmatism, the fondness for dynamic and functional languages, the impatience with ceremony for its own sake. He closes not with a manifesto but with a shrug — which is exactly why the piece has aged into a classic rather than a screed.
"I sure hope they fix this, so I can take the trash out and get back to my video game. Or whatever I was doing."— Execution in the Kingdom of Nouns
Java did, eventually, add lambdas (Java 8, 2014) and method references — the language grew the verbs Yegge wanted. But the noun-first instinct he named never fully left enterprise codebases, which is why "the Kingdom of Nouns" is still shorthand, twenty years on, for any design that wraps an action in a ManagerFactoryStrategy when a plain function would do.