There are only two hard things in Computer Science: cache
invalidation and naming things.— Phil Karlton
Long a favorite saying of mine, one for which I couldn’t find a
satisfactory URL.
Like many good phrases, it’s had a host of riffs on it. A few of them I feel are worth
adding to the page
There are 2 hard problems in computer science: cache invalidation, naming things, and
off-by-1 errors.
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1.
Guaranteed order of messages 2. Exactly-once delivery
there’s two hard problems in computer science: we only have one joke and it’s not funny.
There are so many variations on the “there are only two hard problems in
computer programming…” joke that I’m starting to suspect that programming
isn’t actually very easy.
Revisions
2009-07-14: original post
2010-12-21: added off-by-one variation (unattributed)
2015-08-14: added distributed tweet
2017-03-30: added proper tweet for off-by-one and mention of Tim Bray’s
source
2017-12-22: added the Phillip Scott Bowden tweet
2021-05-24: added Nat Pryce tweet
Acknowledgements
Leon Bambrick let me know about better sources.