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.

-- Leon Bambrick

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery

-- Mathias Verraes

there's two hard problems in computer science: we only have one joke and it's not funny.

-- Phillip Scott Bowden

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


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


Leon Bambrick let me know about better sources.