Python AMA

(A Retrospective and Beyond)

August 2022

Barry Warsaw

barry@python.org

Python 1.1

11 October 1994

  • Truncate toward zero in float -> int conversion
  • "entirely redone operator overloading"
  • Asynchronous signal handling in main thread
  • Double clicking to run pyc files on the Mac
  • X11 extension module / tkinter
  • URL parser
  • curses
  • delattr() & tuple() built-ins
  • __getattr__(), __setattr__(), __delattr__() added
  • Support ancient C and OS versions, 64 bit!

Guido van Rossum's Python World Tour

November 1-3, 1994

National Institute of Standards and Technology

Someday, I'll be the FLUFL!

Workshop Agenda

  1. Requirements for a "Safe" Python interpreter

  2. A standard GUI module interface definition for Python

  3. The requirements for persistent objects in Python

  4. A Python engineering graphs package

  5. The standard Python WWW interface

  6. Embedding Python in a WWW client

  7. Technical information management using Python

  8. Support for dynamic loading of foreign language modules in Python

  9. Replacing make, rcs, and cvs with Python

  10. An Electronic Data Interchange library for Python

  11. Discussing the formation of a Python Consortium

Workshop Agenda

12. compiling Python to a more efficient form (hard -- but not impossible???)


14. static type checking (could help to the previous one)


15. the management of large collections of modules (too many Python scripts currently embed hard pathnames in their main file so they can find their subordinate modules)


16. improving the efficiency of Python (e.g. by using a different  garbage collection scheme)


17. improving portability of Python code between Unix and non-Unix
platforms (your #2 is a special case of this)

Workshop Agenda

(from the fuzzy memory vaults)

  • doc strings
  • metaclasses
  • Objective-C

Python 1.1.1

10 November 1994

  • Bug fixes

Guido and CNRI

Python 1.2

13 April 1995

(2 days before Guido starts at CNRI)

  • "__import__ hack"
  • imp module
  • "add hook for Don Beaudry" in build_class
  • docstrings for modules, classes, functions
  • __doc__; __name__; __self__
  • tp_str, tp_doc
  • support import A.B...Z
  • "restricted mode"
  • "THE GREAT RENAMING"
  • "Use = instead of == for assignment"
  • Class exceptions allowed
  • Classes became pickle-able

Python 1.3

13 October 1995

  • Keyword parameters
  • Third argument to raise
  • "Jim Fulton's abstract object interface"
  • Tk 4.0
  • Rewritten htmllib.py and rexec.py
  • New modules ni.py and ihooks.py
  • "And lots more that you'll have to discover on your own"

Python 1.4

25 October 1996

  • new power operator, new slicing and indexing syntax

  • __names

  • Misc/NEWS

  • __file__

  • Added: site, errno, operator, cmath, Bastion, mimify

  • complex numbers

  • list()

  • "access is no longer a reserved word"

Python 1.5

3 January 1998

  • assert statement, AssertionError
  • import a.b.c (without ni, with __init__.py)
  • New re module (Perl-style regexps)
  • raw strings
  • Class exceptions
  • New dict methods: clear(), copy(), update(), get()
  • $PYTHONHOME and better sys.path calculation
  • multiple interpreters, access to GIL, etc.
  • -O and __debug__ support
  • Grand renaming is complete
  • buffer protocol
  • string interning
  • Better metaclass support (instance base classes)

Python 1.5.1

14 April 1998 (?)

  • No argument raise to re-raise
  • mutex protected import
  • Safer finalization
  • python -t and -tt; tabnanny!

Python 1.5.2

13 April 1999

  • First mention of JPython in Misc/NEWS
  • IDLE, pynche, world, audiopy, ndiff
  • __file__ is the .py file, not the .pyc/.pyo
  • shamodule
  • buffer()
  • python -OO
  • asyncore / asynchat
  • os.path pretends to be a submodule
  • NotImplementedError, EnvironmentError
  • list.extend(), list.pop()

Python 1.6

5 September 2000

  • Built-in exceptions are always classes (no more -X)
  • Lots of sharing w/ Python 2.0
  • Unicode support
  • String methods
  • SRE regular expression engine
  • distutils added!
  • func(*args, **kws) -- apply() no longer needed
  • UnboundLocalError
  • object.__contains__()
  • UserString, mmap, filecmp, urllib2, zipfile, codecs, unicodedata, encodings, 
  • pygettext.py

Python 2.0

16 October 2000

Python 1.6.1

25 February 2001

Python 1.6 was the last of the versions developed at CNRI and the only version issued by CNRI with an open source license. Following the release of Python 1.6, and after Guido van Rossum left CNRI to work with [BeOpen], it became clear that the ability to use Python with software available under the GNU General Public License (GPL) was very desirable. CNRI and the Free Software Foundation (FSF) interacted to develop enabling wording changes to the Python license. Python 1.6.1 is essentially the same as Python 1.6, with a few minor bug fixes, and with a GPL-compatible license.

To infinity and beyond

  • 2.1 - 17 April 2001
  • 2.2 - 21 December 2001 (new style classes)
  • 2.2.1 - import this, True, False, bool
  • 2.3 - 29 July 2003
  • 2.4 - 30 November 2004
  • 2.5 - 16 September 2006
  • 2.6 - 1 October 2008
  • 3.0 - 3 December 2008
  • 2.7 - 3 July 2010

Python today

  • Python 2.7.18 EOL on 01-Jan-2020
  • Python 3.10
  • 4th year of Steering Council
  • Python the language is 30 years old, stable, mature
  • CPython is the most popular implementation
  • Top most popular language (TIOBE, July 2022

 

So what's next?

Python 3.10

04-Oct-2021

  • Structural Pattern Matching
  • Better Debugging Support
  • Several type system features
  • Parenthesized context managers 
  • Better SyntaxErrors and others
  • Improved and deprecated stdlib
  • Some optimizations

Python 3.11

Scheduled 03-Oct-2022

  • 3.11.0b5 is now out
  • Fine-Grained Error Locations
  • Exceptions Groups and except*
  • Task Groups
  • Read-only TOML support in stdlib
  • Faster CPython results (10-60% faster)
  • More type system improvements
  • WebAssembly platforms in tier 3 (soon 2?)

Vibrant Ecosystem

  • Migration to GitHub Issues is complete.
  • Core development moving away from mailing lists to Discourse and Discord
  • Funding to mature and secure the packaging ecosystem
  • PyScript
  • Data Science / Machine Learning more important than ever
  • nogil work?
  • Much more to come from MSFT Faster CPython project.
  • New leaders stepping up (Python & PSF)

Barry Warsaw

barry@python.org

bwarsaw@linkedin.com

@pumpichank

github.com/warsaw

gitlab.com/warsaw

Python AMA

By Barry Warsaw

Python AMA

August 2022 AMA

  • 404