Hacker News new | ask | show | jobs
by ereyes01 2631 days ago
I disagree with this rationale, but I'll let someone smarter than me make the argument:

"The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise." - Edsger Djikstra

Or said another way, a good abstraction automates a precise set of tasks instead of adding ambiguity.

1 comments

I'm not sure that's the argument you want to use it as. Dijkstra is surely not arguing that abstraction should not lose information (that would actually not be abstraction at all); he is saying that the important thing about it is that it "finds" the pertinent information (i.e. by throwing away the irrelevant details). He's not redefining the term as something incompatible with its usual meaning, but proposing a perspective, taking the information loss as a given.
I think the name "abstraction" is unfortunate in Dijkstra's sense. The notion of abstraction he's talking about is not about the process of going from less to more abstract. The abstraction is the more abstract. In fact, ignoring the path by which we arrived at the abstraction, it has absolutely no intrinsic relation to the original, more real, less abstract model.

Maybe we're just trying to say the same thing here.