On 06/29/2013 12:51 PM, Steven D'Aprano wrote:
> You are absolutely correct in principle. But in practice, there are ten
> bazillion C, Pascal, COBOL, and BASIC programmers who understand the word
> "variable" to mean a named memory location, for every Smalltalk or Lisp
> programmer who understands a "variable" as a name binding. So it's pure
> weight of numbers thing.
>
> The average Lisp programmer will be completely aware that "variable" can
> mean various things, and take care to determine what the word means in
> Python. She will immediately grok what we mean, even if she thinks that
> the "no variables" part is just an affectation ("Heh, those wacky Python
> dudes think they don't have variables!") but at least she'll understand
> the name binding part.
>
> On the other hand, the average C programmer is barely aware that there
> are other languages at all, let alone that some of them differ from C in
> semantics as well as syntax. So by emphasising the differences ("Python
> has no variables? It has name bindings?") we increase the likelihood that
> he'll learn the differences in semantics as well as syntax.
>
> So, in a very practical sense, "Python has no variables, it has name
> bindings" is completely wrong except in the sense that really matters:
> Python's variables don't behave identically to C variables.
Very good points. Thank you. Good tips for how to better explain
things next time it comes up. I'll avoid simply saying "Python has no
variables."
--
http://mail.python.org/mailman/listinfo/python-list