Python is readable
driscoll at cs.wisc.edu
Wed Mar 21 17:22:01 CET 2012
On 01/-10/-28163 01:59 PM, Steve Howell wrote:
> Code shouldn't necessarily follow the example of English prose, but it
> seems that English has had some influence:
> 1 push(stack, item) # Push on the stack the item
> 2 push(item, stack) # Push the item on the stack
> 3 stack.push(item) # On the stack, push the item
> 4 stack item push # On the stack, take the item and push it
> 5 item stack push # Take the item and on the stack, push the
> 6 item push stack # Take the item; push it on the stack.
> The first three ways are the most common ways of arranging the grammar
> in mainstream programming languages, and they are also the three most
> natural ways in English (no pronouns required).
> #1/2 are imperative. #3 is OO.
In my opinion, people who make statements such as "#1/2 are imperative,
#3 is OO" are missing pretty much the entire point of what OO is.
OO is much more about semantics and the way code is structured. The
difference between #1/2 (especially #1, of course) and #3 is
surface-level syntax only.
About the strongest statement you can make along those lines is that #3
will allow you to do dynamic dispatch on the type of 'stack' while #1/2
won't, but even that isn't true of course. For instance, CLOS will let
you write '(push stack item)' (which is the direct analogy in that
language to #1) and do even more powerful dynamic dispatch than what a
language like C++, Java, or Python will let you do.
More information about the Python-list