"Jacob Singh" <jacob@prisonbooks.org> writes:
Well, I'd probably use PHP/MySQL because of it's strong following and general knowledge. Also because of it's ease of portability. Also, it's easier because I know SQL programming and ZODB seems like a bitch work with because dtml is so limiting (to me), probably because of my ignorance of it.
PHP/MySQL is a well tested combination, available from nearly every web hosting service on the planet. I am a former PHP user myself, and I personally feel that you could do much worse than PHP. PHP also has a much shallower learning curve than Zope, and the documentation available for PHP is excellent (Zope's documentation has improved dramatically, but it is still lacking). However, Zope is no slouch either. I tend to put my data in an RDBMS (PostgreSQL to be precise), for much the same reasons that you stated in your original post. I am not concerned about getting data out of PostgreSQL once I put it there, nor am I concerned that my database will get too large for PostgreSQL to handle. I am not quite as confident in the ZODB. That being said, I think that Zope and ZSQL have definite advantages over PHP. For one thing the fact that Zope is a persistent process means that it can be much more intelligent about connection pooling and data caching. Instead of having a separate persistent connection for each instance of Apache you end up with a pool of connections that Zope can re-use intelligently. I also appreciate the fact that Zope forces me to separate my SQL code from my other logic code. With PHP it is far too easy to jumble SQL with business logic and presentation logic making your site much harder to maintain. Zope + ZSQL also gives you XML-RPC for free. I like being able to re-use the logic I have written in my Zope site in other applications, and ZSQL is a nice database abstraction layer just in case you ever feel like migrating to another database. With Zope you also get built in security awareness, that's handy too. DTML *is* limiting, but in a good way. Web designers whose eyes would pop right out of their heads when confronted with PHP or Python can actually get work done in DTML, and the new TALES templating stuff is even cooler. Most business logic, however, should probably be written in Python. I happen to really like Python, so this makes me happy :). Better yet the new Python Scripts allow you to use a significant portion of Python without playing with External Methods or building products. Zope is very cool, and not only because of the ZODB. Jason