The entire history of software engineering is that of the rise in levels of abstraction.

—Grady Booch