Thoughts about extensions to the Python language
Carlos Ribeiro
carribeiro at yahoo.com
Wed Mar 14 17:13:54 EST 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