A Catalogue of Weaknesses in Python

You may have read somewhere that "Patterns are signs of weakness in programming languages", and perhaps even that "16 of 23 [GoF] patterns are either invisible or simpler [in Lisp]", from which  some conclude that dynamic languages don't have/need patterns, or some such.

Interesting, then, that a recent Google dev day presentation (pdf, video) provides us with a list of terrible weaknesses great patterns in Python.

2 comments:

Adam Shimali said...

They may be simpler or invisible in Lisp for all I know (I'll take Peter Norvig's word for it). But I find strange when some followers of some languages claim the same with no apparent basis. Given the Smalltalk background of some of the GOF and the fact that the book includes examples in Smalltalk, does that mean Smalltalk is broken? Surely all languages have patterns or some sort of expressive idioms?

keithb said...

Norvig is absolutely right about the 16. Lazy commentators who've wildly over-interpreted his result, less so.

Design patterns occur in the praxis of all programming language use communities. In fact, all communities who build anything. Or do much of anything else together—no surprise, as patterns are primarily a social and not a technical phenomenon.

Dick Gabriel made the point well (also no surprise) in this comp.lang.lisp posting:

If there are no such things as patterns in the Lisp world, then there are no statements a master programmer can give as advice for junior programmers, and hence there is no difference at all between an beginning programmer and a master programmer in the Lisp world.