An abstraction leaks when details it was meant to hide break through its surface: the network timeout behind a “simple” file read, the spinning wheel behind a word processor. Joel Spolsky’s “law of leaky abstractions” (2002) says every non-trivial abstraction does this to some degree. A leak is the programmer’s version of Heidegger’s broken hammer: the tool suddenly becomes an object.

Discussed in

Spolsky, Joel. 2002. “The Law of Leaky Abstractions.” Joel on Software (blog).