Dijkstra on Abstraction

Love this sentence from Dijkstra (as part of his ACM Turing Lecture on 1972: the Humble Programmer)

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

I couldn’t agree more with him. When modeling we can omit details that are irrelevant from a given point of view but this does not mean that we lose precision! And you, what’s your take?

If you liked this post, you should subscribe to the blog feed or facebook page and follow my thoughts on twitter about software development or web design and social media .

2 Responses to Dijkstra on Abstraction

  1. Antonio Vallecillo says:

    Jordi,
    thanks for the sentence, very nice!

    Related to this sentence I also like very much another by Edward A. Lee (http://ptolemy.berkeley.edu/~eal/) about the need to make choices:

    “More general does not mean Better. Heterogeneity may be better than generality… Useful semantics imply constraints on designers.”

    He refers to the fact that no general purpose language can express all different semantics without becoming a monster, and to the impossibility of covering antagonist semantics (Discrete & continuous; synchronous & asynchronous; …). So choices must be made, which means constraining the possibilities and being more focused (in contrast to being more general and broad).

    In my humble opinion this has a strong impact on expressiveness and semantic precision, which are, together with abstraction, key benefits of the use of DSLs.

    At least, this is my view (but of course, I may be wrong :-)

    Antonio.

  2. jordi says:

    Another great sentence about Abstraction, this time by Grady Booch (in hist talk “The Promise, the limits, the beauty of software”):

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

    (thanks to Elena Planas for sending it to me)

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress
More in modeling, opinion
querydsl
QueryDSL – SQL-like queries for multiple backends

CloudModel
Transforming Very Large Models in the Cloud: a Research Roadmap

ConMLLogoSmallTransparent
Conceptual modelling for the rest of us with ConML

Close