Abstraction¶
Good abstractions capture essential properties while hiding accidental complexity, allowing reasoning about systems at appropriate levels of detail
Tension Addressed¶
Depth vs. Breadth
Recognizable As¶
Interfaces that hide implementation; mental models that ignore irrelevant detail; APIs that survive implementation rewrites; concepts that transfer across technologies; "leaky abstractions" as failure modes
Canonical Sources¶
Liskov, "Data Abstraction and Hierarchy" (1988); Spolsky, "The Law of Leaky Abstractions" (2002)
Transfers To¶
Mathematics (abstraction hierarchy), Science (models), Maps (cartographic abstraction), Language (word definitions)
All non-trivial abstractions are leaky to some degree (Spolsky's Law). The goal is appropriate leakiness - hiding what should be hidden while not creating surprises.