The Law of Leaky Abstractions

Tags: abstractions complexity

The Law of Leaky Abstractions [1] states that "all non-trivial abstractions, to some degree, are leaky".

An abstraction is said to "leak" when it reveals some of its underlying implementation details. This most often happens when something breaks down or goes wrong, but an abstraction can leak simply due to bad design as well.

Because all abstractions leak to some degree, it is worth understanding the complexity behind the abstraction in certain cases, particularly when understanding that complexity can give you a competitive advantage over your peers or competitors who haven't put in the time and effort to learn.


  1. Joel on Software. “The Law of Leaky Abstractions,” November 11, 2002.