Guido van Rossum: 21 Years of Python

Guido van Rossum was at Amazon a week back doing a talk. Guido presented 21 Years of Python: From Pet Project to Programming Language of the Year.

The slides are linked below and my rough notes follow:

· Significant Python influencers:

o Algol 60, Pascal, C

o ABC

o Modula0-2+ and 3

o Lisp and Icon

· ABC was the strongest language influencer of this set

· ABC design goals:

o Professionals but not professional programmers (lab personal, scientists, etc.)

o Easy to teach, easy to learn, easy to use

· Parts of ABC most liked by Guido:

o Design iterations based on user testing

§ E.g. colon before indented blocks

o Simple design: IF, WHILE, FOR, …

o Indentation for grouping (Knuth, occam)

o Tuples, lists, dictionaries (though changed)

o Immutable data types

o No limits

o The >>> prompt

· Parts of ABC that most needed improvement:

o Monolithic design – not extensible

§ E.g. no graphics, not easily added

o Invented non-standard terminology

§ E.g. “how-to” instead of “procedure”

o ALL’CAPS keywords

o No integration with rest of system

§ No file-based I/O (persistent variables instead)

· The beginnings of Python:

o Amoeba project at CWI

§ Writing apps in C and sh and wanting something in between

· Python design philosophy:

o Borrow ideas whenever it makes sense

o As simple as possible, no simpler (Einstein)

o Do one thing well (UNIX)

o Don’t fret about performance (fix it later)

o Go with the flow (don’t fight environment)

o Perfection is the enemy of the good

o Cutting corners is okay (get back to it later)

· User Centric Design Philosophy:

o Avoid platform ties, but not religiously

o Don’t bother the user with details

o Discourage but allow coding to the platform

o Offer multiple levels of extensibility

o Errors should not be fatal, if possible

o Errors should never pass silently

o Don’t blame the user for bugs in Python

· Core language stabilized quickly in the 1990 to 1991 timeframe

· Early days of active Python community:

o 1990 – internal at CWI

§ More internal use than ABC ever had

§ Internal contributors

o 1991 – first release; python-list@cwi.nl

o 1994 – USENET group comp.lang.python

o 1994 – first workshop (NIST)

o 1995-1999 – from workshops to conferences

o 1995 – Python Software Association

o 1997 – www.python.org goes online

o 1999 – Python Consortium

§ Modeled after X Consortium

o 2001 – Python Software Foundation

§ Modeled after Apache Software Foundation

· Present day Python community:

o PSF runs largest annual Python conference

§ PyCon Atlanta in 2011: 1500 attendees

§ 2012-2013: Toronto; 2014-2015: Bay area

§ Also sponsors regional PyCons world-wide

o EuroPython since 2002

o Many local events, user groups

o python.org

o docs.python.org, mail.python.org, bugs.python.org, hg.python.org,
planet.python.org, wiki.python.org

o Stackoverflow etc.

· Python 2 vs Python 3

o Fixing deep bugs intrinsic in the design

o Avoid two extremes:

§ perpetual backwards compatibility (C++)

§ rewrite from scratch (Perl 6)

o Our approach:

§ evolve the implementation gradually

§ some backwards incompatibilities

§ separate tools to help users cope

Thanks to Guido for doing the well received Python presentation.

Guido’s slides and blog URLS:

· Slides: http://mvdirona.com/jrh/TalksAndPapers/GuidoVanRossum_21_years_of_python.pdf

· Blog: http://python-history.blogspot.com

–jrh

James Hamilton

e: jrh@mvdirona.com

w: http://www.mvdirona.com

b: http://blog.mvdirona.com / http://perspectives.mvdirona.com

4 comments on “Guido van Rossum: 21 Years of Python
  1. Thanks for the update Guido.

    –jrh

  2. My apologies, I misstated the PyCon dates in my slides. In 2012-2013 it will be in the Bay Area (Santa Clara) and in 2014-2015 in Montréal. Sorry for the confusion!!

  3. Sorry, there wasn’t a video released on this one but we do have Guido’s slides posted above.

    –jrh

  4. Adam Baxter says:

    Hi,
    Is there audio or video of this talk available anywhere? It sounds really interesting.

Leave a Reply

Your email address will not be published. Required fields are marked *