Powerful Pythonic Patterns (#186)
Powerful Pythonic Patterns video
Presented by Alex Martelli
An extremely misguided meme is going around: that Python doesn't have, or need, any Design Patterns. Maybe the meme springs from not realizing what the Gang Of Four state so plainly in their historical "Design Patterns" book: which design patterns are useful DOES depend on the programming language one targets -- design is NOT independent of implementation, as the epic-fail "Waterfall" Methodology Pattern would suggest. If you examine a "classic DP" that's basically a workaround for some other language's lack of garbage collection, or for a clumsy static-typing system, it may indeed be worthless for Python. But many other DPs are still perfectly useful and applicable, and indeed Python's strengths as a language afford riffing on them to develop highly Pythonic, powerful, productive variants.
In this talk, I analyze some of my favorite pattern families -- e.g., Template Method and its variants, Dependency Injection and its ilk, Callback and friends -- in a highly Pythonic context. Non-pattern Idioms, and Patterns that aren't really Design Patterns but rather Architecture or Methodology ones, also make cameo appearances.