Development environments[ of python

Development environments[edit]See also: Comparison of integrated development environments § Python
Implementations[edit]
See also: List of Python software § Python implementations
  • Google started a project called Unladen Swallow in 2009 with the aims of increasing the speed of the Python interpreter by 5 times by using the LLVM and improving its multithreading ability to scale to thousands of cores.[87]
  • Psyco is a specialising just in time compiler that integrates with CPython and transforms bytecode to machine code at runtime. The produced code is specialised for certaindata types and is faster than standard Python code.
  • Jython compiles into Java byte code, which can then be executed by every Java virtual machine implementation. This also enables the use of Java class library functions from the Python program.
  • IronPython follows a similar approach in order to run Python programs on the .NET Common Language Runtime.
  • The RPython language can be compiled to CJava bytecode, or Common Intermediate Language, and is used to build the PyPy interpreter of Python.
  • Pyjamas compiles Python to JavaScript.
  • Shed Skin compiles Python to C++.
  • Cython and Pyrex compile to C.
Development[edit]
  • Backwards-incompatible versions, where code is expected to break and must be manually ported. The first part of the version number is incremented. These releases happen infrequently—for example, version 3.0 was released 8 years after 2.0.
  • Major or "feature" releases, which are largely compatible but introduce new features. The second part of the version number is incremented. These releases are scheduled to occur roughly every 18 months, and each major version is supported by bugfixes for several years after its release.[93]
  • Bugfix releases, which introduce no new features but fix bugs. The third and final part of the version number is incremented. These releases are made whenever a sufficient number of bugs have been fixed upstream since the last release, or roughly every 3 months. Security vulnerabilities are also patched in bugfix releases.[94]
Naming[edit]

Most Python implementations (including CPython) can function as a command line interpreter, for which the user enters statements sequentially and receives the results immediately (REPL). In short, Python acts as a shell.
Other shells add capabilities beyond those in the basic interpreter, including IDLE and IPython. While generally following the visual style of the Python shell, they implement features like auto-completion, retention of session state, and syntax highlighting.
In addition to standard desktop Python IDEs (integrated development environments), there are also browser-based IDEs, Sage (intended for developing science and math-related Python programs), and a browser-based IDE and hosting environment, PythonAnywhere.
The main Python implementation, named CPython, is written in C meeting the C89 standard.[79] It compiles Python programs into intermediate bytecode,[80] which is executed by the virtual machine.[81] CPython is distributed with a large standard library written in a mixture of C and Python. It is available in versions for many platforms, including Windowsand most modern Unix-like systems. CPython was intended from almost its very conception to be cross-platform.[82]
PyPy is a fast, compliant[83] interpreter of Python 2.7 and 3.2. Its just-in-time compiler brings a significant speed improvement over CPython.[84] A version taking advantage ofmulti-core processors using software transactional memory is being created.[85]
Stackless Python is a significant fork of CPython that implements microthreads; it does not use the C memory stack, thus allowing massively concurrent programs. PyPy also has a stackless version.[86]
Other just-in-time compilers have been developed in the past, but are now unsupported:
In 2005, Nokia released a Python interpreter for the Series 60 mobile phones called PyS60. It includes many of the modules from the CPython implementations and some additional modules for integration with the Symbian operating system. This project has been kept up to date to run on all variants of the S60 platform and there are several third party modules available. The Nokia N900 also supports Python with GTK widget libraries, with the feature that programs can be both written and run on the device itself.[88]
There are several compilers to high-level object languages, with either unrestricted Python, a restricted subset of Python, or a language similar to Python as the source language:
A performance comparison of various Python implementations on a non-numerical (combinatorial) workload was presented at EuroSciPy '13.[89]
Python's development is conducted largely through the Python Enhancement Proposal (PEP) process. The PEP process is the primary mechanism for proposing major new features, for collecting community input on an issue, and for documenting the design decisions that have gone into Python.[90] Outstanding PEPs are reviewed and commented upon by the Python community and by Van Rossum, the Python project's benevolent dictator for life.[90]
Enhancement of the language goes along with development of the CPython reference implementation. The mailing list python-dev is the primary forum for discussion about the language's development; specific issues are discussed in the Roundup bug tracker maintained at python.org.[91] Development takes place on a self-hosted source code repository running Mercurial.[92]
CPython's public releases come in three types, distinguished by which part of the version number is incremented:
A number of alpha, beta, and release-candidates are also released as previews and for testing before the final release is made. Although there is a rough schedule for each release, this is often pushed back if the code is not ready. The development team monitor the state of the code by running the large unit test suite during development, and using the BuildBot continuous integration system.[95]
The community of Python developers has also contributed over 72,000 software modules (as of January 2016) to the Python Package Index (called PyPI), the official repository of third-party libraries for Python.
The major academic conference on Python is named PyCon. There are special mentoring programmes like the Pyladies.
Python's name is derived from the television series Monty Python's Flying Circus,[96] and it is common to use Monty Python references in example code.[97] For example, themetasyntactic variables often used in Python literature are spam and eggs, instead of the traditional foo and bar.[97][98] As well as this, the official Python documentation often contains various obscure Monty Python references.
The prefix Py- is used to show that something is related to Python. Examples of the use of this prefix in names of Python applications or libraries include Pygame, a binding ofSDL to Python (commonly used to create games); PyS60, an implementation for the Symbian S60 operating system; PyQt and PyGTK, which bind Qt a


Share this

Related Posts

Previous
Next Post »