On Mon, 05 Jan 2009 13:21:09 -0600, Derek Martin wrote: > Some of the comments from people include the idea that the assignment > model is nothing special, if you've encountered any one of a dozen other > languages. I didn't realize programming in any of those languages was a > prerequisite for posting questions here, or for programming with Python.
It's not. But the tone of your argument suggests you think that matching the named bins assignment model of the 1970s should be a prerequisite for all new programming languages. There are, in general, four types of programmers new to Python. In no particular order: (1) People with no programming experience at all. They won't have any problems with Python's assignment model because they have no preconceived ideas about how assignment should work. (2) People who are used to name binding in Ruby, Java, etc. and so will find Python's assignment model more or less identical. (3) Those who come from an entirely different programming model, say, Forth or Haskell. For them, Python's assignment model is going to be the least of their worries. (4) People who are used to the named bins model from C, Pascal or Fortran, who will find some unusual corner cases where Python behaves differently to their mental model of assignment (but not for simple arithmetic using numbers). Python is accessible to *all* of the above groups, although naturally some will need to put in more effort in different directions than others. The tone of reproach in your posts suggests that you believe that the people in group 4 are more authentic programmers whose opinions are more correct than those in groups 1-3. I do not think there is any good reason to believe that group 4 is more special than the other groups. Nor do I believe that newly created languages (as Python was, a decade and a half ago) should be limited to following the named bin assignment model for fear that C etc programmers will be put off by the (supposed) bizarreness of name binding. Speaking as a former Pascal programmer, I think most C, Fortran and Pascal programmers are far too smart for that. > And that speaks to my ultimate point: Some members of the community > seem to make assumptions about what people know or should know, or have > experienced, and talk down to people who haven't met their expectations. > They meet different perspectives with hostility. In my experience, two perspectives are likely to be met with hostility: * those which arrogantly assume that they are the One True and Correct perspective and all others are inferior and wrong; and * those which ignorantly assume that they are the only perspective possible. Your first post in this topic made the extraordinarily arrogant and incorrect claim that: [quote] What the Python community often overlooks, when this discussion again rears its ugly head (as it seems to every other hour or so), is that its assignment model is BIZARRE, as in it's conceptually different from virtually all other languages substantially taught in undergraduate computer science programs. [end quote] We can see some pretty poor assumptions right there: * That the Python community is capable of uniformly overlooking Python's differences from other languages. * That only languages "substantially taught" in undergraduate CS courses matter. It seems that you don't include in the Python community all those who use the term "name binding" instead of variable assignment specifically because it gives new users a clue that Python is not the same as C. You've also missed out on probably twenty years of CS where Java (using the same assignment model as Python!) has been *the* language of choice for undergrad CS, not to mention those introductory courses which use Python. And then you're shocked, SHOCKED!!! that people respond sharply. How different do you think the response would have been if you had said: "What we in the Python community should try to remember is that for those new to the language, there can sometimes be preconceived ideas about how assignment works that clashes with Python's assignment model. From my own perspective, I found the differences between Python's name binding model and the named-bins model of C/Pascal/Fortran confusing at first, and to be honest, I still get caught by those differences. Naturally this is a general problem for every language, Python is hardly unique, but please remember not to bite the newbies just because they are still thinking in some other language." -- Steven -- http://mail.python.org/mailman/listinfo/python-list