quick overview: christopher alexander GoF GoF focuses on bringing C++ to the level of Perl allusion to mjd's "Design Patterns Aren't" (which led rjbs to read Alexander and really really like it) the point of Alexander was to come up with new vocabularies, not to be limited to one catalog of patterns patterns are languages for higher-level discussions about our code patterns: thinks that work, design alternatives anti-patterns: common problems to avoid, stuff that waste time and energy micro-scale patterns: error checking coding style data structures -> well written code is easy to read macro-scale patterns external dependencies project structure team structure patterns are just vocabulary consider that your patterns may only be valid for your project (that's ok) idiomatic perl idioms are low-level patterns choosing an appropriate idiom always saves time and effort e.g.: compare "open ... or die;" to required code in C remember: "Once you learn to program in FORTRAN you can program in FORTRAN in any language." in-depth discussion of many idioms followed when discussing templates, a fourteen minute argument with the audience ensued. templates considered harmful (missed second half)