In case anyone's wondering about the two PEPs GvR mentions:
PEP 380 (http://www.python.org/dev/peps/pep-0380/) would provide a convenient way for one generator function to yield all the values of another as part of its work. At the moment you have to say something like
for x in foo:
yield x
which isn't all that bad in itself but breaks down when your caller starts sending values back to you, coroutine-style. (Because they go to foo and you never get to see them.)
PEP 3152 (http://www.python.org/dev/peps/pep-3152/) uses the generator mechanism (as enhanced by PEP 380) which already provides something rather like coroutines, and adds some syntactic sugar to let you write coroutines that look like coroutines.
This PEP proposes a temporary moratorium (suspension) of all changes to the Python language syntax, semantics, and built-ins for a period of at least two years from the release of Python 3.1. In particular, the moratorium would include Python 3.2 (to be released 18-24 months after 3.1) but allow Python 3.3 (assuming it is not released prematurely) to once again include language changes.
Python 3.2 is newly released and 3.3 development has started.
So, essentially, the non-"python-is-my-second-language" crowd should wait not just for v3-as-is to gain acceptance, but until 3.3 before they start migrating, or what?
From a high-level outsider perspective, the shift from 2.x to "current" looks like amateur hour.
> From a high-level outsider perspective, the shift from 2.x to "current" looks like amateur hour.
You are hearing a lot of noise now, because 3.X has finally become viable enough to be interesting to the wider python community, I hope. That's why people keep hyping it.
3.0 was not ready, and only a few dedicated pythoneers (like Mark Pilgrim) pushed it.
It was very professional of the python community to keep 3.X in it's mother's basement until it was well-enough dressed to be seen in public.
I can't express how much I love the quote "It was very professional of the python community to keep 3.X in it's mother's basement until it was well-enough dressed to be seen in public." - it's incredibly spot-on.
No, the point of the moratorium was mostly to allow interpreter/compiler implementors to catch up. As of 3.3 the team is just going to start adding minor syntax augmentations to the language gradually, as they used to do. Anyone who wants to keep current with Python should just learn the syntax additions as they come out. The base syntax of Python 3 will not be changing any time soon.
From a high-level outsider perspective, the shift from 2.x to "current" looks like amateur hour.
That you expound your claim with adornment and superfluous grammar obfuscates your intent to purport and diseminate the acceptation of your supposition.
...
In other words, no one knows what you are talking about.
A semi-colon for a poem, really? Could I have not meant to meant to emphasize the first part of that sentence with a break while continuing the train of thought? By the way, it's 'disseminate.'
> the shift from 2.x to "current" looks like amateur hour
"Amateur hour" would be to expect the shift to occur overnight, with magic powers conferred by unicorns and butterflies. If you look at the developers posts (instead of random uninformed excitable blogs) you'll see that it was realistically expected to take a few years.
Perhaps my biggest complaint is that until recently, Python-2.x releases were not packaged with an executable named "python2", thus during the transition to Python-3.x, there is no safe way to specify which major version your script requires in the shebang. Arch Linux is already using version 3 for /usr/bin/python so any third-party scripts that require version 2 are broken. Other distros may wait a few years to do this, but it will still be painful. It would be much nicer if script writers could update the shebang to use "python2" if that is what they need. (It is difficult to make the same code be valid in python3 and python2 if you have to support people on RHEL4 or RHEL5 (python 2.3 and 2.4 respectively), for example.)
This is a mistake on the part of Arch. The Python team intended that "python" would be the canonical name for the Python 2 binary, with "python3" used where Python 3 was intended.
As far as I know, they haven't developed any significant new features (does it need any?) in a long long time, so in that sense it's not an "active" project. But they're usually quick to port their patchset to each new Python version.
It adds coroutines to Python. What more do you need? It runs every other Python package, it tracks new Python releases perfectly, which means its "significant new features" are identical to Python's significant new features.
What would an "active" version of the project look like?
PEP 380 (http://www.python.org/dev/peps/pep-0380/) would provide a convenient way for one generator function to yield all the values of another as part of its work. At the moment you have to say something like
which isn't all that bad in itself but breaks down when your caller starts sending values back to you, coroutine-style. (Because they go to foo and you never get to see them.)PEP 3152 (http://www.python.org/dev/peps/pep-3152/) uses the generator mechanism (as enhanced by PEP 380) which already provides something rather like coroutines, and adds some syntactic sugar to let you write coroutines that look like coroutines.