Thoughts about extensions to the Python language

Carlos Ribeiro carribeiro at yahoo.com
Wed Mar 14 23:13:54 CET 2001


(flames off please ...)

First of all, some background information... I'm watching this list for the 
past few days. Thats my first contribution to the list. I work on computer 
related jobs for some time (since 1984), and I have saw a lot of things in 
the past decade or so. I'm learning Python since mid-2000, mainly for use 
as a tool to gather network management information.

What attracted me to Python was the simplicity and cleanliness of the 
language. Code written in Python is as clean as code can be. I have written 
systems using several other languages, including C, C++ and Perl, and none 
of these languages can even come close of Python in terms of readability. I 
think that most people on this list will agree with me that making code 
readable is one of the most important (and relegated) steps to improve 
programming skills.

I'm not saying that Python is perfect - as a "work in progress" we can 
surely think about a lot of things that can be improved. However, I'm 
seeing a lot of effort these days toward language extensions. Call it 
"featuritis" or anything like it, but I dont like it, and something inside 
tells me that this is the wrong approach for Python's evolution. I can 
number several ways this approach is failed:

1) Python is not an application, is a programming language. However it 
seems that the PEP process is making Python development look just like any 
other generic application. Someone else on the list has already posted on 
this (he was asking for a maturation time for extensions to the language 
definition). Maybe a lot of this is related to the crescent confusion 
between Python (the language) and CPython - the C implementation that most 
of us know and use.

2) Python has reached a stated where it's useful for a large number of 
people and a wide range of applications. It is absolutely expected that 
people come up with lots of imaginative extensions that fit theirs 
particular needs.

3) Another reason is that some people come from other languages and 
environments. They try to translate their mental models in Python and fail, 
not because something is missing in Python, but because they have a hard 
time learning the "Python Way".

4) There is a lot of pressure from the "my-language-is-better-than-yours" 
department. Some of this people are particularly loud on making their 
requests heard, and this gives an unproportional weight to some proposals 
that are silly at best. The vast majority of the Python users don't listen 
to the list. They are going to have quite a surprise with the next releases...

5) Written proposals are dangerous ;-) Ok, this is an exageration. This is 
another way to state some of the points above. Dumb ideas have somehow 
developed an ability to make themselves look much better when written in a 
formal proposal (Alan Sokal, please?). That's a problem that plagues a lot 
of mailing lists. You have to be alert to avoid it.

6) Most important of all, it's clear that Guido had used a 'common sense' 
approach to design the original language. At that time there were much less 
exposition than today. It seems that some of this "practical" approach is 
being lost in the transition to the open source world. I think that all the 
reasons above apply, mainly because the pressure is much higher.


We could elaborate a lot on this, and I think that some of the older 
"Pythoneers" are doing exactly this. However, for the extensions proposed 
for the language itself, I saw a lot of discussions for particular issues 
*without* the amplitude needed for a generic solution. I fear that this may 
lead to a distorted perception of reality. Is everyone sure that Python 
needs as much extensions to the language as proposed now? Maybe I'm way too 
much conservative, but for me the answer is no. Let's see what everyone 
else thinks.



Carlos Ribeiro
carribeiro at yahoo.com
cribeiro at mail.inet.com.br


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com





More information about the Python-list mailing list