[Python-Dev] Python for new users

Nick Efford N.D.Efford at leeds.ac.uk
Mon Sep 30 12:39:40 CEST 2013

In the 'PEP453 ready for pronouncement' thread, Donald said

>> Because reality is that new users are still likely to be using Python 2.7.
>> Python 3 is just now starting to be really usable, however there's a huge
>> corpus of existing tutorials, course work, books etc for Python 2.7. As
>> Python 3 becomes more usable that existing corpus of material will be
>> ported over to Python 3 but in the interim there is still a pretty large
>> hurdle for new users to get over.

And Guido replied

> Based on my day-to-day experience this is still very true. (And yes, I'm
> slowly turning the tide. But it will take a long time and I am committed to
> giving users the choice.)

Widely-used and linked web resources tend to persist for a very
long time, so we shouldn't use the prevalence of Python 2 resources
as a reason for excessive caution.  The key question is how much
good material is available based on Python 3 - and this has improved
significantly over the past couple of years.  The classic "How to
Think Like a Computer Scientist" has an excellent Python 3 version
available at http://interactivepython.org, for example.

Things are changing with print media, too.  Pragmatic Programmers are
about to publish the 2nd edition of "Practical Programming", based
on Python 3.  Most of the major academic publishers have released
Python 3 books in the last 12 months.  The tide is definitely
turning, perhaps has already turned.

Encouraging the continued use of 2.7 for existing programmers is
entirely justifiable, but for *newcomers* to programming I think it
is now much harder to justify.  A stronger case could have been made
a couple of years ago, when many important packages were not yet
available for Python 3, but things have changed.  Even big frameworks
like Django are now usable with Python 3.  If we aren't yet past the
point where package availability shouldn't be regarded as an adoption
barrier by beginners, we are surely very close.

I've been teaching Python as a first language to university students
for many years now, initially with Python 2 and for the last few
years with Python 3.  In my experience, they encounter fewer problems
with Python 3 (just as Guido intended, no doubt :)  The one stumbling
block in the past has been package availability for project work,
but I don't expect that to a problem this year.  All of the web and
GUI development work that they'll be doing with me, for example,
will be done entirely in Python 3.


More information about the Python-Dev mailing list