Moreover, different problems require different abstractions — which means there’s not going to be one single abstraction to address all your needs.

We are all good at reasoning at a high level of abstraction, and moreover, the higher the abstraction, the better we are at reasoning about it

what level of abstraction

We should not be building programs at the level of manipulating "raw data" any more than we should be designing cities at the level of the grains of sand and glue that make the concrete. Cities are human systems, not piles of concrete, and we analyze the performance of cities at the level of those systems. Programs are the same. We're building abstract systems, and we need to analyze their merits as complex systems.

Referenced in:

All notes