On Sun, 10 Dec 2006 03:18:07 -0500, Bill Atkins wrote: > We're not counting lines here, you goon. We're talking about how > expressive constructs are and how closely they match your concept of > what you want to do. The conditional example is lower-level; you're > talking to the interpreter instead of saying what you want to achieve. > You're having to repeat things because that's what the language asks > of you, instead of describing in a higher-level way what you're > actually doing.
To be a little provocative, I wonder if the idea that you're "talking to the interpreter" doesn't apply more to lisp than to python; you can have any syntax you like, as long as it looks like an AST. One of the things I've always found off-putting about lisp as that all the syntax looks the same. In Algol-derived languages, each syntactic construct has a fairly distinctive appearance, so when, for instance, I encounter a for loop, I can quickly recognize that that's what it is, and bracket out the "scaffolding" and pick out the details that interest me. With lisp, I can't do that, I have to read through the sexp, decide on what syntax it is, and then remind myself where to look for the relevant specific details. Now, this might well be just due to my comparative lack of familiarity with lisp; I'd be interested to hear if you lisp people find different lisp constructs as visually distinctive as constructs in python (or other similar languages). But I think what people are getting at when they complain about "all the brackets" in lisp may actually be this issue of a visual distinction between different constructs (this is also a reason why having a limited number of syntactic constructs can be helpful - there are a probably a limited number of stereotypical layouts a programmer can keep in their mind at once). -- http://mail.python.org/mailman/listinfo/python-list