[Python-Dev] PEP 4000 to explicitly declare we won't be doing a Py3k style compatibility break again?

Guido van Rossum guido at python.org
Sun Aug 17 04:43:39 CEST 2014

On Sat, Aug 16, 2014 at 6:28 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:

> I've seen a few people on python-ideas express the assumption that
> there will be another Py3k style compatibility break for Python 4.0.

There used to be only joking references to 4.0 or py4k -- how things have
changed! I've seen nothing that a gentle correction on the list couldn't
fix though.

> I've also had people express the concern that "you broke compatibility
> in a major way once, how do we know you won't do it again?".

Well, they won't, really. You can't predict the future. But really, that's
a pretty poor way to say "please don't do it again."

I'm not sure why, but I hate when someone starts a suggestion or a question
with "why doesn't Python ..." and I have to fight the urge to reply in a
flippant way without answering the real question. (And just now I did it

I suppose this phrasing may actually be meant as a form of politeness, but
to me it often sounds passive-aggressive, pretend-polite. (Could it be a
matter of cultural difference? The internet is full of broken English, my
own often included.)

> Both of those contrast strongly with Guido's stated position that he
> never wants to go through a transition like the 2->3 one again.

Right. What's more, when I say that, I don't mean that you should wait
until I retire -- I think it's genuinely a bad idea.

I also don't expect that it'll be necessary -- in fact, I am counting on
tools (e.g. static analysis!) to improve to the point where there won't be
a reason for such a transition.

(Don't understand this to mean that we should never deprecate things.
Deprecations will happen, they are necessary for the evolution of any
programming language. But they won't ever hurt in the way that Python 3

> Barry wrote PEP 404 to make it completely explicit that python-dev had
> no plans to create a Python 2.8 release. Would it be worth writing a
> similarly explicit "not an option" PEP explaining that the regular
> deprecation and removal process (roughly documented in PEP 387) is the
> *only* deprecation and removal process? It could also point to the
> fact that we now have PEP 411 (provisional APIs) to help reduce our
> chances of being locked indefinitely into design decisions we aren't
> happy with.
> If folks (most significantly, Guido) are amenable to the idea, it
> shouldn't take long to put such a PEP together, and I think it could
> help reduce some of the confusions around the expectations for Python
> 4.0 and the evolution of 3.x in general.

But what should it say? It's easy to say there won't be a 2.8 because we
already have 3.0 (and 3.1, and 3.2, and ...). But can we really say there
won't be a 4.0? Never? Why not? Who is to say that at some point some folks
won't be going off on their own to design a whole new language and name it
Python 4, following Larry Wall's Perl 6 example?

I think it makes sense to occasionally remind the more eager contributors
that we want the future to come gently (that's not to say in our sleep :-).
But I'm not sure a PEP is the best form for such a reminder. Even the Pope
has a Twitter account. :-)

--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20140816/8a1f4389/attachment-0001.html>

More information about the Python-Dev mailing list