[Python-Dev] Those import related syntax errors again...

Samuele Pedroni Samuele Pedroni <pedroni@inf.ethz.ch>
Thu, 22 Feb 2001 14:22:25 +0100 (MET)


Hi.

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 
functional
> > 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 works.

> 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)
> 
> FUD.
> 
> > 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 
matter
> > but ...
> 
> More FUD.
> 
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 ;)