Skip to content
TopicTracker
From HackerNewsView original
TranslationTranslation

The Law of Leaky Abstractions (2002)

Joel Spolsky's "Law of Leaky Abstractions" states that all non-trivial abstractions are imperfect, leaking details of the underlying implementation. He argues developers must understand lower-level systems behind high-level abstractions like TCP/IP, SQL, and memory management to handle real-world software complexity.

Background

Joel Spolsky (also co-founder of Stack Overflow and Trello) introduced this influential software engineering concept in 2002. The "Law of Leaky Abstractions" states that all non-trivial abstractions (like a programming language, an operating system, or a web framework) are imperfect — they hide complexity but eventually "leak" that complexity when something goes wrong. For example, TCP/IP makes internet connections look reliable, but when a packet drops, the programmer still has to deal with the underlying network failure. The takeaway: you can't fully rely on abstractions; you still need to understand what's happening underneath. This essay is a foundational text in software engineering and is frequently cited in discussions about complexity, architecture, and developer tools.

Related stories