David Beazley's talk at US PyCon 2018, about parser generators, reminded me I should write a bit about its history. Here's a brief brain dump (maybe I'll expand later). There are actually two p...
http://python-history.blogspot.com/2018/05/the-origins-of-pgen.html
Writing up the reasons why True and False, when introduced, weren't reserved words, I realized there's another interesting lesson in the history of Python's bool type. It was formally introduced ...
http://python-history.blogspot.com/2013/11/the-history-of-bool-true-and-false.html
I received an interesting question in the mail recently: > What is the difference between keywords and literals? Why are True > and False keywords rather than literals in pyth...
http://python-history.blogspot.com/2013/11/story-of-none-true-false.html
There was some speculation on python-ideas today on whether Python's metaclass design came from Ruby. It did not. And as long as we are speculating about the origins of language features, I feel...
http://python-history.blogspot.com/2013/10/origin-of-metaclasses-in-python.html
I was asked on Twitter why Python uses 0-based indexing, with a link to a new (fascinating) post on the subject (http://exple.tive.org/blarg/2013/10/22/citation-needed/ ). I recall thinking about...
http://python-history.blogspot.com/2013/10/why-python-uses-0-based-indexing.html
In a recent post on my other blog I mentioned a second-hand story about how Python's indentation was invented by the wife of Robert Dewar. I added that I wasn't very sure of the details, and I'm...
http://python-history.blogspot.com/2011/07/karin-dewar-indentation-and-colon.html
I was asked (again) today to explain why integer division in Python returns the floor of the result instead of truncating towards zero like C. For positive numbers, there's no surprise: >>...
http://python-history.blogspot.com/2010/08/why-pythons-integer-division-floors.html
List comprehensions were added in Python 2.0. This feature originated as a set of patches by Greg Ewing with contributions by Skip Montanaro and Thomas Wouters. (IIRC Tim Peters also strongly end...
http://python-history.blogspot.com/2010/06/from-list-comprehensions-to-generator.html
In languages that use multiple inheritance, the order in which base classes are searched when looking for a method is often called the Method Resolution Order, or MRO. (In Python this also applie...
http://python-history.blogspot.com/2010/06/method-resolution-order.html
The antigravity module, referencing the XKCD comic mentioning Python , was added to Python 3 by Skip Montanaro. You can read more about it here, one of the first spottings that I know of: http://...
http://python-history.blogspot.com/2010/06/import-antigravity.html
Barry Warsaw posted an interesting blog that tells an obscure part of Python history (the kind I like to keep alive): http://www.wefearchange.org/2010/06/import-this-and-zen-of-python.html
http://python-history.blogspot.com/2010/06/import-this-and-zen-of-python.html
On the surface, new-style classes appear very similar to the original class implementation. However, new-style classes also introduced a number of new concepts: low-level constructors named __...
http://python-history.blogspot.com/2010/06/inside-story-on-new-style-classes.html
Earlier, I described how the addition of classes to Python was essentially an afterthought. The implementation chosen was definitely an example of Python's "cut corners" philosophy. However, as...
http://python-history.blogspot.com/2010/06/new-style-classes.html
In Python’s original implementation, classes were first class objects that could be manipulated just like any other object. However, the process of creating a class object was something that wa...
http://python-history.blogspot.com/2009/04/metaclasses-and-extension-classes-aka.html
There's now a Japanese translation of this blog. Yay! There is also a Spanish version , and a French version (sorry, I don't know the URL yet -- let me know if you do). I don't read those langu...
http://python-history.blogspot.com/2009/04/new-now-in-japanese.html
Alright. Fine. In 1995, when I was first exposed to Python, any reference to "snake" was verboten. Python was named after Monty Python , not the reptile. If anybody was attacking, it was Knights ...
http://python-history.blogspot.com/2009/04/and-snake-attacks.html
I have never considered Python to be heavily influenced by functional languages, no matter what people say or think. I was much more familiar with imperative languages such as C and Algol 68 and ...
http://python-history.blogspot.com/2009/04/origins-of-pythons-functional-features.html
When Python was first created, I always envisioned it as a stand-alone program, occasionally linking in third-party libraries. The source code therefore freely defined global names (in the C/link...
http://python-history.blogspot.com/2009/03/great-or-grand-renaming.html
Python’s implementation architecture made it easy to write extension modules written in C right from the start. However, in the early days, dynamic loading technology was obscure enough that su...
http://python-history.blogspot.com/2009/03/dynamically-loaded-modules.html
Python's handling of integer division is an example of early mistake with huge consequences. As mentioned earlier, when Python was created, I abandoned the approach to numbers that had been used ...
http://python-history.blogspot.com/2009/03/problem-with-integer-division.html
Early on, I knew I wanted Python to use exceptions for error handling. However, a critical part of making exceptions work is to come up with some kind of scheme for identifying different kinds of...
http://python-history.blogspot.com/2009/03/how-exceptions-came-to-be-classes.html
New users to Python are sometimes surprised to find out that every part of the language is an executable statement, including function and class definitions. That means that any statement can app...
http://python-history.blogspot.com/2009/03/how-everything-became-executable.html
One of my goals for Python was to make it so that all objects were "first class." By this, I meant that I wanted all objects that could be named in the language (e.g., integers, strings, functi...
http://python-history.blogspot.com/2009/02/first-class-everything.html
Believe it or not, classes were added late during Python’s first year of development at CWI, though well before the first public release. However, to understand how classes were added, it first...
http://python-history.blogspot.com/2009/02/adding-support-for-user-defined-classes.html
An important difference between ABC and Python is the general flavor of the type system. ABC is statically typed which meant that the ABC compiler analyzes the use of types in a program and deci...
http://python-history.blogspot.com/2009/02/pythons-use-of-dynamic-typing.html