On 9 Jan 2014 06:02, "Steven D'Aprano" <steve@pearwood.info> wrote:
>
> On Wed, Jan 08, 2014 at 05:22:02PM +0100, Alejandro López Correa wrote:
> [...]
> > Anyway, I understand it is not a clean way to proceed, but something along
> > these lines might be the only way to speed up the adoption of python 3
>
> One assumption in this discussion, and the various related discussions
> on Reddit and other places, is that adoption of Python 3 is too slow and
> needs to be sped up. I don't believe this is true. I believe adoption
> is just right and exactly what should be expected.
>
> Alex Gaynor wrote a blog post a week or so ago claiming that, five years
> since Python 3 was first released, everyone should have migrated by now
> and that since only "five percent" (a figure which I believe he pulled
> out of thin air) have migrated, Python 3 has been a failure.

Alex's numbers were real - they're based on user agent header analysis for PyPI downloads. However, the other readily available metric is python.org installer downloads, and those favour Python 3 (and that's even before we publish 3.4, which has nice additions like pip, statistics and asyncio).

Alex is a smart guy, but I don't know how he managed to get "After 5 years, Python 3 should be more widely used than Python 2" (clearly unrealistic) from "After 5 years, Python 3 should be mature enough to be the default choice for new projects". The latter is what we actually said, and, allowing for the 6 month delay to replace 3.0's unusably slow IO stack in 3.1, still looks plausible given the updates coming in Python 3.4.

That article was actually the one that made me realise my Q&A needed a few more questions and answers :)

> I challenge that belief. I've been hanging around here and on the
> Python-Dev list for a long time, and while I can't find any official
> pronouncement, the sense has always been that Python 3 adoption will
> take ten years, not five. (That's my recollection -- if any of the core
> developers wish to correct me, please do.)

5 years to be the default for new projects, we never set a goal for overtaking Python 2 overall.

This Q and the one after it are most directly relevant:

http://python-notes.curiousefficiency.org/en/latest/python3/questions_and_answers.html#when-can-we-expect-python-3-to-be-the-obvious-choice-for-new-projects

>Rates of adoption are much,
> much higher than gossip on the Internet suggests. About 70% of the top
> 200 projects on PyPI support Python 3, and downloads of Python 3 are
> very healthy, possibly even higher than downloads of Python 2.
>On the
> tutor list, I see a significant number of beginners using Python 3.

All our discussions with distros and redistributors are also about *how* to manage the transition, rather than *if*.

Red Hat providing commercial support for Python 3.3 as of last September is a *big* deal, particularly given this week's announcement about CentOS being adopted as an officially Red Hat sponsored project and the popularity of CentOS as a platform in the scientific community.

>
> It seems to me that given the circumstances, Python 3 adoption is right
> where we should expect it to be half-way through a decade-long process.
> There will be a period at the start when hardly anyone will migrate,
> then a period of accelerating migration, which will accelerate further
> when the mainstream Linux distros start shipping Python 3 as their
> system Python (ArchLinux is not mainstream, but Fedora is planning the
> change), followed by a sudden rush in another four or five years when
> people realise that Python 2.7 becoming unmaintained is no longer a
> distant prospect but is about to happen.

Yup. I actually started adding a timeline to my Q&A: http://python-notes.curiousefficiency.org/en/latest/python3/questions_and_answers.html#what-are-or-were-some-of-the-key-dates-in-the-python-3-transition

> For many people, waiting until the last minute is the most sensible
> thing that they can do. This gives time for the early adoptors to
> discover and iron out all the wrinkles and difficulties. Rather than
> approaching this as "Python 3 has been a failure, what can we do to save
> it?" we should be approaching this as "Python 3 has been a success, what
> lessons can we take from the early adoptors to make it even easier for
> the next wave of adoptors?"

We've definitely made some mistakes in the area of communications, though. In particular, we probably should have had something like my Q&A available as an authoritative information source from the beginning, instead of only creating it around the release of Python 3.3.

>
> "from __past__ import spam" does not make it easier to adopt. It just
> makes it easier to *put off adopting*.
>
>
> > and minimise the risk of defection to other languages.
>
> People threaten that, but it is an irrational threat. (Mind you, people
> do silly, irrational things every day.) If you think its hard to migrate
> from Python 2 to 3, when you get to keep 90% of your code base and most
> of the backward-incompatible changes are a few libraries that have been
> renamed and a handful of syntax changes, how hard will it be to throw
> away 100% of your code and start again with a completely different
> language?

Exactly. By the time 2.7 goes into security fix only mode, we will have been maintaining Python 2 and Python 3 in parallel for more than *8 years*. This is a deliberate choice on our part to allow plenty of time for users to decide to migrate on their own, rather than attempting to force them to migrate with the stick of a lack of support.

Even after that, commercial Python 2.x support will be available until at least 2023, and likely longer.

Cheers,
Nick.

>
>
>
> --
> Steven
> _______________________________________________
> Python-ideas mailing list
> Python-ideas@python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/