Rusty's Interface Simplicity Spectrum

Martin Pool writes yet another excellent blog entry, this time about Rusty on Interface Simplicity. His OLS 2003 keynote had an “interface simplicity spectrum”, which is so good, Martin reproduced it in his blog, and I’m going to reproduce it in mine, for my own reference:

  1. Compiler/linker won’t let you get it wrong.
  2. Compiler will warn if you get it wrong.
  3. The simplest use is the correct one.
  4. The name tells you how to use it.
  5. Do it right or it will break at runtime.
  6. Follow common convention and you’ll get it right.
  7. Read the documentation and you’ll get it right.
  8. Read the implementation and you’ll get it right.
  9. Read the correct mailing list thread and you’ll get it right.
  10. Read the documentation and you’ll get it wrong.
  11. Follow common convention and you’ll get it wrong.
  12. Do it right and it will break at runtime.
  13. The name tells you how not to use it.
  14. The obvious use is wrong.
  15. Compiler will warn if you get it right.
  16. Compiler won’t let you get it right.
  17. It’s impossible to get right.

(Obligatory Haskell plug: a nice one-line summary of the Haskell language is that just using it for your code, puts you at #1 on that spectrum an incredible amount of the time.)

blog comments powered by Disqus