Python (programming language)
Overview
Python is a high-level, interpreted programming language that places a strong emphasis on code readability, enabling clear programming on both small and large scales. Conceived in the late 1980s and first released in 1991 by Guido van Rossum, Python was developed as a successor to the ABC language. Python 2.0, released in 2000, introduced significant features such as list comprehensions and a garbage collection system that utilizes reference counting.
Features and Philosophy
Python is a multi-paradigm programming language, fully supporting object-oriented programming and structured programming. It also accommodates functional programming and aspect-oriented programming through many of its features. Other paradigms, including design by contract and logic programming, are supported via extensions.
Python employs dynamic typing and a combination of reference counting and a cycle-detecting garbage collector for memory management. It also features dynamic name resolution, which binds method and variable names during program execution.
Syntax and Semantics
Python is designed to be an easily readable language. Its formatting is visually uncluttered, and it often uses English keywords where other languages use punctuation. Python aims to be simple and consistent in the design of its syntax, with a small number of powerful constructs and few syntactic exceptions.
Libraries and Frameworks
One of Python's greatest strengths is its large standard library, which provides tools suited to many tasks. For Internet-facing applications, many standard formats and protocols such as MIME and HTTP are supported. It includes modules for creating graphical user interfaces, connecting to relational databases, generating pseudorandom numbers, arithmetic with arbitrary precision decimals, manipulating regular expressions, and unit testing.
Development Environments
Python's developers strive to avoid premature optimization, and reject patches to non-critical parts of the CPython reference implementation that would offer marginal increases in speed at the cost of clarity. When speed is important, a Python programmer can move time-critical functions to extension modules written in languages such as C, or use PyPy, a just-in-time compiler.