Expessive Design - Slides

Just posted slides for a presentation I gave this week for one of our clients.

It was a very nice session where we talked about the hard work that is introducing such ideas in a corporate environment as those are finally reaching mainstream.

Notice that in this presentation I use the term “Idiomatic Java” to refer to the first style but I’m really looking for a better name for that. Domain-Driven Design can (should!) be idiomatic Java (or any other language) as well so this is misleading.

6 Responses to “Expessive Design - Slides”


  1. 1 Rafael Peixoto de Azevedo Mar 13th, 2009 at 12:48 am

    I promptly understood the term “Idiomatic Java” to refer to techniques with excessive focus on the Java language syntax itself, which is detrimental to expressing the domain concepts.

    In that sense, in my reading, the term didn’t add noise to your presentation.

    I think what might be missing in the term is the crucial distinction between business idioms and Java or object oriented idioms. This would clearly separate semantics from syntax, purpose from tools and value from noise.

  2. 2 Tim High Mar 13th, 2009 at 3:23 am

    API-Driven Design?
    Inexpressive Design?
    Literal Java?
    Java-Driven Java?

    I’m sure I can come up with something better than that…

    To some degree, this reminds me of the difference between what is considered “bad” inline comments and “good” inline comments. One describes what you are doing, while the other describes why. And so, “Expressive Design” eliminates the need for even the latter category.

    It’s also a bit of the hunt n’ peck style of Java: Ok, how do I do this? Now, what’s the next command I need? Now how do I create an attachment? Looks like the developer is trying to figure it out as they go along, like they’re reading it out of a Java-in-21-days book. If I were a driving instructor, I’d tell them to “Aim high in steering”.

  3. 3 Tim High Mar 13th, 2009 at 3:28 am

    Still thinking… I would propose “Procedural”, since it’s about the procedure, or the steps involved in getting the job done (again, about the “how”). But we know that can also be misleading in an OO language. “Functional” would be a parallel, but with the same problems. How about “Operational Java”?

  4. 4 Rodrigo Yoshima Mar 22nd, 2009 at 3:30 am

    Nice Presentation…

    I agree. IMHO, “Standard Procedural” is a better choice for “Idiomatic Java”.

  5. 5 Sam Aaron Jun 13th, 2009 at 12:22 am

    Nice slides :-)

    I would also argue that for both types of DSLs, language isn’t a tool for modelling the domain, rather it is a tool for communicating it. For me, this is one of the fundamental differences between DSLs and APIs; the intention is communication of functionality rather than the definition and modelling of it.

  1. 1 Tag Clouds: See How Noisy Your Code Is at Fragmental.tw Pingback on Apr 29th, 2009 at 5:13 pm

Leave a Reply








Creative Commons License

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.