Support unavailable
Please try again later

Permission or Forgiveness?

by Alex Martelli for EuroPython 2012

Grace Murray Hopper’s famous motto, “It’s easier to ask forgiveness than permission”, has many useful applications – in Python, in concurrency, in networking, as well of course as in real life. However, it’s not universally valid. This talk explores both useful and damaging applications of this principle.

I start by introducing the motto “It’s easier to ask forgiveness than permission” and the woman who used it, Rear Admiral Grace Murray Hopper, also known as the “mother of Cobol” and the author of the first ever programming-language compiler.

I then move on to the Python context, where the motto supports the proper usage of exception-catching rather than preliminary checks; and the “rule that proves the exception” introduced by abstract base classes.

Expanding the subject, I show how “optimistic concurrency” applies that motto (while locking would “ask permission”, in essence, STM “asks forgiveness"), and how collision-detection focused networking protocols have similarly triumphed over more highly structured, “ask permission” ones like token-ring.

Moving to the fuzzier context of real life, I then show how this daring approach does not work quite as well as in the technical realm – except when applied correctly, in the right circumstances… and I try to evince a general law describing what the right circumstances for its application are, comparing and contrasting with the similar issue of “do it right the first time” versus “launch and iterate” (and the latter’s cognate “fail, but fail fast” principle).



  1. Gravatar
    Could you post the link to the slides please. Thx
  2. Gravatar
  3. Gravatar

    I'm only seeing the video of the Recruiting session, but
    not Alex' talk. Is this intended?
  4. Gravatar
    It was a pasto, now fixed with the correct video.

New comment

60 minutes (inc Q&A)

Tagged as

design architecture principles
Our Sponsors
Python Experts
SSL Matrix
Wanna sponsor?