Contrary to some interpretations, I’m not against the array of web frameworks available for Python. Let a thousand flowers bloom, and all that.
That said, I do think that it’s extremely confusing for newcomers to Python. Yes, Ruby suffered from a similar lack of a dominant standard until Rails came along. But then, Ruby also suffered from a similar lack of adoption in the web realm.
During my search for work last month, I found several Ruby on Rails jobs going, already, and numerous Zope/Plone contracts. You just don’t see contracts for Quixote or CherryPy, because business people like dominant standards.
(I should point out that I did get contacted about some Nevow work, and while it’s great that there are people out there targetting commercial work using more Pythonic frameworks, sadly it was the exception.)
Smalltalk does not have a dominant standard, but then, Smalltalk has very little momentum in the web space. Seaside may fix this, but it’s aimed toward a very defined set of problems that are solved by a continuation based approach.
The common thread in Jeffrey’s Java list (“Java Server Faces, Struts, Tapestry, J2EE’s web parts, JSP, Servlets”), is support for running in a servlet container, and the baggage that comes with that. You can run a sub-request from a Servlet or JSP for a Struts app, you can’t (yet) do that with say Nevow and Quixote, but WSGI may change some of this.