Andrei Alexandrescu: > http://norvig.com/design-patterns/
That's a bit old. This is another old document about this topic, with the Borg pattern too, by another smaller Guru, Alex Martelli: http://www.aleax.it/Python/5ep.html The moral of the story is: in Python about half design patterns "vanish", the other half becomes more flexible, or they change. Python can also be seen as a way to move some design patterns from the idiom-land of the language to the language itself. This has the advantage that such idioms become more natural, syntactic-wise too. Generally you can't remove complexity from a system, you can only move it elsewhere. Python and dynamic languages allow you to move some of such complexity into the language itself, this is often positive, but this may produce a slower interpreter/VM/language. The disadvantage is that you often have to pay such increased flexibility with a lower running speed. And the running speed is *power*, because it allows you to implement (if/where you want) the flexibility you want (but you have to pay an increased program complexity). Later JustInTime compilers come, and they change the situation a bit again (see Psyco, ShedSkin, PyPy JIT, and even http://code.google.com/p/unladen-swallow/ ). Bye, bearophile
