Python (programming language): Difference between revisions

Content deleted Content added
Further reading: remove an obsolete book from 2008
Xaksham (talk | contribs)
Changed image of Guido van Rossum to a recent image.
 
(8 intermediate revisions by 6 users not shown)
Line 69:
|archive-url=https://web.archive.org/web/20181226141123/http://speakingjs.com/es5/ch03.html%0A
|url-status=live
}}</ref> [[Julia (programming language)|Julia]],<ref name=Julia/> [[Mojo (programming language)|Mojo]],<ref name="Mojo">{{Cite web |last=Krill |first=Paul |date=2023-05-04 |title=Mojo language marries Python and MLIR for AI development |url=https://www.infoworld.com/article/3695588/mojo-language-marries-python-and-mlir-for-ai-development.html |access-date=2023-05-05 |website=InfoWorld |language=en |archive-date=5 May 2023 |archive-url=https://web.archive.org/web/20230505064554/https://www.infoworld.com/article/3695588/mojo-language-marries-python-and-mlir-for-ai-development.html |url-status=live}}</ref> [[Nim (programming language)|Nim]], [[Ring (programming language)|Ring]],<ref name="The Ring programming language and other languages">{{cite web |url=http://ring-lang.sourceforge.net/doc1.6/introduction.html#ring-and-other-languages |title=Ring and other languages |author=Ring Team |date=4 December 2017 |work=ring-lang.net |publisher=[[ring-lang]] |access-date=4 December 2017 |archive-date=25 December 2018 |archive-url=https://web.archive.org/web/20181225175312/http://ring-lang.sourceforge.net/doc1.6/introduction.html#ring-and-other-languages |url-status=live}}</ref> [[Ruby (programming language)|Ruby]], <ref name="bini"/> [[Swift (programming language)|Swift]], <ref name="lattner2014">{{Cite web |url=http://nondot.org/sabre/ |title=Chris Lattner's Homepage |last=Lattner |first=Chris |date=3 June 2014 |access-date=3 June 2014 |publisher=Chris Lattner |quote=The Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list. |archive-date=25 December 2018 |archive-url=https://web.archive.org/web/20181225175312/http://nondot.org/sabre/ |url-status=live}}</ref> [[V (programming language)|V (Vlang)]] <ref name="vpeople">{{Cite web |title=V documentation (Introduction) |url=https://github.com/vlang/v/blob/master/doc/docs.md#introduction |access-date=2024-12-24|website=GitHub |language=en}}</ref>
<!-- Do not put in as there's also a pure Java implementation (Jython): | programming language = [[C (programming language)|C]] -->
| wikibooks = Python Programming
Line 84:
==History==
{{Main|History of Python}}
[[File:Guido van Rossum OSCONin 2006 croppedPyConUS24.pngjpg|thumb|150px311x311px|The designer of Python, [[Guido van Rossum]], at [[O'ReillyPyCon Open Source Convention|OSCON]]US 20062024]]
 
Python was conceived in the late 1980s<ref name="venners-interview-pt-1"/> by [[Guido van Rossum]] at [[Centrum Wiskunde & Informatica]] (CWI) in the [[Netherlands]] as a successor to the [[ABC (programming language)|ABC]] programming language, which was inspired by [[SETL]],<ref name="AutoNT-12"/> capable of [[exception handling]] and interfacing with the [[Amoeba (operating system)|Amoeba]] operating system.<ref name="faq-created"/> Its implementation began in December&nbsp;1989.<ref name="timeline-of-python"/> Van Rossum shouldered sole responsibility for the project, as the lead developer, until 12 July 2018, when he announced his "permanent vacation" from his responsibilities as Python's "[[benevolent dictator for life]]" (BDFL), a title the Python community bestowed upon him to reflect his long-term commitment as the project's chief decision-maker<ref name="lj-bdfl-resignation"/> (he has since come out of retirement and is self-titled "BDFL-emeritus"<!-- on his Twitter-->). In January&nbsp;2019, active Python core developers elected a five-member Steering Council to lead the project.<ref>{{cite web |title=PEP 8100 |url=https://www.python.org/dev/peps/pep-8100/ |publisher=Python Software Foundation |access-date=4 May 2019 |archive-date=4 June 2020 |archive-url=https://web.archive.org/web/20200604235027/https://www.python.org/dev/peps/pep-8100/ |url-status=live}}</ref><ref>{{Cite web|title=PEP 13 – Python Language Governance|url=https://www.python.org/dev/peps/pep-0013/|access-date=2021-08-25|website=Python.org|language=en|archive-date=27 May 2021|archive-url=https://web.archive.org/web/20210527000035/https://www.python.org/dev/peps/pep-0013/|url-status=live}}</ref>
 
Line 116 ⟶ 115:
Some (more) standard library modules and many deprecated classes, functions and methods, will be removed in Python 3.15 or 3.16.<ref>{{Cite web |last=Wouters |first=Thomas |date=2024-04-09 |title=Python Insider: Python 3.12.3 and 3.13.0a6 released |url=https://pythoninsider.blogspot.com/2024/04/python-3123-and-3130a6-released.html |access-date=2024-04-29 |website=Python Insider}}</ref><ref>{{cite web |title=PEP 594 – Removing dead batteries from the standard library |url=https://peps.python.org/pep-0594/ |website=Python Enhancement Proposals |publisher=Python Softtware Foundation |date=20 May 2019}}</ref>
 
Python 3.1411 isadds nowSigstore indigital alphaverification 2;<ref>{{Citesignatures webfor |last=Hugoall |date=2024-10-15CPython |title=Pythonartifacts Insider:(in Pythonaddition 3.14.0to alpha[[Pretty 1 is now availableGood Privacy|url=https://pythoninsider.blogspot.com/2024/10/python-3140-alpha-1-is-now-availablePGP]]).html |access-date=2024-10-16Since |website=Pythonuse Insider}}</ref>of <!--PGP has changesbeen forcriticized annotationsby security practitioners <!-- "PEP 563 [for Python 3.7 also] changed the semantics of annotations. ->, with PEP 649years now"[preserving] nearly all existing behavior of annotations from stock semantics<!- .. This will print <class 'str'-> with stock semantics and <class 'int'> when this PEPPython is active.moving Thisto isSigstore thereforeexclusively aand backwards-incompatibledropping change.PGP However,from this example is poor programming style, so this change seems acceptable3. ->"14.<ref>{{Cite web |title=PEP 649761DeferredDeprecating EvaluationPGP Ofsignatures Annotationsfor UsingCPython Descriptorsartifacts {{!}} peps.python.org |url=https://peps.python.org/pep-06490761/ |access-date=20242025-1001-1606 |website=Python Enhancement Proposals (PEPs) |language=en}}</ref>
 
Python 3.14 is now in alpha 3; <!-- has changes for annotations <!- "PEP 563 [for Python 3.7 also] changed the semantics of annotations. ->, with PEP 649 "[preserving] nearly all existing behavior of annotations from stock semantics<!- .. This will print <class 'str'> with stock semantics and <class 'int'> when this PEP is active. This is therefore a backwards-incompatible change. However, this example is poor programming style, so this change seems acceptable. ->".<ref>{{Cite web |title=PEP 649 – Deferred Evaluation Of Annotations Using Descriptors {{!}} peps.python.org |url=https://peps.python.org/pep-0649/ |access-date=2024-10-16 |website=Python Enhancement Proposals (PEPs) |language=en}}</ref>
 
PEP 649 is an "Accepted PEP" and seemingly implemented in 3.14, however there is under "Open PEPs (under consideration)":
-->regarding possible change to annotations: "In Python 3.14, <code>from __future__ import</code> annotations will continue to work as it did before, converting annotations into strings." <!-- I think there's a minor breaking change if this is *omitted*, though I'm not sure omitting it was valid before while using annotations.
 
"Since PEP 649 was written, Python 3.12 and 3.13 gained support for several new features that also use deferred evaluation, similar to the behavior this PEP proposes for annotations:"--><ref>{{Cite web |title=PEP 749 – Implementing PEP 649 {{!}} peps.python.org |url=https://peps.python.org/pep-0749/ |access-date=2024-11-20 |website=Python Enhancement Proposals (PEPs) |language=en}}</ref>
Line 573 ⟶ 574:
* [[History of programming languages]]
* [[Comparison of programming languages]]
 
{{Clear}}
 
Line 611 ⟶ 613:
 
<ref name="newin-2.0">{{cite web |url=https://docs.python.org/whatsnew/2.0.html |title=What's New in Python 2.0 |last1=Kuchling |first1=A. M. |last2=Zadka |first2=Moshe |date=16 October 2000 |publisher=Python Software Foundation |access-date=11 February 2012 |archive-date=23 October 2012 |archive-url=https://web.archive.org/web/20121023112045/http://docs.python.org/whatsnew/2.0.html |url-status=live}}</ref>
 
<!-- <ref name="3.0-release">{{cite web |url=https://www.python.org/download/releases/3.0/ |title=Python 3.0 Release |publisher=Python Software Foundation |access-date=8 July 2009 |archive-date=14 June 2020 |archive-url=https://web.archive.org/web/20200614153714/https://www.python.org/download/releases/3.0/ |url-status=live}}</ref> -->
 
<ref name="AutoNT-13">{{cite web |url=https://www.python.org/community/pycon/dc2004/papers/24/metaclasses-pycon.pdf |archive-url=https://web.archive.org/web/20090530030205/http://www.python.org/community/pycon/dc2004/papers/24/metaclasses-pycon.pdf |archive-date=30 May 2009 |title=Python Metaclasses: Who? Why? When? |last=The Cain Gang Ltd. |access-date=27 June 2009 |url-status=dead}}</ref>
Line 771:
7. Neutrality on the part of editors is essential. In terms of major debates, items representing all major positions should be included, with annotations indicating the specific POV of each. We may have to work out rules where topic disputes are irreconcilable.
-->
* {{cite book |last=Downey |first=Allen B. |title=Think Python: How to Think Like a Computer Scientist |edition=<!-- rather show here latest: version 2.0.17 ? --->version 1.6.63rd |date=MayJuly 20122024 |publisher=CambridgeO'Reilly University PressMedia |isbn=978-0-521-72596-51098155438 |url=https://allendowney.github.io/ThinkPython/}}
* {{cite book |last=Lutz |first=Mark |title=Learning Python |publisher=O'Reilly Media |year=2013 |edition=5th |isbn=978-0-596-15806-4}}
* {{cite book |last=Summerfield |first=Mark |title=Programming in Python 3 |publisher=Addison-Wesley Professional|year=2009|edition=2nd|isbn=978-0-321-68056-3}}