Forum OpenACS Q&A: Response to Article on ACS x Zope

Posted by Don Baccus on
"At some point your website will generally need to do something not built into ACS. It may be very specific to your
    site. At that point your not in ACS but you are still in AOLserver and SQL and the Oracle/PostgreSQL. Your skill
    set requirements just increased. "

This is untrue.  You can reuse existing elements of the ACS, including  utility modules whose sole purpose is to ease the task of extending a site's functionality beyond that provided "in the box" by the toolkit.

Is this as easy as extending Zope?  It will depend on how closely the desired functionality matches existing functionality in either case.

"  With Zope that is not the case unless you choose for it to be. Zope provides a web server and transparent
    persistent storage (which meets ACID). "

Once you've learned how to use Zope objects which implement persistent storage, sure, you don't have to learn how  to use them.  This statement can be made about any software tool, though.

You imply that learning to use these Zope objects is easier than learning to use SQL.  Given that the SQL needed for most web sites is fairly trivial, do you have any empirical evidence that this is true?

Or is it just another item of faith we're expected to agree with.

"I have read numerous times of Don banging his head against pg source. Using PG or Oracle or maintainance of
    either is a simple as ZODB. "

Something else that's untrue.  If I want to develop objects in Zope that support both Postgres and Oracle, I'll have to deal with exactly the same query differences.  If I knew I wanted to do this in the beginning, I'd take care to build abstractions to isolate differences as much as possible.  I'd use unions instead of outer joins from the beginning.  Etc.

Just as I would do in the AOLserver environment if supporting two DBs was my goal.  In fact, that's one of the appeals of AOLserver's Tcl API.

And even more to the point - the same bugs in Postgres will exist, and  ZODB and Zope, though undoubtably fiendishly clever, aren't capable of dipping into the PG source and fixing bugs.

Now, as it happens, aD chose not to structure the ACS in a way that makes it easy to support multiple databases.  That's a choice that can  (and eventually will) be undone.  If people providing Zope objects transparently support a wide suite of persistent storage engines, my hat's off to them.  I have to wonder if this is really true in practice or merely in theory, though.  If true in practice, be assured that someone worked hard at making it real.

"Also when Zope's learning curve is brought up, DTML is a part of that. DTML is integral to Zope. So the
    assessment of Zope's learning curve and complexity is based on integral capabilities that aD is adding to ACS and
    that are not in the current assessment of ACS. "

I honestly don't understand the above.  If you're speaking of templating via ADP pages as being something that's not in the current assessment of ACS, then the reality is that for many users this will flatten, not steepen, the learning curve.  If you mean something else,  feel free to explain.

"Zope had 474 *.py files and 221 *.dtml ACS had 2361 *.tcl files and 105 *.adp

    This can mean whatever you want."

Not really.  It can only mean one thing: nothing.