

Python: language moratorium is lifted - prog
http://article.gmane.org/gmane.comp.python.devel/121459

======
gjm11
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.

------
dalke
Quoting from PEP 303:

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.

~~~
pero
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.

~~~
ableal
> 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.

See, for instance, core developer J. Noller's comment here:
<http://news.ycombinator.com/item?id=2130854>

~~~
jedbrown
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.)

~~~
JeremyBanks
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.

~~~
orlandu63
Have you any citations to back up that statement?

~~~
jnoller
It's been hashed out over years on the Python-dev list.

------
Jach
Did anyone else think "Wow, 2 years already"? (I remember people claiming the
moratorium was a signal of Python's demise...)

I'm happy about PEP 380, it seems like they might as well do PEP 3152 as well
since they're highly related...

------
anonymoushn
This is somewhat disappointing. Python's lack of full-fledged coroutines is
most of what keeps me using Lua.

~~~
dalke
And you don't want to use Stackless Python because ... ?

~~~
yummyfajitas
I was going to suggest that Stackless is dead, given that I haven't heard any
news about it.

But that would have been foolish of me:
<http://zope.stackless.com/Members/rmtew/News%20Archive/3.1.3>

~~~
TillE
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.

~~~
dalke
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?

