How To Design A Good API and Why it Matters

Today I watched: How To Design A Good API and Why it Matters. Good talk. Favourite quote:

Inheritance violates encapsulation

Oh, and I followed on with: A Brief, Opinionated History of the API wherein (t=28:14) Bloch says it’s an API if you can answer yes to both of these:

  1. Does it provide a set of operations defined by their inputs and outputs?
  2. Does it admit reimplementation without compromising its users?

Knuth on reusable code

Today via Lobsters: APL Style: Patterns/Anti-patterns:

I also must confess to a strong bias against the fashion for
reusable code. To me, “re-editable code” is much, much better
than an untouchable black box or toolkit. I could go on and on
about this. If you’re totally convinced that reusable code is
wonderful, I probably won’t be able to sway you anyway, but
you’ll never convince me that reusable code isn’t mostly a
menace.

— Donald Knuth, Interview with Andrew Binstock