[Python-ideas] Proposal: Moratorium on Python language changes

Steven D'Aprano steve at pearwood.info
Thu Oct 22 01:47:16 CEST 2009


On Thu, 22 Oct 2009 06:02:29 am Guido van Rossum wrote:
> On Wed, Oct 21, 2009 at 11:52 AM, geremy condra <debatem1 at gmail.com> 
wrote:
> > Towards that end, I'd also like to propose a very public, very
> > accessible 'sandbox' specifically for the development and testing
> > of new language features while the moratorium is in effect.
...
>
> I can't stop people from forking the language to do experiments, but
> one of the goals I have for the moratorium is actually to *reduce*
> the interest in core language changes, and to *raise* the barrier to
> entry. Most language change proposals are just fluff, and they will
> be just as unneeded three years from now as they are today. Once the
> moratorium is lifted, users should be able expect the normal, slow,
> conservative evolution of the language to continue -- not to see the
> floodgates lifted for a barrage of new features.

I was going to make a similar suggestion to Geremy, an official 
experimental branch in perpetual alpha, specifically to allow people to 
experiment with language changes. This doesn't mean that when the 
moratorium is lifted there will be a sudden flood of new features, 
radically changing the language: features will still need to go through 
precisely the same procedure to be accepted into the language as they 
do now. But it will be a place to point people and tell them "don't 
just tell us how you imagine this feature will work, show us".

(For the record, I'm not suggesting that this experimental branch should 
be open to commits from anyone. You still have to convince those with 
privileges that your patch is worth looking at.)

As far as the moratorium goes, I'm going to be the negative-nellie who 
says that I don't think this will actually make much practical 
difference. Python is, and always has been, very conservative about 
adding new language features. And so far, we've only heard from one 
developer of another Python implementation, Dino Viehland of 
IronPython, who said that language features are generally not a problem 
for him. 

As far as I can see, the only practical difference it will make is that 
it will cut short some (but not all) threads on python-ideas and 
comp.lang.python: anyone who suggests a language change will be 
told "Moratorium. Come back in 2013."

This risks giving newbies the impression that Python is moribund and 
closed to new ideas -- not just the amateur language designers who have 
a wild and wacky ideas, but also those with clue who have good, 
thought-out ideas, as well as the quiet ones who don't have ideas but 
like those who do. Programming language popularity is not quite a 
zero-sum game, but languages do live or die by the ability to attract 
and keep new users. Particularly in Open Source languages, those users 
tend to be attracted more by "fresh and lively" than "stable and 
boring". So this is a cost that needs to be considered against the 
dubious (to me at least) proposition that a feature-freeze in the 
language will speed up uptake of 3.1.

If library authors are going to support 3.x, they need to pick a minimum 
version and write for that. A new-feature freeze for 3.2 and 3.3 isn't 
going to make their life easier if they're writing for 3.1, for the 
obvious reason that they need to use only features available in 3.1. 
The only language changes that hurt them are non-backward compatible 
changes like the removal of features, but even there the benefit is 
minimal because Python already is very cautious about backwards 
compatibility. Features aren't removed or functionality changed without 
a long deprecation period, possibly even longer than the proposed 
moratorium. So I'm not convinced that this moratorium will actually 
give any advantage.



-- 
Steven D'Aprano



More information about the Python-ideas mailing list