Very useful post I think. Not to depreciate Python the language, but it might be interesting to compare "adding a new statement to Python" with "adding a new statement to Lisp". Especially for people struggling to grasp Lisp's benefits.
I was reminded of this by the post on the goto statement -- having used the AST module recently in a limited capacity[1], I was really impressed by how easy it was to use. There's a good pycon talk for those interested specifically in this part of the process[2], and you can also see the full grammar[3].<p>[1] <a href="http://blueprintforge.com/blog/2012/02/27/static-modification-of-python-with-python-the-ast-module/" rel="nofollow">http://blueprintforge.com/blog/2012/02/27/static-modificatio...</a><p>[2] <a href="http://blip.tv/pycon-us-videos-2009-2010-2011/pycon-2011-what-would-you-do-with-an-ast-4898264" rel="nofollow">http://blip.tv/pycon-us-videos-2009-2010-2011/pycon-2011-wha...</a><p>[3] <a href="http://docs.python.org/library/ast.html#abstract-grammar" rel="nofollow">http://docs.python.org/library/ast.html#abstract-grammar</a>
Here's my original paper on the topic in case folks are interested:<p><a href="http://tomlee.co/wp-content/uploads/2008/12/python-language-internals.pdf" rel="nofollow">http://tomlee.co/wp-content/uploads/2008/12/python-language-...</a>
How well do you know the Sutras?<p>Special cases aren't special enough to break the rules.
...
There should be one-- and preferably only one --obvious way to do it.