Monday, May 14, 2007

Collateral damage caused by incidental limitations

Arto Bendiken | The Road to Enlightenment Is Littered with Irritating, Superfluous Parentheses:
"Python truly sold me on the benefits of dynamically-typed languages and rapid prototyping. I began to see that many of the sacred GoF design patterns were not, in actuality, grand universal truths of software engineering, but simply collateral damage caused by incidental limitations in the abstractive power and object model of certain manifestly-typed programming languages."
This is pretty much the way I feel about it too. I had spent a good year of someone else's money learning UML and design patterns, and it ends up that the only pattern that is remotely useful with dynamic languages is the observer pattern. All others have fallen away because the problem they solved were no longer problems in dynamically typed languages.

That said, I think that the majority of us come from imperative backgrounds of C++ and Java, and it's probably no way to judge static-typeness. Modern static-typed languages such as Haskell and OCaml probably has more tricks up their sleeves.


  1. Hi Wilhelm,

    Indeed! That's why I tend to try and use the slightly more cumbersome term "manifestly-typed", just so that the Haskell aficionados don't (rightly) slaughter me for grouping Hindley-Milner languages with imperative statically-typed languages like the C++ derivatives... ;-)

  2. There's a good post that seems to have a lot of blogs pointing to it about this topic.

    Huh, I've never heard of the term manifestly-typed, though I'm looking it up now. Thanks for the heads up!