The most interesting comment I have read recently about the pattern language movement is the comment that Gang of Four style software patterns are only necessary when the programming system (programming-in-the-large and programming-in-the-small) does not have adequate power or capabilities to directly state the pattern.
(I have lost the reference to who made the comment: any ideas? I think it was made in relation to Scala or LISP.)
So if your language has abstract iterators and supports XML, perhaps there is less need for a separate concept of visitors? Or if you language has object with private members or methods, perhaps there is less need for the concept of a facade. If you language supports generics, is there much so need for the bridge pattern?
I haven't made up my mind, but it is an appealing idea. The message I take home is that perhaps the GoF-style software patterns should be used as a kind of top-down analysis that we can use to judge programming systems: a programming system which has a first-class story for each of the community-acclaimed software patterns is better than one which does not.
Does this open the door for a fairly objective way to test between different programming languages? Rather than saying "That language X has a feature Y that is really neat!" we can say "Language X has a feature Y that is really neat and it supports pattern P". Which is not to say that support for patterns is not the only criterion: but when a language does not have a good story for supporting a particular software pattern, it is extra work and risk if it turns out that that software pattern would be appropriate.
The thought strikes me that this may be a way to explain the popularity of the dynamic languages (and perhaps of jQuery too?) (which the new generation of static languages like Scala are influences by too): do they support the well-known GOF-style software patterns more easily? Do they support patterns like Abstract Pattern simpler?
Now, please, I have not come to bury Software Patterns, but to praise them. The ultimate target for Software Patterns may not be the programmers they were initially design fore, but for programming language designers.