Content deleted Content added
Shortened last example, removed unnecessary information→Features |
Copied from main Python article. |
||
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 is Python's principal author, and his continuing central role in deciding the direction of Python is 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> (However, Van Rossum stepped 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>
Python 2.0 was released on October 16, 2000, with many major new features,
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 have also been [[backport]]ed to the backwards-compatible, though now-unsupported, Python 2.6 and 2.7.<ref name="pep-3000" /> 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>
==Early history==
Line 63:
===Compatibility===
Python 3.0 broke backward compatibility, and much Python 2 code does not run unmodified on Python 3.<ref>{{Cite web |title=PEP 3000 – Python 3000 {{!}} peps.python.org |url=https://peps.python.org/pep-3000/#compatibility-and-transition |access-date=2022-06-02 |website=peps.python.org |archive-date=April 2, 2022 |archive-url=https://web.archive.org/web/20220402165138/https://peps.python.org/pep-3000/#compatibility-and-transition |url-status=live}}</ref> Python's [[dynamic typing]] combined with the plans to change the semantics of certain methods of dictionaries, for example, made perfect [[source-to-source compiler|mechanical translation]] from Python 2.x to Python 3.0 very difficult. A tool called "<code>2to3</code>" does the parts of translation that can be done automatically. At this, <code>2to3</code> appeared to be fairly successful, though an early review noted that there were aspects of translation that such a tool would never be able to handle.<ref>{{Cite web |last=Ruby |first=Sam |date=September 1, 2007 |title=2to3 |url=https://intertwingly.net/blog/2007/09/01/2to3 |url-status=live |archive-url=https://web.archive.org/web/20160324182701/https://intertwingly.net/blog/2007/09/01/2to3 |archive-date=March 24, 2016 |access-date=2024-09-06 |website=intertwingly.net}}</ref> Prior to the roll-out of Python 3, projects requiring compatibility with both the 2.x and 3.x series were recommended to have one source (for the 2.x series), and produce releases for the Python 3.x platform using <code>2to3</code>. Edits to the Python 3.x code were discouraged for so long as the code needed to run on Python 2.x.<ref name="pep-3000" /> This is no longer recommended; as of 2012 the preferred approach was to create a single code base that can run under both Python 2 and 3 using compatibility modules.<ref>{{Cite web |last=Coghlan |first=Alyssa |date=April 21, 2020 |title=Python 3 Q & A – Alyssa Coghlan's Python Notes |url=https://python-notes.curiousefficiency.org/en/latest/python3/questions_and_answers.html#other-changes |access-date=2024-09-06 |website=python-notes.curiousefficiency.org}}</ref>
===Features===
|