Two Hard Things
14 July 2009
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.
-- Nat Pryce
The first place anyone found it on the internet was in Tim Bray's blog. Tim said that he first heard it around 1996-7
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