Content deleted Content added
m →Subsequent releases: typo |
m vbump |
||
(9 intermediate revisions by 4 users not shown) | |||
Line 6:
[[File:Python logo and wordmark.svg|alt=|thumb|New Python logo, 2006–present]]
[[File:Guido-portrait-2014.jpg|thumb|Guido van Rossum in 2014]]
The [[programming language]] [[Python (programming language)|Python]] was conceived in the late 1980s,<ref name="venners-interview-pt-1">{{cite web |url=http://www.artima.com/intv/pythonP.html |title=The Making of Python |access-date=March 22, 2007 |publisher=Artima Developer |archive-date=September 1, 2016 |archive-url=https://web.archive.org/web/20160901183332/http://www.artima.com/intv/pythonP.html |url-status=live}}</ref> and its implementation was started in December 1989<ref name="timeline-of-python" /> by [[Guido van Rossum]] at [[Centrum Wiskunde & Informatica|CWI]] in [[the Netherlands]] as a successor to [[ABC (programming language)|ABC]] capable of [[exception handling]] and interfacing with the [[Amoeba (operating system)|Amoeba operating system]].<ref name="faq-created">{{cite web |url=https://www.python.org/doc/faq/general/#why-was-python-created-in-the-first-place |title=Why was Python created in the first place? |publisher=Python FAQ |access-date=March 22, 2007 |archive-date=February 23, 2008 |archive-url=https://web.archive.org/web/20080223222507/http://www.python.org/doc/faq/general/#why-was-python-created-in-the-first-place |url-status=live}}</ref> Van Rossum was Python's principal author and had a central role in deciding the direction of Python (as reflected in the title given to him by the Python community, [[Benevolent dictator for life|''Benevolent Dictator for Life'' (BDFL)]]<ref>{{cite web |url=http://www.artima.com/weblogs/viewpost.jsp?thread=235725 |title=Origin of BDFL |first=Guido |last=van Rossum |date=July 31, 2008 |access-date=August 1, 2008 |archive-date=January 16, 2011 |archive-url=https://web.archive.org/web/20110116210946/http://www.artima.com/weblogs/viewpost.jsp?thread=235725 |url-status=live}}</ref><ref>{{cite web |url=http://www.eweek.com/c/a/Application-Development/Python-Creator-Scripts-Inside-Google/ |title=Python Creator Scripts Inside Google |date=March 7, 2006 |publisher=www.eweek.com |access-date=May 13, 2008 |archive-date=August 9, 2018 |archive-url=https://archive.today/20180809122951/http://www.eweek.com/development/python-creator-scripts-inside-google |url-status=live}}</ref>) until stepping down as leader on July 12, 2018.<ref>{{cite news |last1=Fairchild |first1=Carlie |title=Guido van Rossum Stepping Down from Role as Python's Benevolent Dictator For Life |url=https://www.linuxjournal.com/content/guido-van-rossum-stepping-down-role-pythons-benevolent-dictator-life |access-date=July 12, 2018 |work=Linux Journal |date=July 12, 2018 |language=en |archive-date=July 13, 2018 |archive-url=https://web.archive.org/web/20180713192427/https://www.linuxjournal.com/content/guido-van-rossum-stepping-down-role-pythons-benevolent-dictator-life |url-status=live}}</ref> Python was named after the [[BBC TV]] show ''[[Monty Python's Flying Circus]]''.<ref>{{Cite web |url=https://docs.python.org/3/faq/general.html#why-is-it-called-python |title=General Python FAQ — Python 3.8.3 documentation |website=docs.python.org |access-date=June 4, 2020 |archive-date=October 24, 2012 |archive-url=https://web.archive.org/web/20121024164224/http://docs.python.org/faq/general.html#why-is-it-called-python |url-status=live}}</ref>
Line 12 ⟶ 11:
Python 2.0 was released on October 16, 2000, with many major new features, such as [[list comprehension]]s, [[cycle detection|cycle-detecting]] [[garbage collection (computer science)|garbage collector]], [[reference counting]], [[memory management]] and support for [[Unicode]], along with a change to the development process itself, with a shift to a more transparent and community-backed process.<ref name="newin-2.0">{{cite web |url=http://www.amk.ca/python/2.0/ |title=What's New in Python 2.0 |first1=Andrew M. |last1=Kuchling |first2=Moshe |last2=Zadka |access-date=March 22, 2007 |archive-date=December 14, 2009 |archive-url=https://web.archive.org/web/20091214142515/http://www.amk.ca/python/2.0}}</ref>
Python 3.0, a major, backwards-incompatible release, was released on December 3, 2008<ref name="3.0-release">{{cite web |url=https://www.python.org/download/releases/3.0/ |title=Welcome to Python.org |work=python.org |access-date=December 27, 2016 |archive-date=June 14, 2020 |archive-url=https://web.archive.org/web/20200614153714/https://www.python.org/download/releases/3.0/ |url-status=live}}</ref> after a long period of testing. Many of its major features were also [[backport]]ed to the backwards-compatible Python versions 2.6 and 2.7<ref name="pep-3000" /> until support for Python 2 finally ceased at the beginning of [[2020]]. Releases of Python 3 include the <code>2to3</code> utility, which automates the translation of Python 2 code to Python 3.<ref>{{Cite web|title=2to3 – Automated Python 2 to 3 code translation|url=https://docs.python.org/3/library/2to3.html|access-date=2021-02-02|website=docs.python.org|archive-date=4 June 2020|archive-url=https://web.archive.org/web/20200604232823/https://docs.python.org/3/library/2to3.html|url-status=live}}</ref>
{{As of|2025|08|9|since=n}}, Python 3.13.6 is the latest stable release. This version currently receives full bug-fix and security updates, while Python 3.12—released in October 2023—had active bug-fix support only until April 2025, and since then only security fixes. Python 3.9<ref>{{Cite web |last=Langa |first=Łukasz |date=2022-05-17 |title=Python 3.9.13 is now available |url=https://pythoninsider.blogspot.com/2022/05/python-3913-is-now-available.html |access-date=2022-05-21 |website=Python Insider |archive-date=17 May 2022 |archive-url=https://web.archive.org/web/20220517173546/https://pythoninsider.blogspot.com/2022/05/python-3913-is-now-available.html |url-status=live}}</ref> is the oldest supported version of Python (albeit in the 'security support' phase), because Python 3.8 has become an end-of-life product.<ref>{{Cite web |title=Status of Python versions |url=https://devguide.python.org/versions/ |access-date=2024-10-07 |website=Python Developer's Guide |language=en}}</ref><ref>{{Cite web |date=8 October 2024 |title=Python |url=https://endoflife.date/python |access-date=2024-11-20 |website=endoflife.date |language=en-US }}</ref>
==Early history==
Line 84 ⟶ 85:
Python 3.2 defined a stable [[Application Binary Interface|ABI]], allowing extension modules to rely on functions across different Python versions.
Python 3.5 added the typing module, which allows for [[type
Python 3.6 followed with async [[Generator (computer programming)|generator]]s and async comprehensions ([[List comprehension|for lists]] as well as dicts and sets), as well as formatted [[string literal]]s (f-strings).<ref>{{cite web |editor1-last=Pranskevichus |editor1-first=Elvis |editor2-last=Selivanov |editor2-first=Yury |title=What’s New In Python 3.6 |url=https://docs.python.org/3/whatsnew/3.6.html |website=Python documentation |access-date=5 August 2025 |language=en |date=December 23, 2016}}</ref>
Python 3.10 introduced [[structural pattern matching]] via match/case statements. Additionally it provided improved error messages which "were inspired by previous work in the PyPy interpreter
Python 3.11 expanded [[exception handling (programming)|exception handling]] functionality. Around this version, there has been a focus on making Python faster; 3.11 is claimed to be 10–60% faster than 3.10,<ref>{{Cite web |title=Python 3.11 released [LWN.net] |author=corbet |work=lwn.net |date=24 October 2022 |access-date=15 November 2022 |url=https://lwn.net/Articles/912216/}}</ref> and 3.12 increases by an additional 5%.
Python 3.12 added the new keyword <code>type</code> and improved error messages.
Python 3.13 added an experimental [[Just-in-time compilation|just-in-time (JIT) compiler]], the ability to disable the [[global interpreter lock]], a new and improved interactive interpreter ([[read–eval–print loop|REPL]]), and an incremental [[Garbage collection (computer science)|garbage collector]].<ref>{{Cite web |title=What's New In Python 3.13 |url=https://docs.python.org/3.13/whatsnew/3.13.html#experimental-jit-compiler |access-date=2024-04-30 |website=Python documentation |language=en}}</ref>
Starting with Python 3.13, it and later versions receive two years of full support (increased from one and a half years), followed by three years of security support; this is the same total duration of support as previously.
Python 3.14.0 is now{{as of?|date=August 2025}} in the [[release candidate]] 1 phase. It introduces e.g. a new opt-in interpreter, up to 30% faster.{{cn|date=August 2025}}
Python 3.15 will "Make [[UTF-8]] mode default";<ref>{{Cite web |title=PEP 686 – Make UTF-8 mode default {{!}} peps.python.org |url=https://peps.python.org/pep-0686/ |access-date=2024-11-20 |website=Python Enhancement Proposals (PEPs) |language=en}}</ref> This mode is supported in all current Python versions, but it currently must be opted into. UTF-8 is already used by default on [[Microsoft Windows|Windows]] (and other [[operating system]]s) for most purposes, but an exception is opening files. Enabling UTF-8 also makes code fully [[Cross-platform software|cross-platform]].
==== Security ====
▲Python 3.10 introduced pattern matching via match/case statements. Additionally it provided improved error messages which "were inspired by previous work in the PyPy interpreter."<ref>{{Cite web |title=What's New In Python 3.10 |url=https://docs.python.org/3/whatsnew/3.10.html |access-date=2025-06-12 |website=Python documentation |language=en}}</ref>
Security updates were expedited in 2021 and again twice in 2022. More issues were fixed in 2023 and in September 2024 (for Python versions 3.8.20 through 3.12.6)—all versions (including 2.7)<ref>{{Cite web|title=CVE-2021-3177 |url=https://access.redhat.com/security/cve/cve-2021-3177|access-date=2021-02-26|website=Red Hat Customer Portal |archive-date=6 March 2021|archive-url=https://web.archive.org/web/20210306183700/https://access.redhat.com/security/cve/cve-2021-3177|url-status=live}}</ref> had been insecure because of issues leading to possible [[remote code execution]]<ref>{{Cite web|title=CVE-2021-3177|url=https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3177|access-date=2021-02-26|website=CVE|archive-date=27 February 2021|archive-url=https://web.archive.org/web/20210227192918/https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3177|url-status=live}}</ref> and [[cache poisoning|web-cache poisoning]].<ref>{{Cite web|title=CVE-2021-23336|url=https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-23336|access-date=2021-02-26|website=CVE|archive-date=24 February 2021|archive-url=https://web.archive.org/web/20210224160700/https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-23336|url-status=live}}</ref>
==Table of versions==
Line 264 ⟶ 279:
|-
| {{Version|c|3.13}}
| ''3.13.
| 2024-10-07<ref name="pep-0719" />
| 2026-05<ref name="pep-0719" />{{Update after|2026|05}}
Line 283 ⟶ 298:
{{smalldiv|1=
{{Version|l|show=111111}}
''Italics'' indicates the latest micro version of currently supported versions as of 2025-
}}
Line 364 ⟶ 379:
==References==
{{reflist|1=30em|refs=
<ref name="timeline-of-python">{{cite web |url=
<ref name="downloads">{{cite web|url=https://www.python.org/downloads/|title=Download Python {{!}} Python.org|access-date=2019-11-29|archive-date=August 8, 2018|archive-url=https://web.archive.org/web/20180808035421/https://www.python.org/downloads/|url-status=live}}</ref>
<ref name="releases">{{cite web|url=https://www.python.org/download/releases|title=Releases {{!}} Python.org|access-date=2019-11-29|archive-date=December 22, 2015|archive-url=https://web.archive.org/web/20151222142552/https://www.python.org/download/releases/|url-status=live}}</ref>
Line 401 ⟶ 416:
==External links==
* [
{{DEFAULTSORT:History Of Python}}
|