Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    The History of Python

    python-history.blogspot.com · Personal blog · on HN since 2009

    Guido van Rossum writes the history of Python, covering the origins of its design choices and features.

    Visit blogHN submissions
    Languages & CompilersHistoryProgramming
    What HN says

    HN commenters use it as a primary source for why Python works as it does and how it relates to other languages.

    Stats for nerds
    88HN people shared it
    51linked in comments
    747story points
    May 2026last shared
    2009people per year2026

    Top posts on HN

    1. 1
      Origins of Python's “Functional” Features (2009)
      16 people · 177 points · first shared 2009 · 34 comments on HN
    2. 2
      Why Python's integer division floors (2010)
      7 people · 120 points · first shared 2010 · 98 comments on HN
    3. 3
      Microsoft Ships Python Code in 1996 (2009)
      2 people · 72 points · first shared 2016 · 21 comments on HN
    4. 4
      The History of Python
      3 people · 67 points · first shared 2009 · 11 comments on HN
    5. 5
      Microsoft Ships Python Code... in 1996
      3 people · 47 points · first shared 2009 · 5 comments on HN
    6. 6
      The History of Python: From List Comprehensions to Generator Expressions
      3 people · 43 points · first shared 2010 · 1 comments on HN
    7. 7
      The History of Python: Adding Support for User-defined Classes
      4 people · 41 points · first shared 2009 · 1 comments on HN
    8. 8
      The History of Python: New-style Classes
      1 person · 29 points · first shared 2010 · 15 comments on HN
    9. 9
      The History of Python: How Exceptions Came to be Classes
      2 people · 22 points · first shared 2009 · Discussion on HN
    10. 10
      The History of Python: Python's Design Philosophy
      1 person · 22 points · first shared 2009 · 2 comments on HN

    What HN people wrote when they linked it

    • DonHopkinsJul 2025

      The FORTH-83 standard changed FIG-FORTH's official value of TRUE from 1 to -1 so all its bits were set. That was a rough transition like Python 2=>3, but worth it. It also defined /MOD integer division to be floored (rounded towards -infinity instead of zero like FIG-FORTH), which was also a tough change but the right one, especially for graphics.

      https://python-history.blogspot.com/2010/08/why-pythons-integer-division-floors.html

      https://forth-standard.org/standard/diff?utm_source=chatgpt.com

      https://atariwiki.org/wiki/Wiki.jsp?page=Converting+FIG-Forth+Programs+to+Forth-83&utm_source=chatgpt.com

      >4. For various reasons the definition of all divide functions general effect is that quotients are floored instead of rounded toward zero. This should cause no problems for most pre-existing application software. The new divide functions are marginally slower than the old (a few machine cycles under most circumstances). The side-effects of the redefinition for floored divide can be counter-intuitive under some circumstances. For example, in FIG-Forth the operation

      -40 360 MOD >would return the obvious answer (-40) on the stack, while 83- Standard Forth will return the answer 320!

      >5. The true flag returned by all logical operations has been changed from the value 1 (in FIG-Forth) to the value -1 (in Forth-83, all bits set). If your code used the 0 or 1 returned by a comparison in an arithmetic operation, you will need to interpolate the operator ABS after the logical…

    • LammyFeb 2025

      Is Delphi's name any sort of reference to triumphing over the Python language? Delphi is where Apollo slew the Python: https://www2.classics.upenn.edu/myth/php/hymns/index.php?page=apollo

      “The story of Apollo at Delphi begins with the god's conquest of the Python. According to some ancient accounts, the Python protected the oracle of Gaia, the mother of the gods and first inhabitant of the site. As described in the Homeric Hymn to Apollo, Apollo slew the serpent and then spent eight years on leave, in order to cleanse himself. Zeus also played a role in Delphi's mythological construction. Wanting to find the center of the Earth, Zeus sent out two eagles at opposite ends of the Earth. They collided at Delphi, and Zeus concluded Delphi was the "omphalos," or navel of the world.”

      According to Guido's timeline, Python began development in 1989, had its first release to `alt.sources` in 1991, and had its 1-point-0 release in 1994, so it's possible that people at Borland could have been aware of it by 1995: https://python-history.blogspot.com/2009/01/brief-timeline-of-python.html

      Wikipedia suggests not however: “Delphi was originally one of many codenames of a pre-release development tool project at Borland. Borland developer Danny Thorpe suggested the Delphi codename in reference to the Oracle at Delphi. One of the design goals of the product was to provide database connectivity to programmers as a key feature and a popular database package at the time was Oracle database;…

    • jashkenasMar 2012

      Sure.

      PHP's "deep thought" was that in the context of building dynamic web pages, perhaps it made sense to embed a scripting language into HTML itself -- instead of calling out to an external program. There's an example of the initial idea being responsible for much of PHP's enduring success.

      And here's an anecdote that explains how it was (lack of) readability in significant indentation that led to Python getting its colon:

      > In 1978, in a design session in a mansion in Jabłonna (Poland),
      > Robert Dewar, Peter King, Jack Schwartz and Lambert were
      > comparing various alternative proposed syntaxes for B, by
      > comparing (buggy) bubble sort implementations written down in
      > each alternative. Since they couldn't agree, Robert Dewar's wife
      > was called from her room and asked for her opinion, like a
      > modern-day Paris asked to compare the beauty of Hera, Athena,
      > and Aphrodite. But after the first version was explained to her,
      > she remarked: "You mean, in the line where it says: 'FOR i ... ',
      > that it has to be done for the lines that follow; not just for
      > that line?!" And here the scientists realized that the
      > misunderstanding would have been avoided if there had been a colon
      > at the end of that line.

      (from http://python-history.blogspot.com/)

    • duckerudeFeb 2021

      > in fact, I would have gone a step further and made integer division return fractions rather than floats by default, as well

      This was decided against in Python:

      > ABC had two types of numbers at run time; exact numbers which were represented as arbitrary precision rational numbers and approximate numbers which were represented as binary floating point with extended exponent range. The rational numbers didn’t pan out in my view. (Anecdote: I tried to compute my taxes once using ABC. The program, which seemed fairly straightforward, was taking way too long to compute a few simple numbers. Upon investigation it turned out that it was doing arithmetic on numers with thousands of digits of precision, which were to be rounded to guilders and cents for printing.)

      https://python-history.blogspot.com/2009/02/early-language-design-and-development.html

    • archgoonNov 2011

      >>... Python (which was, after all, originally designed as a language for teaching OO concepts).

      This isn't quite right. The teaching language was ABC, a different project that Guido worked on. Python was his own language, created for the Amoeba project (an OS research project), inspired and influenced by, but not the same as, ABC, which was not object oriented. Guido says that the purpose of python for the Amoeba project was to: "bridge the gap between C and the shell"

      http://en.wikipedia.org/wiki/ABC_%28programming_language%29

      http://python-history.blogspot.com/2009/01/personal-history-part-1-cwi.html

      However, if you have additional information, I'd love to hear about it. I've heard the "Python was originally a teaching language" several times, but as far as I can tell, that's not actually true.

    • icebrainingSep 2017

      Actually, Python does have that :) It's called __slots__:

      The presence of __slots__ does several things. First, it restricts the valid set of attribute names on an object to exactly those names listed. Second, since the attributes are now fixed, it is no longer necessary to store attributes in an instance dictionary, so the __dict__ attribute is removed. Instead, the attributes can be stored in predetermined locations within an array. Thus, every slot attribute is actually a descriptor object that knows how to set/get each attribute using an array index. Underneath the covers, the implementation of this feature is done entirely in C and is highly efficient.

      http://python-history.blogspot.be/2010/06/inside-story-on-new-style-classes.html

    Related

    Guido van Rossumneopythonic.blogspot.com105 people

    Guido van Rossum: Before Python

    Guido van Rossum
    Personal · last shared 2025
    Hillel Waynehillelwayne.com294 people

    1/0 = 0

    Hillel Wayne
    Personal · last shared 2026
    Anton Howesantonhowes.substack.com20 people

    Why wasn't the steam engine invented earlier? Part II

    Anton Howes
    Personal · last shared 2023
    The Old New Thingblogs.msdn.microsoft.com/oldnewthing287 people

    A customer reported an error in the map used by Flight Simulator

    The Old New Thing
    Company · last shared 2020
    Age of Inventionageofinvention.xyz23 people

    Age of Invention: The Coal Conquest

    Age of Invention
    Personal · last shared 2026
    Two-Bit Historytwobithistory.org100 people

    How Lisp Became God's Own Programming Language

    Two-Bit History
    Personal · last shared 2026
    James Iryjames-iry.blogspot.com143 people

    A Brief, Incomplete, and Mostly Wrong History of Programming Languages

    James Iry
    Personal · last shared 2026
    Bertrand Meyerbertrandmeyer.com47 people

    Introduction to the Theory of Programming Languages (1991)

    Bertrand Meyer
    Personal · last shared 2026