4 ms·
> Design patterns — in the boilerplate template sense, though not the underlying concept — are a language smell, Underrated comment. In C++/Java, one must turn
by TimTheTinker 5y ago
> Design patterns — in the boilerplate template sense, though not the underlying concept — are a language smell,
Underrated comment. In C++/Java, one must turn to GoF patterns to accomplish much of what's supported using basic syntax in many other languages (e.g. first-class functions, extensible objects, coroutines, prototypes, flexible parameter types, functional composition).
When it was published, Design Patterns must have seemed sad (or perhaps vindicating) from the perspective of a seasoned Lisp developer.
- dave_sid 5y agoI think this starts to boil down to those who like OO and those whose don’t.
- dragonwriter 5y ago> I think this starts to boil down to those who like OO and those whose don’t. I don't think so; there are OO languages where many of the GoF patterns can be implemented in libraries, or are trivial given language builtins.
- TimTheTinker 5y agoReal OO looks almost nothing like C++/Java. If you listen to one of the fathers of OO, like Alan Kay, talk about these languages, they'll say as much. C++-style indirection, I'd argue, is the invention of Bjarne Stroustrop. He's a very smart guy, but for C++ I think that's an unfortunate thing, because he didn't come to programming language design with a desire for elegance or simplicity. Smalltalk probably best embodies true OO principles, and it has a profound elegance and simplicity about it. (And yes, many GoF patterns are easy to use without even realizing one is using them -- first-class functions and message passing/late binding make sure of that.)