History of Python

https://www.python.org/

https://en.wikipedia.org/wiki/Python_(programming_language)

WHAT IS PYTHON?

Python is a general purpose, interpreted, high-level, and open source computer programming language.

The creator of Python is Guido van Rossum. His title given by the Python community is 'Benevolent Dictator for Life' (BDFL). He stepped down from the position on 2018.

[ GvR ]

The Python Software Foundation (2001) is responsible for developing the core Python distribution, managing intellectual rights, developer conferences including 'PyCon', and raising funds.

Python's development is conducted largely through the 'Python Enhancement Proposal' (PEP) process, the primary mechanism for proposing major new features, collecting community input on issues and documenting Python design decisions. Python coding style is covered in PEP 8.

Python was named after the BBC TV show 'Monty Python's Flying Circus'.

Python's release culture: X.Y.Z
X is a main branch ('earth-shattering'), X=2 or X=3 today,
Y denotes major releases (new features), 3.12 today,
Z denotes bug-fix releases.

FEATURES

APPLICATION DOMAINS

SHORTCOMINGS

https://wiki.python.org/moin/GlobalInterpreterLock

https://realpython.com/python-gil/

Speed. But:
(a) Some parts of Python run with C speed (specialized libraries).
(b) Coding time is reduced, many ideas can be implemented and tested (making working prototypes).
(c) Sometimes there are other slow components: internet connection, database response, etc.
(d) Faster algorithms can be used.
(e) There are tools to improve the Python performance: compilation with Cython, compilation 'just in time' with Numba, caching.

Python GIL (Global Interpreter Lock).
It is a mutex (or a lock) that protects access to Python objects, preventing multiple threads from executing Python bytecodes at once. This mutex is necessary mainly because CPython's memory management is not thread-safe [threads share the same memory].
(a) Luckily, many potentially blocking or long-running operations, such as I/O, image processing, and NumPy number crunching, happen outside the GIL.
(b) The most popular way to avoid GIL is to use a multiple processes instead of threads (a 'multiprocessing' module).
(c) One can use alternative Python interpreters, not CPython.

PYTHON IMPLEMENTATIONS

https://www.python.org/download/alternatives/

HISTORY

Beginnig: December 1989, a 'hobby' programming project based on ABC language.
Python 1.0, released 1994-01-26
Python 2.0, released 2000-10-16
Python 2.1, released 2002-04-15
Python 2.2, released 2001-12-21
Python 2.3, released 2003-07-29
Python 2.4, released 2004-11-30
Python 2.5, released 2006-09-19
Python 2.6, released 2008-10-01
Python 2.7, released 2010-07-03, status end-of-life from 2020
Python 2.8, it will never be released
Python 3.0, released 2008-12-04
Python 3.1, released 2009-06-27
Python 3.2, released 2011-02-20
Python 3.3, released 2012-09-29
Python 3.4, released 2014-03-17
Python 3.5, released 2015-09-13
Python 3.6, released 2016-12-23
Python 3.7, released 2018-06-27
Python 3.8, released 2019-10-14
Python 3.9, released 2020-10-05, the last version providing some Py2 backward compatibility layers
Python 3.10, released 2021-10-04
Python 3.11, released 2022-10-24
Python 3.12, released 2023-10-02