The � debate

Steven D'Aprano steve+comp.lang.python at pearwood.info
Fri May 9 21:34:01 EDT 2014


On Fri, 09 May 2014 13:10:41 +1200, Gregory Ewing wrote:

> Steven D'Aprano wrote:
>> Today we routinely call horseless carriages "cars", and nobody would
>> blink if I pointed at a Prius or a Ford Explorer and said "that's not a
>> carriage, it's a car" except to wonder why on earth I thought something
>> so obvious needed to be said.
> 
> That's only because the term "car" *is* well established. The situation
> with the word "variable" is more like if you pointed at a Prius and said
> "That's not a car, it's an electric vehicle". Most people would wonder
> why you refused to categorise it as a type of car.

And of there was an ongoing problem with people getting seriously 
confused by the differences between electric vehicles and internal 
combustion engine cars -- say, a steady stream of Prius owners filling 
the windshield washer reservoir with petrol (gasoline for Americans), or 
car mechanics accidentally blowing the batteries up -- then there might 
be a good reason to use a different name. In the absence of such 
confusion, why should we care?

I don't object to Python using "print" to mean "display on the screen" 
instead of "make paper come out of the printer", because with the 
exception of the most naive beginners, there is no confusion caused by 
using that term. Nor am I terrible upset that "static method" means 
something very different in Java to Python, because that represents a 
fairly trivial misunderstanding about a single function rather than a 
fundamental misunderstanding about language semantics.


> If you look at the way the word "variable" is used across a variety of
> language communities, the common meaning is more or less "something that
> can appear on the left hand side of an assignment statement".

I really don't think so.

some_function(x, y+1)[key].attribute[num](arg)[spam or eggs] = 42

I'm pretty sure that it isn't common to call the LHS of that assignment a 
variable.


> Nobody seems to complain about using the term "assigment" in relation to
> Python, despite it meaning something a bit different from what it means
> in some other languages, so I don't see anything wrong with using the
> term "variable" with the above definition.

What differences in assignment are you referring to?

In any case, the issue is whether or not the misunderstanding leads to 
confusion or not. 



-- 
Steven D'Aprano
http://import-that.dreamwidth.org/



More information about the Python-list mailing list