FLUFL's Story Time
(A Python Retrospective)
PyBay 2019
Barry Warsaw
Python Foundation @ LinkedIn
"The current day Python has a lot of important abstractions that weren't present at the time, but the language looked very similar"
GvR, TechRepublic, Aug 6, 2019
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
(Some) Usual Suspects
FLUFL (1st non-Dutch contributor)
(Some) Usual Suspects
Roger Masse, BDFL, FLUFL
(Some) Usual Suspects
Jim Fulton
(Some) Usual Suspects
Ken Manheimer
(Some) Usual Suspects
Paul Everitt
(Some) Usual Suspects
Skip Montanaro
Workshop Agenda
-
Requirements for a "Safe" Python interpreter
-
A standard GUI module interface definition for Python
-
The requirements for persistent objects in Python
-
A Python engineering graphs package
-
The standard Python WWW interface
-
Embedding Python in a WWW client
-
Technical information management using Python
-
Support for dynamic loading of foreign language modules in Python
-
Replacing make, rcs, and cvs with Python
-
An Electronic Data Interchange library for Python
-
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 - beautiful plumage but pinin' for the fjords
- Python 3.7 - latest and greatest
- Python 3.8 in October 2019
- BDFL retirement
- Python the language is 30 years old, stable, mature
- CPython is the most popular implementation
- 3rd most popular language (TIOBE, August 2019)
So what's next?
Barry Warsaw
barry@python.org
bwarsaw@linkedin.com
@pumpichank
github.com/warsaw
gitlab.com/warsaw
A Short History of Python
By Barry Warsaw
A Short History of Python
September 2018 BayPiggies
- 786