CONCEPT
Dijkstrian Abstraction
Abstraction as
Dijkstra meant it: the suppression of irrelevant detail
for the purpose of selective attention — a window, not a wall. The detail suppressed must remain inspectable when needed.
Abstraction was, for Dijkstra, the most powerful intellectual tool available to the programmer and the most dangerous. Its power lay in the capacity to suppress irrelevant detail so that the mind could focus on essential structure. Its danger lay in the fact that suppressed detail does not cease to exist — it becomes invisible, and invisible detail in a system of sufficient complexity will eventually produce consequences no one anticipated. The distinction Dijkstra drew repeatedly was
between abstractions that function as
windows — the programmer can see through them when necessary — and abstractions that function as
walls — the underlying detail is not merely suppressed but sealed off. A well-designed abstraction enables selective attention; a poorly designed one enforces ignorance. The history of computing is in one reading the slow, largely unremarked drift from windows toward walls.
In The You On AI Field Guide
Every layer in the computing stack is an abstraction. Assembly language abstracts over binary codes. High-level languages abstract over assembly.