Closures in leu of pointers?

Michael Torrie torriem at gmail.com
Sat Jun 29 15:04:51 EDT 2013


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."




More information about the Python-list mailing list