[Python-Dev] PEP 405 (proposed): Python 2.8 Release Schedule (original) (raw)
Nick Coghlan ncoghlan at gmail.com
Wed Nov 9 23:58:42 CET 2011
- Previous message: [Python-Dev] PEP 405 (proposed): Python 2.8 Release Schedule
- Next message: [Python-Dev] PEP 405 (proposed): Python 2.8 Release Schedule
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Thu, Nov 10, 2011 at 7:55 AM, Barry Warsaw <barry at python.org> wrote:
+1 for Cardinal Biggles as release manager.
Now you need to persuade Vinay to let you trade PEP numbers with the pyvenv PEP. Having an unrelease schedule as PEP 404 is too good an opportunity to pass up :)
Getting boring for a moment, I suggest including the following new section just before the copyright section:
And Now For Something Completely Different
Sorry, sorry, that's just being too silly. While the language may be named after a British comedy troupe (and the overall tone of this PEP reflects that), there are some serious reasons that explain why there won't be an official 2.8 release from the CPython development team. If a search for "Python 2.8" brought you to this document, you may not be aware of the underlying problems in the design of Python 2.x that led to the creation of the 3.x series.
First and foremost, Python 2.x is a language with ASCII text at its
core. The main text manipulation interfaces, the standard I/O stack
and many other elements of the standard library are built around that
assumption. While Unicode is supported, it's quite clearly an added on
feature rather than something that is fundamental to the language.
Python 3.x changes that core assumption, instead building the language
around Unicode text. This affects the builtin str
type (which is
now Unicode text rather than 8-bit data), the standard I/O stack
(which now supports Unicode encoding concepts directly), what
identifier and module names are legal (with most Unicode alphanumeric
characters being supported) and several other aspects of the language.
With the text handling and associated I/O changes breaking backwards compatibility anyway, Guido took the opportunity to finally eliminate some other design defects in Python 2.x that had been preserved solely for backwards compatibility reasons. These changes include:
- complete removal of support for "classic" (i.e. pre-2.2 style) class semantics
- the separate
int
(machine level integer) andlong
(arbitrarily large) integer types have been merged into a singleint
type (that supports arbitrarily large values) - integer division now promotes non-integer results to binary floating values automatically
- the error prone
except Exception, exc:
syntax has been removed (in favour of the more explicitexcept Exception as exc:
) print
andexec
are now ordinary functions rather than statements- the backtick based
x
alternate spelling ofrepr(x)
has been removed - the
<>
alternate spelling of!=
has been removed - implicit relative imports have been removed
- star imports (i.e.
from x import *
) are now permitted only in module level code - implicit ordering comparisons between objects of different types have been removed
- list comprehensions no longer leak their iteration variables into the surrounding scope
- many APIs that previously returned lists now return iterators or
lightweight views instead (e.g.
map
produces an iterator,range
creates a virtual sequence,dict.keys
a view of the original dict) - iterator advancement is now via a protocal-based builtin
(
next()
invoking__next__()
) rather than an ordinary method call - some rarely needed builtins have been relocated to standard
library modules (
reduce
is nowfunctools.reduce
,reload
is nowimp.reload
) - some areas of the standard library have been rearranged in an attempt to make the naming schemes more intuitive
More details on the backwards incompatible changes relative to the 2.x
series can be found in the Python 3.0 What's New
_ document.
With the 3.x Unicode based architecture providing a significantly better foundation for a language with a global audience, all new features will appear solely in the Python 3.x series. However, as detailed elsewhere, the 2.7 release will still be supported with bug fixes and maintenance releases for several years.
.. _Python 3.0 What's New
: http://docs.python.org/py3k/whatsnew/3.0.html
-- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
- Previous message: [Python-Dev] PEP 405 (proposed): Python 2.8 Release Schedule
- Next message: [Python-Dev] PEP 405 (proposed): Python 2.8 Release Schedule
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]