Jump to content

Python 3

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by -Barry- (talk | contribs) at 02:56, 6 May 2006 (Perl 6 already has an article, so why not Python 3?). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
Python 3
ParadigmMulti-paradigm
Designed byGuido van Rossum
DeveloperPython Software Foundation
OSCross-platform
LicensePython Software Foundation License
Websitewww.python.org

Naming

Python 3.0, Python 3000, and Py3K are all names for the upcoming version of the Python programming language. The project is called Python 3000, or abbreviated to Py3k. The actual Python release will be officially be referred to as Python 3.0, which is what "python3.0 -V" will print; the actual file names will use the same naming convention used for Python 2.x. There won't be a new name for the executable, and the suffix for Python source files will remain the same.

Timeline

Guido van Rossum, Python 3's designer, hopes to release a first alpha release of a "meta-PEP" timeline sometime in 2007; it may take another year after that (or more) before the first proper release, named Python 3.0.

Parallel Python 2.x and 3.x releases are expected to exist for some time; the Python 2.x releases continuing for a longer time than the traditional 2.x.y bugfix releases. Typically, there are no further bugfix releases for version 2.x once version 2.(x+1) is released, but there's expected to be at least one or two new 2.x releases even after 3.0 (final) has been released, probably well into 3.1 or 3.2. This will to some extent depend on community demand for continued 2.x support, acceptance and stability of 3.0, and volunteer stamina. It's quite possible that Python 3.1 and 3.2 will be released much sooner after 3.0 than has been customary for the 2.x series. The 3.x release pattern will stabilize once the community is happy with 3.x.

Compatibility and Transition

Python 3000 will break backwards compatibility. There is no requirement that Python 2.9 code will run unmodified on Python 3.0. Python's dynamic typing combined with the plans to change the semantics of certain methods of dictionaries, for example, would make mechanical translation from Python 2.x to Python 3.0 very difficult. However, consideration is being given to develop a tool that does at least an 80% job of translation, pointing out areas where it wasn't sure using comments or warnings. Such a tool may be based on something like Pychecker.

Another kind of tool that may be developed is an instrumented version of 2.x that produces run-time warnings about constructs that will get a different meaning in 3.0. This can't be used for all incompatibilities, but it's likely to help reach a larger percentage of correct translations. This approach is already in place for detecting reliance on '/' to do integer division.

Product enhancement proposal numbering

Python 3000 product enhancement proposals (PEPs) are numbered starting at PEP 3000. PEPs 3000-3099 are meta-PEPs -- these can be either process or informational PEPs. PEPs 3100-3999 are feature PEPs. PEP 3000 itself (this PEP) is special; it is the meta-PEP for Python 3000 meta-PEPs (it describe the process to define processes). PEP 3100 is also special; it's a laundry list of features that were selected for (hopeful) inclusion in Python 3000 before formal Python 3000 development began. PEP 3099 is a list of features that will not change.

See also

Template:Major programming languages small