Once again I'm musing on Large vs. Small Software Solutions, something I wrote about in one of my first posts here, and something that I still haven't found a good solution to.
Again the question comes down to Zope versus CGI for web applications? Or, rather than Zope, any large framework. And it's not just limited to web applications, obviously. In almost every program I write, I have to decide which softare libraries I'm going to link against. Because I write in Python, for the most part, that choice boils down to which libraries I'm going to require the users of my programs to have installed on their computers before they can use what I write. Do I want to require a large library like SciPy, that offers lots of neat functionality, some of which could be useful to me, but that also requires a difficult install process? My own choice, in this case, is not to use SciPy, despite some neat toys that I'd like to have in PyQuante.
The simple (and simplistic, IMO) answer is that you use the smallest software solution that gets the job done. The problem with this answer is that software applications tend to grow over time, and something that may be simple enough at the start of a project may not be adequate at project maturity. One might be able to serve a web application using hand-written HTML and a few CGI scripts at the start, but what happens when the client wants an integrated database? Perhaps starting with something like Zope is a better approach.
I end up doing the worst of all possible worlds: I change my mind on this every few days/months!