I want to be excited about the python 3000 effort. Every programmer
loves a green field project; there's none of that icky legacy stuff holding
you back, and you can have a beautiful, graceful new creation that exceeds
the limitations of its hobbled and mis-designed ancestors. Python 3000
could fix all of Python's warts, giving us a clean, simple language with
more power and flexibility.
However, the "icky legacy stuff" happens to include every program I've
written in the last 5 years, as well as really important functionality like
GTK bindings, database support, and compatibility with applications (like
GIMP, Gaim and Blender) which embed Python themselves. so I need something
more substantial to get excited about. Something to make it worth the
rather onerous effort of upgrading the Twisted codebase, and simultaneously
breaking support for millions of existing Python installations. Some
of the "substantial" new features I've seen, like the new "iostack" library,
seem to be controversial. I haven't done a thorough code review
myself, but a few comments on the mailing list, like "8k is a perfect buffer
size for any application", suggest that while there may be improvements,
these changes are far from problem-free. (Not to mention the fact that
a large portion of what iostack is trying to accomplish is the sort of thing
that would be features in Twisted anyway, so it's likely we won't be using
much of that code...)
PyPy brings some of this effort along with it as well, but PyPy's advantages
are much clearer: it will be about a zillion times faster, it will make
writing bindings to existing native functionality fundamentally easier, and
it might be possible to add core language interpreter features, like
restricted execution, without having to patch the core itself. Also,
PyPy is currently targeting fundamentally the same language as Python 2.4,
whereas Python 3000 is intentionally incompatible, so it will be possible to
support Python 2.4 and PyPy, although PyPy may require a lot of conditional
blocks to work right in the real world.
This is all a high-level understanding gathered from listening to rumors,
perusing mailing list archives, reading a few websites, and attempting to
read between the lines. I could be wrong about both projects.
With my current understanding though, the plan for the Twisted project is to
support the 2.x Python series and PyPy as soon as it's feasible, but ignore
Py3k until there is a compatibility layer which would allow us to migrate
gradually rather than in one fell swoop.
Lots of Python fans seem to read this blog, so maybe you can help me
out. What new features or idioms should I be really excited about in
Python 3000? Am I missing something fundamental about what it's trying
to achieve?
(Those of you who don't have an OpenID login can feel free to answer this
question by sending email to glyph@divmod.com rather than posting a
comment.)