Two Hard Things (2009)

(martinfowler.com)

47 points | by mooreds11 hours ago

4 comments

  • EdwardCoffin9 hours ago
    I'm partial to this non-jokey take on two hard things:

    Phil Karlton famously said there are only two hard things in Computer Science: cache invalidation and naming things. I gather many folks suppose "naming things" is about whether to use camel-case or not, or picking specific symbols we use to name things, which is obviously trivial and mundane. But I always assumed Karlton meant the problem of making references work: the task of relating intension (names and ideas) and extension (things designated) in a reliable way, which is also the same topic as cache invalidation when that's about when to stop the association once invalid.

    https://web.archive.org/web/20130805122711/http://lambda-the...

  • lalaithion7 hours ago
    There’s two hard problems in computer science: cacsynchronizing shared access to the same resource.he invalidation, and
  • LeonB7 hours ago
    I find “co-ordinating distributed transactions” to be very hard. Getting any kind of optimum cooperation between self-centred agents is tricky.

    Also — “Jevon’s paradox”. That one is nasty! For example: just about anything we do to decrease use of fossils fuels by some small percent, makes the corresponding process more efficient, more profitable, and thus happen more. That’s a nasty nasty problem. I guess it’s not specific to computer science, but all engineering.

  • tmarice5 hours ago
    Everybody knows the two hard things are timezones and unicode.
    • kreetx1 hour ago
      What's hard about cache invalidation?
    • cryptonector5 hours ago
      Eh, only one hard thing then, because as hard as Unicode is timezones is way harder.