leaky abstraction

expression

programmingweb dev

An abstraction that is supposed to hide complexity but lets details of what is underneath show through.

TCP promises reliable delivery, but a cut cable still surfaces as a hang; an ORM hides SQL until a slow query forces you to think in SQL again. Joel Spolsky's 'law' is that all non-trivial abstractions leak to some degree, so you can never fully stop understanding the layer below.

Also known as: law of leaky abstractions

Sources

  • Spolsky, 'The Law of Leaky Abstractions' (2002)

All glossary entries