A book about architecture can talk about "alcoves" and expect that the majority of readers will understand what is being talked about.
And what about "Wings of Light"? Will the majority of readers know what is meant by "Wings of Light"? What exactly is a "Cascade of Roofs"? There is a reason why I put seven examples on that slide, not one.
If it were as simple as you seem to think, Alexander would not have needed to write a book about it. He would just have printed up a list of 253 patterns and left it at that. The book is there to explain the patterns.
I think his complaint about iterators is misguided. The Iterator pattern is more general then ForEach.
Yes, I wasn't able to make the point as well as I wanted to there. That is one of the drawbacks of a five-minute talk. My real point is that many of these so-called 'patterns'---and the problems that they are intended to solve---actually result from defects in the source language. You may need an 'iterator' pattern in C++, but you need it much less in Perl, and hardly at all in Common Lisp. If you replace 'collection classes' with polymorphic arrays, you don't need 'iterator' objects because the state encapsulated by such an object is essentially a single integer.
Many of the 'patterns' in the GoF book aren't patterns of 'object oriented design' so much as patterns of working around defective languages. That's my thesis, anyway.
It seems a shame to spend so much time and effort in creating and studying a new field whose only purpose is to work around the defects of the awful programming languages we use. It would be a better use of time and effort to throw away C++; design patterns might still be a useful concept, but the patterns themselves could be a lot more powerful and sophisticated if we weren't always struggling with type systems and control structures that were thirty years behind the state of the art.
For more information about this, you may want to see [link|http://www.norvig.com/design-patterns/|Design Patterns in Dynamic Programming] by Peter Norvig. Says Norvig: "16 of 23 patterns have qualitatively simpler implementation in Lisp or Dylan than in C++...16 of 23 patterns are invisible or simpler." By 'invisible' Norvig means a feature that is "so much a part of [the] language that you don't notice [it]." As an example, he points out that C programmers have a pattern that might be called "encapsulated class". C++ doesn't have this pattern because when you want it, you just use the class keyword; the pattern has become invisible.
I'm also irritated at how the author of the presentation seems to have gone out of his was to be offensive.
You need to remember that the slides were not designed for consumption on the web; they were intended to accompany a five-minute talk that was given once. You are no doubt familiar with the idea that communications that might be polite or humorous in person become offensive or comfrontational in email. I think the same thing is happening here. What you perceive as offensive was intended, in the context of a five-minute talk at a Perl conference, to be irreverent and humorous, and I believe that it succeeded in that.
The only solution I can think of to this problem is to remove the slides from my web site. It's possible that this is the best thing to do.