LWN.net Logo

please don't use Python-3

please don't use Python-3

Posted Dec 7, 2008 0:18 UTC (Sun) by njs (subscriber, #40338)
In reply to: please don't use Python-3 by sbergman27
Parent article: Python 3.0 released

I think you read more hostility into my comment than was intended (and understandably, because I have a bad habit of using words like "stupid" as technical rather than pejorative terms). I was indeed referring to the pre-2.2 changes in scope handling (though it was actually 2.1/2.2 where it was added/turned on -- python -c 'import __future__; print __future__.nested_scopes' -- unless there was another round of scope tweaks that I'm forgetting about).

And I think -- again, remember I'm talking about how a language designer/aficionado sees and gets confused by Python -- the simple core *is* somewhat distinct from the human factors; it would be entirely possible to put Python's syntax etc. on top of a Lisp or Smalltalk, and you would have more consistent internals without any harm to the language's essential spirit[1]. But my central point was -- this is where experts get confused -- it turns out not to really matter much either way.

Ruby is also an interesting example, being a Smalltalk itself -- but I don't know much about it, because the perception of a culture of monkeypatching has scared me away, another example of the importance of "cultural"/non-technical/human factors in language use.

[1] A good example of this would be the evolution of R from S (the statistics programming languages, where S has a kludgy core and R is a Scheme... but users don't really notice the difference).


(Log in to post comments)

please don't use Python-3

Posted Dec 7, 2008 1:04 UTC (Sun) by sbergman27 (subscriber, #10767) [Link]

Yes, I did read some hostility in it. But I wasn't sure. I went back and reviewed your posts in the Perl thread and decided you seemed pretty even-handed.

You are correct about 2.1/2.2. I was correctly remembering what I had read in the Wikipedia article on Python:

http://en.wikipedia.org/wiki/Python_(programming_language)

which says, referring to 2.0:

"The release included a change to the language specification to support nested scopes, like other statically scoped languages.[13] (The feature was turned off by default, and not required, until Python 2.2.)"

But a review of the original "What's new in Python 2.0" and "What's new in Python 2.1" documents shows that to be inaccurate.

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds