"The Python Way"

Robert Meegan Robert.Meegan at wcom.com
Fri Jun 4 19:56:43 CEST 1999


On Fri, 4 Jun 1999, Graham Matthews wrote:

> 
> Oh thank you Fredrik for posting the above. Does anyone else consider
> that the above sounds slightly paranoid? 
>

Paranoid is a little harsh, Graham. May I suggest parochial?

> Can I make a suggestion. When
> someone, for example myself, makes a suggestion for adding something
> to Python or changing something, or dare I say it "improving" Python,
> perhaps you could consider the faint possibility that they are not
> trying to "find a way to bend Python into uncomfortable positions", 
> but rather they are earnest Python users who happen to have some
> expertise/experience in the new idea being suggested, and think that
> it could not only greatly benefit Python, but also fit in rather well
> with the mystical "Python way". 
> 

One problem that exists with suggestions for improvements to Python is that
different people have different ideas about what features are essential to
the language. Most people seem to agree that objects and whitespace are
core features of Python, but others have made (more or less) well-reasoned
arguments pointing out the weaknesses inherent in each of these.

My opinion (which will get you a cup of coffee, if you ever meet me and
profess to share it) is that I would prefer to avoid syntax changes and
keyword additions. I find the following construction to be the height of
clarity:

while 1:
	[...]
	if x:
		break
	else:
		[...]
		
and I would hate to see some of the proposed solutions become part of the
language. On the other hand, I think that garbage collection would be a
wonderful feature to add. (I don't like to clean up after myself.)

The decision making process for what gets into Python seems to resemble a
parliamentary government with a strong president. The president runs the
show while the parliment debates. He can't make any major changes that are
directly in conflict with the parliamentary will, but without a concerted
and organized effort parliament doesn't have much say in the way things are
run.

The way to get significant changes incorporated into Python is to discuss
them in this august forum, until a consenus emerges (preferably including a
few key figures). Of course, implementing the change yourself and making it
available to others helps to demonstrate the superiority of your ideas.

Whether this is a good mention of defining a computer language is also
debatable, but without spinning off multiple versions of Python, I can't
foresee any other way.

> 
> In short when someone posts some suggested "improvement" to Python don't
> be so defensive. Open your mind to the possibility that the poster may
> have a point, that they are not trying to bend Python into uncomfortable
> positions, that they may know something about what they are positing 
> about, and may even be positing something that would be good for Python. 
> 

Unless there are saboteurs from the Perl community lurking amongst us, it's
probable that every suggestion offered is intended to improve Python. With
this in mind, every idea deserves a hearing. Looking at the archives shows
that if an idea has any merit at all a spirited discuss will ensue. The
ideas that fail to attract much attention (either pro or con) are either
self-evidently crucial or much more likely not of interest to anyone but
the author.

To choose an (admittedly self-serving) example, the issue of garbage
collection is obviously very important to a lot of people. In the last
year, hardly a month has passed without a motion being brought to the
floor. Perhaps what should be done at this point is for some of the more
vocal and knowledgable members (hopefully not a mutually exclusive
requirement) to create a garbage collection SIG. In that environment a
"best choice" method could be selected and implemented as a patch against
1.5.2. Once released, people could test it and determine whether the
advantages outweigh the disadvantages in the real world. Under those
circumstances it might be possible to decide whether GC belongs as a core
piece of Python 2.0.

The important thing is neither to quash dissent nor to debate the number of
angels that can dance on the head of an object, but to freely share ideas
in the hope of improving both Python and our own pool of knowledge.

This learned opinion is, of course, not worth the bits it's written on.

--- Robert

--------------------------------
Robert Meegan
MCIWorldCom - Cedar Rapids, Iowa
319.375.2416





More information about the Python-list mailing list