[Python-Dev] PEP 3003 - Python Language Moratorium (original) (raw)
Steven D'Aprano steve at pearwood.info
Sun Nov 8 01:14:59 CET 2009
- Previous message: [Python-Dev] PEP 3003 - Python Language Moratorium
- Next message: [Python-Dev] PEP 3003 - Python Language Moratorium
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, 6 Nov 2009 09:05:17 am Guido van Rossum wrote:
On Tue, Nov 3, 2009 at 9:35 AM, Guido van Rossum <guido at python.org> wrote: > I've checked draft (!) PEP 3003, "Python Language Moratorium", into > SVN. As authors I've listed Jesse, Brett and myself.
I haven't seen substantial opposition against the PEP -- in fact I can't recall any, and many people have explicitly posted in support of it. So unless opposition suddenly appears in the next few days, I'll move it to the Accepted state next Monday.
I'm not a core developer, but I have made some objections on the python-ideas list. For what it is worth, I don't think a moratorium is needed, and it is not cost free. Whether the cost is worth it is a matter of opinion, but I've read posts suggesting that there's no downside to a moratorium. I think that's naive.
Firstly, the core developers are very conservative in the features they add to the language. Nobody suggests that will change -- there are (as far as I know) a grand total of one proposed language changes under consideration for 3.2, namely "yield from". It isn't like the moratorium is needed to stem a flood of vast numbers of incompatible language changes, and this is not likely to change.
The given reason for the moratorium is to give the developers of other Python implementations a chance to catch up. But as far as I know -- and I welcome correction -- only one such developer has spoken up, and he says that new language features generally aren't a problem for IronPython, but some standard library features are:
http://mail.python.org/pipermail/python-ideas/2009-October/006328.html
(In fairness, I should point out that Dino did not vote against the moratorium, he gave a conditional "in favour" vote but asked for some wiggle-room. A moratorium with wiggle-room is not a moratorium.)
A moratorium isn't cost-free. With the back-end free to change, patches will go stale over 2+ years. People will lose interest or otherwise move on. Those with good ideas but little patience will be discouraged. I fully expect that, human nature being as it is, those proposing a change, good or bad, will be told not to bother wasting their time, there's a moratorium on at least as often as they'll be encouraged to bide their time while the moratorium is on.
A moratorium turns Python's conservativeness up to 11. If Python already has a reputation for being conservative in the features it accepts -- and I think it does -- then a moratorium risks giving the impression that Python has become the language of choice for old guys sitting on their porch yelling at the damn kids to get off the lawn. That's a plus for Cobol. I don't think it is a plus for Python.
What one person sees as "stable", another may see as "moribund". Perception does matter. Nick Coglan spoke of Jython having "fell by the wayside" when CPython introduced new style classes:
http://mail.python.org/pipermail/python-ideas/2009-October/006431.html
I think that speaks to the opposite conclusion that Nick intended. If developers craved stability, and were put off by the pace of changes to CPython, why weren't they migrating to Jython, which had one new production release in six years?
http://www.jython.org/archive/22/news.html
Nick also described C as changing much more slowly over its life that Python has. This is misleading: it is true that the C standard has been stable, but that doesn't mean that C compilers have been. Changes to the standard were driven by changes introduced by the implementations, not visa versa. Likewise for Cobol, where the first implementation to introduce OOP was released in 1997, but the standard wasn't updated until 2002.
Python is nothing like that. Python doesn't have an official standard, and Guido has dismissed the need for an ISO standard. The other implementations have historically let CPython lead as far as language evolution goes. If CPython stops, likely Python stops. Who is going to risk adding language features that break compatibility with the most popular implementation? It won't be Python anymore.
The PEP says the moratorium will last "at least" two years from the release of 3.1. Given the normal slow pace of new language features, two years isn't bad -- that's effectively just 3.2. But Guido has suggested it could last to 3.3. Could it last beyond that? 3.4? Until some distant future Python-4000?
At the very least, I believe, any moratorium should have a clear end date. A clear end date will be a powerful counter to the impression that Python the language is moribund. It says, this is an exceptional pause, not a permanent halt.
-- Steven D'Aprano
- Previous message: [Python-Dev] PEP 3003 - Python Language Moratorium
- Next message: [Python-Dev] PEP 3003 - Python Language Moratorium
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]