PEP scepticism

mcherm at destiny.com mcherm at destiny.com
Fri Jun 29 14:43:24 EDT 2001


> This a general warning against the second system syndrom in Python.
> 
> Maybe I am a hypocritical sceptic, but I have the impression that
> some feeping creatureism is introduced into Python.
> This might reduce the main advantage of Python to be clear and easy
> and mostly have one good formulation on how to express what you want
> to program in a structured way.
> 
> Examples are:
> 	- augmented Assigments
> 	- Lists comprehensions
> 	- Simple Generators
> 
> To me it looks like these contructs do not add capabilities to
> python which were missing.
    [....]
> Please to not respond giving me the very good reasons on why these
> features I have given as examples have been added or will be added
> to python.
    [....]
> On the other hand this is excatly the danger I want to warn you about.
> It is a social reason for being careful:
> 
> 	Participation in the PEP debates about Python-enchancements 
> 	requires a certain level of knowledge and interest 
> 	about computer language design. 
> 
> It is most likely that the participants 
> do understand complicated language constructs easily and 
> are python wizards. They might just not see how the addition
> of syntatic sugar will lead to a higher learning curve for the masses.
    [....]
> Mainly as a python user I urge you to take this into consideration.


First of all, thank you Bernhard, for raising an important point.
I completely agree with you: one of the strengths of Python is its
simplicity, and I would never want to see it go the way of Perl
or C++. And you are (IMHO) RIGHT that those who discuss PEPs are
probably more savy than the typical Python user, and they need to
keep that in mind.

On the other hand, I find your list of examples sorely lacking.
Without trying to convince you, let me just state that in MY opinion:

  Augmented Assignment -- perhaps not a good idea, but I guess
      we got tired of being laughed at by people coming from C
      and java. It's awefully convenient anyhow.

  List Comprehensions -- one of my new arguments for why Python
      is so much BETTER than other languages. Their elegence and
      simplicity (for a task which is incredibly common) makes the
      language SIMPLER to read, and the syntax is so "obvious"
      that beginners can pick it up after seeing 2 or 3 examples.   

  Simple Generators -- this, too, is elegant and simple to
      understand. If you use them in wierd ways you might be able
      to create confusion (eg: add methods to a generator-iterator),
      but used straightforwardly, I think these will be powerful
      in some very common situations, and fairly easy to explain.

So I guess what I'm saying here is that I *agree* strongly with
your point, and we *must* keep this in mind as we consider new
language additions, but IMHO, we've already been doing a good job
of this. The features we're adding (except for print>>) are
well-chosen and not excessive. If we keep your advice in mind,
maybe we can continue that record.

-- Michael Chermside







More information about the Python-list mailing list