Python 3.0 (also called "Python 3000" or "Py3K") was designed to break backwards compatibility with the 2.x series in order to repair perceived flaws in the language. The guiding principle was to "reduce feature duplication by removing old ways of doing things".
===Philosophy===
Line 56:
===Controversy===
Input/output operations on Python 3.0 was found to be significantly slower than the 2.x branch. However these issues were mostly resolved in the 3.1 version.<ref>{{cite web | url=http://www.gtsystem.eu/blog/2009/08/improved-performance-of-python-31/ | title = Improved performance of Python 3.1 | accessdate=2010-05-25}}</ref>
==Influences from other languages==
Python's core syntax and certain aspects of its philosophy are directly inherited from [[ABC (programming language)|ABC]]. [[C (programming language)|C]] provided some of Python's syntax, and the [[Bourne shell]] served as the model for an interpreter that becomes interactive when run without arguments.<ref name="98-interview">{{cite web |url=http://www.amk.ca/python/writing/gvr-interview |title=Interview with Guido van Rossum|year=1998 |month=July |dateformat=mdy |accessdate=29 2007}}</ref> List comprehensions, anonymous functions, lexical closures and the map function are among the major features borrowed from functional languages, primarily dialects of [[Lisp (programming language)|Lisp]] and [[Haskell (programming language)|Haskell]].<ref name="reduce-fate" /><ref name="newin-2.0" /><ref name="pep-227" /> Generators and iterators were inspired by [[Icon (programming language)|Icon]], and were then fused with the functional programming ideas borrowed into a unified model.<ref name="pep-255" /> [[Modula-3]] was the basis of the exception model and module system.<ref name="venners-interview-pt-1" /><ref name = "faq-created" /> [[Perl]] lent Python [[regular expressions]], used for string manipulation.<ref>http://docs.python.org/library/re.html</ref> Python's standard library additions and syntactical choices were strongly influenced by [[Java (programming language)|Java]] in some cases: the <code>logging</code> package,<ref>{{cite web|url=http://www.python.org/dev/peps/pep-0282/ |title=PEP 282 - A Logging System |publisher=Python.org |date= |accessdate=2008-11-24}}</ref> introduced in version 2.3,<ref>{{cite web|url=http://www.python.org/doc/2.3/whatsnew/node9.html |title=8 PEP 282: The logging Package |publisher=Python.org |date= |accessdate=2008-11-24}}</ref> the [[Simple_API_for_XMLSimple API for XML|SAX]] parser, introduced in 2.0, and the [[Python syntax and semantics#Decorators|decorator]] syntax that uses <code>@</code>,<ref>{{cite web|url=http://www.python.org/dev/peps/pep-0318/ |title=PEP 318 - Decorators for Functions and Methods |publisher=Python.org |date= |accessdate=2008-11-24}}</ref> added in version 2.4<ref>{{cite web|url=http://www.python.org/doc/2.4/whatsnew/node6.html |title=5 PEP 318: Decorators for Functions and Methods |publisher=Python.org |date= |accessdate=2008-11-24}}</ref>
==See also==
Line 70:
* [http://python-history.blogspot.com/ Guido Van Rossum blog on Python's History]