The PEP process has always amazed me as one of the better processes that the Python community "owns". Certainly not perfect but I feel the focus on communication is really key.
Does Ruby have something similar when it comes to enhancements?
The short answer: no, from what I understand. A more thorough explanation was posted as part of a bit of a diatribe on Ruby development in general to HN a couple of weeks ago: http://news.ycombinator.com/item?id=2059964
This has been a long time coming. Not being able to use Python3.x for web development was a large barrier for me switching completely. Now Python3.x just needs to be the default for more linux distros.
I agree. Python 3 will not see significant uptake till it is the default on most distros.
It is the usual chicken and egg problem. Distros won't upgrade if there is no reason to. In fact, many are reluctant to upgrade to 3.0 since it breaks a few mini-apps developed in 2.x (as happened to me on ArchBang Linux a few weeks ago).
You need a killer app to force through the migration. Viz Rails and the number of hosts who now have Ruby hosting (if only in name) even on their cheapest hosting packages.
The larger problem is that all the existing killer apps need porting over first. Python has a large ecosystem of killer apps (or rather libraries) already, so no matter how killer your new app is, it probably won't outkill the sum total of all existing killer apps.
WSGI defines the interface between web services written in Python and HTTP. mod_wsgi is the Apache implementation. FLUP is frequently used to gateway WSGI to FastCGI (for use with nginx). There are others.
Until now, people writing WSGI applications (mostly framework authors) have been held back by lack of standardization. WSGI adapters such as mod_wsgi have been tracking PEP 3333 for some time, but web application/framework authors have been reluctant to move forward without standardization.
Jacob Kaplan-Moss wrote:
"The lack of a WSGI answer on Py3 is the main thing that's keeping me, personally, from feeling excited about the platform. Once that's done I can feel comfortable coding to it -- and browbeating those who don't support it."
So: standardization has arrived. I would say that lack of WSGI for Python 3.x was the primary factor holding back widespread standardization on Python 3.x. It will take some time for adoption to occur nonetheless--there are other factors. It is extra work to maintain a project with Python 3.x and 2.x compatibility. Also the Python 3.x standard library needs more users to smooth out the lumps.
Nonetheless, this is a big deal and should be celebrated :-)
If you are using Python for web development there is a good chance you are using the Python 2.x branch. Why?
Because almost all the libraries that you would need were written in 2.x. This includes the some of the more popular frameworks.
There are a few things preventing widespread adoption of Python 3.x for web. This was one of them.
Most people though (including myself) are quite happy to keep using 2.x. We all know Python 3 is here and is the future. We also know upgrading to be relatively painless. But for the most part the Python community values stability and 2.x makes most people happy. So for now I am just keeping an eye on 3.0 and seeing what web frameworks are going to pop up using it before I consider any type of move.
Any other Python devs still going to stick with 2.x despite this? I know I will be, for the foreseeable future.
This was a big step for 3.0 adoption, but there is still a long way to go. It reminds me of PHP4 v PHP5, but with far less clear benefits (and far less support).
I'm sorry - what is this 3.0 you speak of? Debian stable still runs on 2.5. Surprisingly, almost every module I need from pypi works without problems (sometimes just requires select26 to get the proper epoll). Most changes that would be otherwise needed are really trivial (from __future__ import ...).
Does Ruby have something similar when it comes to enhancements?