<p style="margin-bottom: 0in;">        Ruby on Rails, ColdFusion, <a href="http://ASP.NET">ASP.NET</a>,
and to a lesser degree PHP and ASP share two important traits that no
Python web framework currently embraces.</p>

<p style="margin-bottom: 0in;"><br>
</p>

<p style="margin-bottom: 0in;">        First, when one writes an application
for these frameworks, one spends the vast majority of time writing
code for their application, writing the logic that their application
specifically requires. Contrast this with J2EE or Zope. In writing a
Zope 3 application, for example, one must design objects that fit the
Zope interface requirements, write a couple of XML configuration
files to document the object, and figure out the entire API all at
once. Contrast this to PHP, where one spends time simply writing what
their application needs to do, and does not need to write a single
ambiguous XML configuration file. This extends to deployment. In a
J2EE application, you need to deploy a WAR, while with PHP, you just
need to drop a few .php files on the server and it works.</p>

<p style="margin-bottom: 0in;"><br>
</p>

<p style="margin-bottom: 0in;">        Second, these frameworks have
"batteries included". Rails is a "full-stack" framework,
which, according to its API documentation, "includes everything
needed to create database-backed web-applications according to the
Model-View-Control pattern of separation." It handles everything
from form validation to database integration to sending email. No
Python framework currently embodies such functionality with such good
integration.</p>

<p style="margin-bottom: 0in;"><br>
</p>

<p style="margin-bottom: 0in;">        I really want to be able to say that
we should all come together to improve Zope, the "king" of Python
web frameworks . . . but I can't say that. Zope 2 was a mess, and
Zope 3 is so overengineered that it's painful to write code. The
ideal framework should allow the programmer to be organized, while
still allowing a monkey to write Hello, World.</p>
<p style="margin-bottom: 0in;">        My two cents . . . what's yours?</p>