3 ms·
Ok. The original joke is — ~~~~~~~~~~ There are only two hard things in Computer Science: cache invalidation and naming things. ~~~~~~~~~~ Let’s analyse how
by LeonB 2y ago
Ok. The original joke is —
~~~~~~~~~~
There are only two hard things in Computer Science: cache invalidation and naming things.
~~~~~~~~~~
Let’s analyse how the joke words.
A quick warning though -
Explaining a joke is like dissecting a frog. You understand it better but the frog dies in the process.
- E.B. White
First the Setup —
“There are only two hard things in Computer Science:“
We’ve established there are two things and they are hard, and they belong to computer science. This immediately begins to establish an expectation of technically difficult topics.
“Cache invalidation” is the first example and this is a pair of words that look technical and difficult, even if you don’t know what they are.
This completely reinforces the expectation that the next thing will be even more bewildering.
Punchline:
“And naming things.”
In the third part of the joke - we subvert expectations. “Naming things” is a very down to earth concept, anyone can immediately understand. And anyone can readily appreciate the truthiness — naming things is hard.
This subverted expectation is what makes it a joke.
If the two things were listed in the opposite order, it would still be true and still be insightful - but it wouldn’t be a joke.
The popular addition:
“And off-by-one errors” works even though it is “putting a hat on a hat” because the very first expectation was
“Two things”
… and now we’ve subverted that expectation. And in a paradoxical manner we’ve retained the truthiness present in the first two examples.
So the short answer is - don’t start with the punchline.