From: Kendall ClarkTo: Titus Brown Subject: Re: [PyWX] Zope users? >>>>> "Titus" == Titus Brown writes: -> FWIW, I'm in *precisely* the same boat: I want to use Python to -> build great Web sites, but I don't like Zope. So I've been -> casting around, rejecting one half-done attempt after another -> (PyApache and httpdapy). Titus> Would you be able to write up a one-paragraph description Titus> of the problems with each? I want to start getting PyWX Titus> advocacy off the ground ;). Sure, I can do that. The real problem with both is extreme *cruftiness*, and in the case of PyApache, it's just not dramatically less overhead than CGI. PyApache is essentially unmaintained, and its design really isn't close to ideal. (I don't recall the specifics, but I think it starts a new Python interpreter 'session' for each request; but I'm not a C programmer, and it's been a few months since I looked at it.) Httpdapy is a *nightmare* to install, is poorly documented, and -- though this isn't a big deal, IMO -- uses a non-standard, ad hoc programming model. Safe to say, it's not CGI. (You subclass some httpdapy.req_handler class, and then write a method that returns the contents of the page as a string, or somesuch. Again, it's not *hard* just really ad hoc.) I emailed the author of Httpdapy recently and he said that he's bringing out a new version, that is redesigned, I gather, and he's calling it "mod_python". Re: Zope, I agree with most of Chuck's comments, especially the DTML (ugh!), bad documentation, the web interface was dodgy at best, etc. I'll add one more: since I'm not crazy about Apache, and I don't want Zope to take over an entire server where it lives (i.e., have the built-in Zope asyncore-based httpd server answer all requests to port 80), I'm out of ways to integrate Zope with existing Web resources. I suppose it's just a matter of someone making Zope work with, say, Aolserver, since it can presumably be made to work with whatever persistent CGI thingie Zope is using today. But it hasn't happened yet. The various Python ASP-like thingies are either too primitive or old to be of much use. In the case of the one that's decent and well-maintained, is built with JPython and requires Apache JServ, etc. I don't care for Java generally, and the JDK runs like shi** on my server, so... JPyhton is cool but overkill, IMO, for what it does; unless you happen to already by doing tons of servlets already, which I'm not. In general, and I've tried to make this point in Python land a few times, w/ very little positive response, I fear Zope has been *bad* for Python Web development, as it's kind of sucked all the oxygen out of the room. I'm glad to see I'm not the only one that sees things this way. (Oh, and it isn't all just Python web tools; I've also grown very unhappy with some aspects of Apache, and Aolserver seems like such *great* technology, that I want to try to move over to it altogether. Apache 2 may make huge advances, but we'll have to wait and see.) One last bit of advocacy: the really exciting thing about PyWX is that it joins 2 very mature, robust technologies in an appropriate way. That is, Aolserver is just the bees knees, as is Python. Both are well-regarded, mature, robust and proven software. And Python is meant in large part as an embeddable script engine, so it's the right thing to do. (I only wish that the Aolserver folks had picked it from the beginning.) Despite what Greenspun occasionally seems to imply, I think Python being nicely OOPish is a good thing for Aolserver as well. Granted, OOP isn't the be-all, end-all for *all* Web apps, but there's lots of them where it's very appropriate and helpful. [ munch ] I'd love a very clean ASP-like solution. One approach, which I learned about from the Squeak Smalltalk web server, Comanche, is to define a class, Action, and give it methods that take a Request and return a Response. Then you mix method invocations in with HTML (or XML, actually, since there are at least three ways to enable this in XML), where by 'method invocation' I mean a construct. The method names are methods on Action. I haven't thought about it a lot in the context of Python (versus Smalltalk) but something like that would be nice. (I'm not sure you need escaped, arbitrary Python chunks *in* the HTML/XML; maybe just method invocations.) At any rate, I think cooperation between Webware and PyWX is a good thing. -- THIS MACHINE KILLS FASCISTS http://monkeyfist.com/