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
former.
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.
Evan
--
http://mail.python.org/mailman/listinfo/python-list