On Mar 21, 9:22 am, Evan Driscoll <drisc...@cs.wisc.edu> wrote: > 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. >
In the grand scheme of things, of course code structure and semantics are more important the surface-level syntax. If you take it as a given that structure/semantics are sound (big assumption, I know), then the next issue with regards to "readability" is the syntax itself. -- http://mail.python.org/mailman/listinfo/python-list