词条 | History of Python |
释义 |
The programming language Python was conceived in the late 1980s,[1] and its implementation was started in December 1989[2] by Guido van Rossum at CWI in the Netherlands as a successor to ABC capable of exception handling and interfacing with the Amoeba operating system.[3] 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 (BDFL).[4][5] Python was named for the BBC TV show Monty Python's Flying Circus.[6] Python 2.0 was released on October 16, 2000, with many major new features, including a cycle-detecting garbage collector (in addition to reference counting) for memory management and support for Unicode. However, the most important change was to the development process itself, with a shift to a more transparent and community-backed process.[7] Python 3.0, a major, backwards-incompatible release, was released on December 3, 2008[8] after a long period of testing. Many of its major features have also been backported to the backwards-compatible Python 2.6 and 2.7.[9] On July 12, 2018, Guido van Rossum stepped down as leader.[10] Early historyIn February 1991, van Rossum published the code (labeled version 0.9.0) to alt.sources.[11] Already present at this stage in development were classes with inheritance, exception handling, functions, and the core datatypes of Version 1Python reached version 1.0 in January 1994. The major new features included in this release were the functional programming tools The last version released while Van Rossum was at CWI was Python 1.2. In 1995, Van Rossum continued his work on Python at the Corporation for National Research Initiatives (CNRI) in Reston, Virginia whence he released several versions. By version 1.4, Python had acquired several new features. Notable among these are the Modula-3 inspired keyword arguments (which are also similar to Common Lisp's keyword arguments) and built-in support for complex numbers. Also included is a basic form of data hiding by name mangling, though this is easily bypassed.[13] During Van Rossum's stay at CNRI, he launched the Computer Programming for Everybody (CP4E) initiative, intending to make programming more accessible to more people, with a basic "literacy" in programming languages, similar to the basic English literacy and mathematics skills required by most employers. Python served a central role in this: because of its focus on clean syntax, it was already suitable, and CP4E's goals bore similarities to its predecessor, ABC. The project was funded by DARPA.[14] {{As of|2007}}, the CP4E project is inactive, and while Python attempts to be easily learnable and not too arcane in its syntax and semantics, reaching out to non-programmers is not an active concern.[15] BeOpenIn 2000, the Python core development team moved to BeOpen.com to form the BeOpen PythonLabs team. CNRI requested that a version 1.6 be released, summarizing Python's development up to the point at which the development team left CNRI. Consequently, the release schedules for 1.6 and 2.0 had a significant amount of overlap.[7] Python 2.0 was the only release from BeOpen.com. After Python 2.0 was released by BeOpen.com, Guido van Rossum and the other PythonLabs developers joined Digital Creations. The Python 1.6 release included a new CNRI license that was substantially longer than the CWI license that had been used for earlier releases. The new license included a clause stating that the license was governed by the laws of the State of Virginia. The Free Software Foundation argued that the choice-of-law clause was incompatible with the GNU General Public License. BeOpen, CNRI and the FSF negotiated a change to Python's free software license that would make it GPL-compatible. Python 1.6.1 is essentially the same as Python 1.6, with a few minor bug fixes, and with the new GPL-compatible license.[16] Version 2Python 2.0, released October 2000[7], introduced list comprehensions, a feature borrowed from the functional programming languages SETL and Haskell. Python's syntax for this construct is very similar to Haskell's, apart from Haskell's preference for punctuation characters and Python's preference for alphabetic keywords. Python 2.0 also introduced a garbage collection system capable of collecting reference cycles.[7] Python 2.1 was close to Python 1.6.1, as well as Python 2.0. Its license was renamed Python Software Foundation License. All code, documentation and specifications added, from the time of Python 2.1's alpha release on, is owned by the Python Software Foundation (PSF), a non-profit organization formed in 2001, modeled after the Apache Software Foundation.[16] The release included a change to the language specification to support nested scopes, like other statically scoped languages.[17] (The feature was turned off by default, and not required, until Python 2.2.) A major innovation in Python 2.2 was the unification of Python's types (types written in C) and classes (types written in Python) into one hierarchy. This single unification made Python's object model purely and consistently object oriented.[18] Also added were generators which were inspired by Icon.[19] Python 2.5 was released on September 2006 [20] and introduced the Python 2.6 was released to coincide with Python 3.0, and included some features from that release, as well as a "warnings" mode that highlighted the use of features that were removed in Python 3.0.[22][9] Similarly, Python 2.7 coincided with and included features from Python 3.1,[23] which was released on June 26, 2009. Parallel 2.x and 3.x releases then ceased, and Python 2.7 was the last release in the 2.x series.[24] In November 2014, it was announced that Python 2.7 would be supported until 2020, but users were encouraged to move to Python 3 as soon as possible.[25] Version 3Python 3.0 (also called "Python 3000" or "Py3K") was released on December 3, 2008.[8] It was designed to rectify fundamental design flaws in the language—the changes required could not be implemented while retaining full backwards compatibility with the 2.x series, which necessitated a new major version number. The guiding principle of Python 3 was: "reduce feature duplication by removing old ways of doing things". Python 3.0 was developed with the same philosophy as in prior versions. However, as Python had accumulated new and redundant ways to program the same task, Python 3.0 had an emphasis on removing duplicative constructs and modules, in keeping with "There should be one— and preferably only one —obvious way to do it". Nonetheless, Python 3.0 remained a multi-paradigm language. Coders still had options among object-orientation, structured programming, functional programming and other paradigms, but within such broad choices, the details were intended to be more obvious in Python 3.0 than they were in Python 2.x. CompatibilityPython 3.0 broke backward compatibility, and much Python 2 code does not run unmodified on Python 3. Python's dynamic typing combined with the plans to change the semantics of certain methods of dictionaries, for example, made perfect mechanical translation from Python 2.x to Python 3.0 very difficult. A tool called "2to3" does the parts of translation that can be done automatically. At this, 2to3 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.[26] 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 2to3. Edits to the Python 3.x code were discouraged for so long as the code needed to run on Python 2.x.[9] This is no longer recommended; as of 2012 the preferred approach is to create a single code base that can run under both Python 2 and 3 using compatibility modules.[27] FeaturesSome of the major changes included for Python 3.0 were:
Subsequent releases in the Python 3.x series have included additional, substantial new features; all ongoing development of the language is done in the 3.x series. Version release datesRelease dates for the major and minor versions:[32][33]
See also
References1. ^1 2 {{cite web|url = http://www.artima.com/intv/pythonP.html|title = The Making of Python|accessdate = March 22, 2007|publisher = Artima Developer}} 2. ^{{cite web|url = http://python-history.blogspot.com/2009/01/brief-timeline-of-python.html|title = A Brief Timeline of Python|accessdate = 2009-01-20|publisher = Guido van Rossum}} 3. ^1 {{ 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 | accessdate = March 22, 2007}} 4. ^{{cite web|url=http://www.artima.com/weblogs/viewpost.jsp?thread=235725|title=Origin of BDFL|author=Guido van Rossum|date=July 31, 2008|accessdate=August 1, 2008}} 5. ^{{cite web|url=http://www.eweek.com/c/a/Application-Development/Python-Creator-Scripts-Inside-Google/|title=Python Creator Scripts Inside Google|publisher=www.eweek.com|accessdate=May 13, 2008|last=|first=}} 6. ^{{cite web|url=https://docs.python.org/2/faq/general.html#why-is-it-called-python|title=General Python FAQ - Why is it called Python?}} 7. ^1 2 3 {{cite web|url = http://www.amk.ca/python/2.0/|title = What's New in Python 2.0|author = A.M. Kuchling and Moshe Zadka|accessdate = March 22, 2007|archivedate=December 14, 2009|archiveurl=https://web.archive.org/web/20091214142515/http://www.amk.ca/python/2.0}} 8. ^1 {{cite web|url=https://www.python.org/download/releases/3.0/|title=Welcome to Python.org|author=|date=|work=python.org|accessdate=December 27, 2016}} 9. ^1 2 {{cite web|url=https://www.python.org/dev/peps/pep-3000/|title=PEP 3000 -- Python 3000|author=|date=|work=python.org|accessdate=December 27, 2016}} 10. ^{{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 |accessdate=July 12, 2018 |work=Linux Journal |date=July 12, 2018 |language=en}} 11. ^{{cite web|url=https://raw.githubusercontent.com/python/cpython/master/Misc/HISTORY|title=HISTORY|publisher=Python Foundation|work=Python source distribution|accessdate=2017-11-23}} 12. ^{{cite web|url = http://www.artima.com/weblogs/viewpost.jsp?thread=98196|title = The fate of reduce() in Python 3000|author = Guido van Rossum|accessdate = 2007-03-22|publisher = Artima Developer}} 13. ^{{cite web|url=http://www.amk.ca/python/writing/12-14|title=LJ #37: Python 1.4 Update|accessdate=2007-04-29|deadurl=yes|archiveurl=https://web.archive.org/web/20070501080219/http://www.amk.ca/python/writing/12-14|archivedate=May 1, 2007|df=mdy-all}} 14. ^{{cite web|url = https://www.python.org/doc/essays/cp4e/|author = Guido van Rossum|title = Computer Programming for Everybody|accessdate = 2007-03-22}} 15. ^{{cite web|url = https://www.python.org/cp4e/|title = Computer Programming for Everybody|accessdate = 2007-03-22|publisher = Python Software Foundation|deadurl = yes|archiveurl = https://web.archive.org/web/20070329060757/http://www.python.org/cp4e/|archivedate = March 29, 2007|df = mdy-all}} 16. ^1 {{cite web|url = https://www.python.org/doc/2.5/lib/node951.html|title = History of the software|work = Python Library Reference|accessdate = 2007-03-22|deadurl = yes|archiveurl = https://web.archive.org/web/20070329061639/http://www.python.org/doc/2.5/lib/node951.html|archivedate = March 29, 2007|df = mdy-all}} 17. ^{{cite web|url = https://www.python.org/dev/peps/pep-0227/|title = Statically Nested Scopes|author = Jeremy Hylton|accessdate = 2007-03-22}} 18. ^{{cite web|url= https://www.python.org/doc/2.2.3/whatsnew/sect-rellinks.html|title= PEPs 252 and 253: Type and Class Changes|accessdate= 2008-09-05|author= A.M. Kuchling|date= 2001-12-21|work= What's New in Python 2.2|publisher= Python Foundation|deadurl= yes|archiveurl= https://web.archive.org/web/20080917162106/http://python.org/doc/2.2.3/whatsnew/sect-rellinks.html|archivedate= September 17, 2008|df= mdy-all}} 19. ^{{cite web |url=https://www.python.org/dev/peps/pep-0255|title= PEP 255: Simple Generators|accessdate=2008-09-05 |author= A.M. Kuchling|date= 2001-12-21|work= What's New in Python 2.2|publisher= Python Foundation}} 20. ^https://www.python.org/download/releases/2.5/ 21. ^https://www.python.org/download/releases/2.5/highlights/ 22. ^{{cite web|url=https://www.python.org/dev/peps/pep-0361/|title=PEP 361 -- Python 2.6 and 3.0 Release Schedule|date=2006-06-29|author1=Neal Norwitz|author2=Barry Warsaw|accessdate=2012-10-07}} 23. ^{{cite web|url=https://docs.python.org/release/2.7/whatsnew/2.7.html|title=What’s New in Python 2.7|date=2010-07-03|quote=Much as Python 2.6 incorporated features from Python 3.0, version 2.7 incorporates some of the new features in Python 3.1. The 2.x series continues to provide tools for migrating to the 3.x series.|author=A.M. Kuchling|accessdate=2012-10-07}} 24. ^{{cite web|url=https://www.python.org/dev/peps/pep-0404/|title=PEP 404 -- Python 2.8 Un-release Schedule|date=2011-11-09|author=Barry Warsaw|accessdate=2012-10-07}} 25. ^{{cite web|url=http://www.i-programmer.info/news/216-python/7179-python-27-to-be-maintained-until-2020.html|title=Python 2.7 To Be Maintained Until 2020|first=|last=Editor|date=|work=i-programmer.info|accessdate=December 27, 2016}} 26. ^Sam Ruby, 2to3, September 1, 2007 27. ^Nick Coghlan, Python 3 Q & A, June 29, 2012 28. ^{{cite web|url=https://www.python.org/dev/peps/pep-3105/|title=PEP 3105 -- Make print a function|author=|date=|work=python.org|accessdate=December 27, 2016}} 29. ^{{cite web|url=http://www.artima.com/weblogs/viewpost.jsp?thread=211200|title=Python 3000 FAQ|first=Guido van van|last=Rossum|date=|work=artima.com|accessdate=December 27, 2016}} 30. ^{{cite web|url=https://www.python.org/dev/peps/pep-3107/|title=PEP 3107 -- Function Annotations|author=|date=|work=python.org|accessdate=December 27, 2016}} 31. ^[https://www.python.org/dev/peps/pep-3137/ PEP 3137]: Immutable Bytes and Mutable Buffer 32. ^{{cite web|url=https://www.python.org/download/releases|title=Welcome to Python.org|author=|date=|work=python.org|accessdate=December 27, 2016}} 33. ^{{cite web|url=http://python-history.blogspot.com/2009/01/brief-timeline-of-python.html|title=The History of Python|author=Guido van Rossum|date=January 20, 2009|accessdate=March 3, 2018}} External links
2 : History of software|Python (programming language) |
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。