PEP scepticism

Roman Suzi rnd at onego.ru
Thu Jun 28 12:57:56 EDT 2001


On 28 Jun 2001, Bernhard Reiter wrote:

>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

I can't see these as bad things which make Python worse!
If you do not want to use them - please do so.

I do like functional style of Python and list comprehensions
make the approach more powerful and clear.
Augmented assigments are so common that their lack in Python
looked like a hole.

Generators make Python iteration facilities _much_ more robust without
sacrificing clarity for the users of such constructs.

>To me it looks like these contructs do not add capabilities to
>python which were missing. They seems to be rare cases in which I

It depends on the programmer. If you came from vanilla Pascal,
maybe you will avoid lot of things at first.

But programmers are lazy -- thus they use list comprehensions
and augmented =s.

>prefer that the programmer got to have the overview anyway and
>should use a longer version which is more explicit and explains more
>about what is actually being done.

There is limit after which more explanation is worse than less:

processed_list = []
for i in old_list:
  processed_list.append(func(i))

adds nothing but noise, while:

processed_list = [func(i) for i in old_list]

makes it clear as day!

(I prefer map(), but this is personal)

>The new syntatic additions still
>require that the programmer has a full understanding about what is going on.
>On the other the sum of language constructs is growing and harder to
>understand as a complete system.

Language constructs aren't the pile of features. There is good logic
behind them, if you look with more attention.

>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. I know that the reasons are well worked out and make sense.
>You can easily convince me as I have to admit that I do not have the
>time to follow all the arguments and work out my opinion.

Ok. Do not read then.

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

And intuition too.

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

As I said, features of Python aren't illogical pile of things.
So, adding more features doesn't touch the mentioned curve.

>(And we are missing the ability to make usability tests for these
>kind of features because it is very hard to show and would require
>tests with many programmers over long test periods.)
>
>Mainly as a python user I urge you to take this into consideration.

As a python programmer, I think that Python must live, because it is live
language. Even latin has recent additions to it, which undoubtly lead to
"higher" curve.

Every language which is practical and useful changes over the time. If you
are dissatisfied with this, please fork Eternal Python project.

>	Bernhard
>ps.: I have similiar thoughts about some recent strategic
>development ideas for Zope. Python and Zope both have 2.x version
>number, please fight the 2nd system syndrom. :)

I myself sometimes wish some things to be eternal. At least to
code eternal cybernetic soul and preserve it in a mausoleum ;-)

Sincerely yours, Roman Suzi
-- 
_/ Russia _/ Karelia _/ Petrozavodsk _/ rnd at onego.ru _/
_/ Thursday, June 28, 2001 _/ Powered by Linux RedHat 6.2 _/
_/ "It is better to wear out than to rust out." _/





More information about the Python-list mailing list