How much is set in stone?

Grant Griffin not.this at
Mon Nov 5 06:14:06 CET 2001

Jive Dadson wrote:
> I'm a newbie at Python, but I've been up to my ears in it for the last
> couple of days. -- Considering using it for a scripting language for a
> product at work.  I'm very impressed with the system.  Of course there
> are things I would like to change. :-)  So the question is, how much is
> set in stone at this point?  Is the definition of 2.x now the law of the
> land, or can we still make suggestions?

Sure, you're free to make suggestions.  (We tried to stop folks in the
past, but it didn't work <wink>.)  However, bear in mind that nearly
anything any newbie might suggest has very likely already been suggested
and debated *many* times in Python's 10-year history, so if it isn't
already in Python, it has probably been rejected, and you are very
likely wasting your breath.  (The Python FAQ at addresses some of these things in its
"Python's Design" section.)

That being said, in observing Python's change over the last two years, I
have been unable to discern any overall direction to them.  Python
embodies several different design ethics, some of which are
contradicatory, so its designer, Guido van Rossum, has had to make
choices.  For example, one ethic is to minimize the number of features;
even so, features get added on a regular basis.  Another ethic is to
make Python run faster; however, one new feature, "rich comparisons",
has actually slowed it.  Another ethic is to make only
backwards-compatible changes; however, a new feature, the "__future__"
statement, was added to allow backwards-incompatible changes to be
phased in; fortunately, though, the __future__ statement is itself

(Who but Picasso could know exactly which noses to paint sideways?

Version 1.5.2 was current when I started, and several new features have
been added since then.  I suppose every thinks the "true" version of
Python is the one in use when they started.  But in all honesty, I
haven't found the newer features to be very useful (to me, at least)
except for string methods (you used to have to import the string library
to do basic string manipulations) and "augmented assignments" (things
like "+=", "*=", etc.).  I also use "list comprehensions" (which are too
incomprehinsible to summarize here <wink>) on rare occasions--though I'm
usually ashamed of myself later.

Overall, if you find a simple feature to be "missing" (e.g. C's
increment and decrement operators: "++", "--") it probably has been
intentionally omitted (or at least "steadfastly not added").  As you
become experienced in Python, you will eventually discover the reasons
for the choices Guido has made, and you will most likely agree with them
(though I never *did* figure out why Python 1.5.2 didn't have augmented
assignments <wink>.)  If not, you can always demand your money back.

What I'm getting at, of course, is that most things that newbies suggest
(including myself) result from a lack of understanding of The Big
Picture, which you might eventually discover--heck, I'm still hoping to
<wink>.  Or, maybe it just hasn't happened yet.  In any case, be assured
that somebody has thought of it, somebody has suggested it, and somebody
has debated it--probably many times.

if-Python-doesn't-already-have-it,-you-probably-don't-need-it-ly y'rs,


Grant R. Griffin                                       g2 at
Publisher of dspGuru                 
Iowegian International Corporation  

More information about the Python-list mailing list