[I have some things to say to a few people so I'm just putting it all in one rather than clutter up your email box even more.]
On 08/23/2012 12:33 AM, Chris Angelico wrote: > [Snip discussion on names vs variables] > > Does that sort things out, or just make things more confusing? > > ChrisA I... am not sure. I don't think it really told me anything new. I think it's just that I don't think that any of the distinctions (nor all of them put together) makes it worthwhile to reject a perfectly good term in common use just because the behavior of Python variables is a bit different from the behavior of variables in *some* other languages. For instance, I don't get annoyed that both Java and Python use the terms "class" and "object" for similar but still very different things. And while I think it's worth saying "Python classes and objects are rather different from Java's", I definitely *wouldn't* say "Python classes aren't really classes" -- even though (I assert) Python classes are *far* further from Simula-style (/Java/C++) classes than Python variables are from Java variables. On 08/23/2012 03:59 AM, Jussi Piitulainen wrote: > I would also avoid any distinction between an object and a > "reference" to an object, except as an implementation detail. It's not > helpful. Whaaaa....? How would you describe it then? To me, that distinction is absolutely *fundamental* to understanding how languages like Python/Scheme/Java work, because it tells you how to reason about aliasing behavior in an unconvoluted way (which is essential to understanding how they work). How would *you* suggest dealing with that issue? On 08/23/2012 09:43 AM, Jerry Hill wrote: > On Thu, Aug 23, 2012 at 4:59 AM, Jussi Piitulainen wrote: >> I don't get it either. To me the python-has-no-variables campaigners >> seem confused. As far as I can see, Python can be seen in terms of >> variables bound to (locations containing) values perfectly well, in a >> way that should be quite familiar to people who come from Java (or >> Lisp, Scheme like me). > > ... > > Perhaps those that come from the Java and Lisp world don't find the > name/value paradigm as helpful. Still, it seems silly to excoriate > people on the list for trying to explain python fundamentals in > several different ways. Sometimes explaining the same idea in > different words helps people understand the concept better. I agree with this, and I'm happy that people found it useful. *However*, this thread wasn't really prompted by someone just trying to explain variables in different terms -- it was prompted by one of the many comments you see from time-to-time that "Python doesn't have variables – not as C or Java programmers would understand the term". That's a different than saying "here's another way of looking at Python variables", and that instance is even toned down compared to a lot of the instances you'll find (which will often omit the qualification at the end). To me, saying "here's an alternative way to look at variables" is great, but saying "Python doesn't have variables" is, IMO, at least as silly as what Jussi said. To me, dancing around the issue just leads to more confusing terminology and makes things worse. (And this is reinforced by the fact that neither I nor Google seems to have really seen "Python doesn't have classes" ever used, when that statement is at least as true as "Python doesn't have variables".) Evan
signature.asc
Description: OpenPGP digital signature
-- http://mail.python.org/mailman/listinfo/python-list