I have learned that I should not play diplomacy between people that make money out of software.
I partecipated to the discussion for two reasons: - I want to avoid an ugly to implement solution (I'm the guy that should code nested scopes in jython) - I got annoyed by Jeremy using his "position" and (your) BDFL decisions and the fact that code is already in, in order to avoid to be completely intellectually honest wrt to his creature. (But CLEARLY this was just my feeling, and getting annoyed is a feeling too)
I should admit that I like the idea of nested scopes, because I like
programming style, but I don't know whether this returning 3 is nice ;)?
def f(): def g(): return y # put as many innoncent code lines as you like y=3 return g()
This is a red herring; I don't see how this differs from the confusion in
def f(): print y # lots of code y = 3
and I don't see how nested scopes add a new twist to this known issue.
This raises an error (at least at runtime). But yes it is just matter of taste and readability, mostly personal stuff. And on the long run maybe the second should raise a compile-time error (your choice).
and I think that is also ok to honestely be worried about what user will feel about this? (and we can only think about this beacuse the feedback is not that much)
Will this code breakage "scare" them and slow down migration to new versions of python? They are already afraid of going 2.0(?). It is maybe just PR
Hey, I don't make money out of python or jython. I not invoked FUD, I was just pointing out what - I thought - was behind the discussion. FUD is already among us but you and the others make money with python, this is not the case for me.
The *point* is that we are not going from version 0.8 to version 0.9 of our toy research lisp dialect, passing from dynamic scoping to lexical scoping. (Yes, I think, that changing semantic behind the scene is not a polite move.)
Well, I'm actually glad to hear this -- Python now has such a large user base that language changes are deemed impractical.
I'm just a newbie, I always read in books and e-articles: "python is a simple, elegant, consistent language, developed (slowly) with extremal care".
It's all about being intellectually honest (yes this is my personal holy war): e.g. [GvR]
I would consider the type/class split, making something like ExtensionClass neccessary, much more annoying for the advanced programmer. IMHO more efforts should go into this issue _even before_ p3000.
Yes, indeed. This will be on the agenda for Python 2.2. Digital Creations really wants PythonLabs to work on this issue!
this is an honest statement.
Things has changed (people are getting aware of this). With nested scope there were two possibilities:
given the code:
(I) y=1 def f(): y=666 def g(): return y
one could go the way we are going and breaks this unless people fix it (II) y=1 def f(): y=666 def g(): global y return y
or need some explicit syntax for the new behaviour: (III) y=1 def f(): nest y y=666 def g(): return y
I agree designing solution (III) could be not simpler, and on the long run is just inelegant lossage (I can agree with this) up to other orthogonal issues (see above).
Python is not closed source, it's your language, your user-base and you make money indirectly out of it: you are the BDFL and you can choose (if you would make money directly out of python maybe you must choose (III) or you are MS or Sun...)
But I think it's clear that you should accept people (for their biz reason) saying "please can we go slower". And you can reply FUD...
regards, Samuele Pedroni.
PS: Yes I will not play this anymore. Lesson learned ;)