Deposing Dictators

margg at ux-ma160-18.csv.warwick.ac.uk margg at ux-ma160-18.csv.warwick.ac.uk
Wed Jul 25 10:05:34 EDT 2001


<disclaimer>
I'm an inveterate lurker, and I've followed the progress of Python for 
the last couple of years from the background -- writing programs for my 
own benefit, but nothing for the use of the general populace.

In other words, I am a worm, and none of you should pay any attention 
to me, to get the insults out the way.
</disclaimer>

Many political historians claim that, in short to medium term timescales,
the best form of governance is the benevolent dictatorship -- where the 
leader cares about his people, and has the ability and intelligence 
to act quickly on their behalf. However, it is unstable in the long term:
either the dictator, or the next in line, stops caring about the 
populace, and becomes capricious and vain.

I have been pondering recently whether we are seeing this process in 
action with Python. Guido van Rossum has been an extremely strong and
benevolent dictator, and Python itself is a much better language, and
has a bigger mindshare, than it would under many other leadership 
systems. However, we may be getting to the stage now where the task of
guiding Python should be taken out of his hands.

The next features of Python will see several types of changes, which
seem to been implmented and accepted into the language without 
discussion. The least serious of these are the introduction of 
generators, and the yield keyword, which do not negatively impact past
code (although they might incite grumblings about the PL/1-ization of 
a small and relatively simple language). The most serious surrounds
the changes in division.

Without getting into the arguments for and against a change, I would
note that changing the semantics of a core part of the language is
basically equivalent to creating a new language. Python with / and //
operators in the form currently envisaged is, frankly, not Python at
all. The fact that it looks like the change will be made, over the 
heads of all the dissenting opinions, means several things:

1) New versions of 'Python' are not 'Python', and should be indicated
as such -- perhaps by calling it 'Python++' :)
2) The level of dissent required to change the opinion of the BDFL
perhaps calls into question the 'B'.  

If Guido does change Python in the way it currently appears it will,
and if so many people disagree with the way it is developing, then
why not stand up and call for people to ignore the dictator, and
keep Python the way it should be? 

This new version of Python will not be one that I will be happy to use. 
If there are enough people who feel as I do, then perhaps we will be
able to depose the dictatorship, and create a stable and sensible 
system for developing Python (not Python++). If this means forking 
Python, then that will be done.

...

Alternatively, the people that have been baffled and amazed by recent
developments in Python could actually turn out to be all heat and light,
without any substance. It would just be nice to know where I stand.
If enough people are interested in deposing the dictator, then I will
happily join them -- otherwise I will just add my name to the list of
sound-and-fury grumblers, and fade back into darkness.

--
Jonathan Ingram



More information about the Python-list mailing list