I really like Peter Hunt's latest post: How Python wins on the web;
quoting a bit:
But oh, how quick are we to forget Python's smashing successes in
the Web world. We've got Plone, probably the most popular and
comprehensive CMS out there. We've got the platform its built on,
Zope, which is (from what I hear) fairly popular, too. We've had
PyBloxsom, which until WordPress came along was a very widespread
blogging system. And hell, we've got Python's "killer" web app,
Trac, which just about everyone is using these days. And oh,
BitTorrent. I know it's not a Web application in the traditional
server-side sense, but it just shows how capable Python truly is.
What do all of these applications have in common? They certainly
don't share a web framework; most of them are developed specific
to that application and tailored to various deployment platforms
(CGI, FastCGI, custom server, mod_python). Python appears to be
falling behind in the world of custom-made Web applications, but
in the world of generic, reusable Web applications, Python is
doing great.
I wouldn't necessarily throw in the towel for frameworks, but I think
Peter's right to bring the focus back to apps. A good environment
(language, framework, design methodology, whatever) is good when
people build great applications using it. And that's all there is to
it. Obviously we have imagination and choice and we can have forward
vision, but these are just aspirations; you still have to deliver
the application before it really matters. And there's a lot of good
applications written in Python, so we have nothing to apologize for.
Interestingly, by this metric, PHP is a really great language. Also
by this metric PHP is a really horrible language. PHP is funny that
way. What PHP gets really right is that it invites participation, a
PHP app is generally approachable. PHP has had a good feedback cycle: good
applications exist, starting of the cycle; then it comes back because people
regularly tweak and modify the applications they install.
A lot of the features in my incomplete list of web environment
features
are about making an application inviting for people other than the
original developer. These may be people who installed it, people who
are tweaking it, or coworkers who come in at different points in its
development. The motivation is bringing the feedback cycle back
around; so that once we put applications out there we get people (even
if very indirectly) coming back around as participants. And, of course,
inviting participation without losing good development practices, which are
"good" for reasons that apply just as much if not moreso to those late-joiners.
But of course, the feedback cycle starts with great applications. So
lets go write applications. If there's lots yet to do in frameworks,
there is a near-infinite amount left to do in applications.