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

Posted by Albert Langer on
Somehow I get the feeling that in this conversation we're all talking an
entirely different language than one another.  I assume that Ben's concerned
about complicated SQL abstraction between Oracle and Postgres because he wants
to get rid of Oracle dependencies in ACS.  I think Albert's talking about being
able to abstract the SQL out enough to not have to think about it at all when
constructing an application.  I'm probably just plain not thinking about it at

Thanks for the detailed exposition in the remainder of your posting. I'll study it carefully and check with Phillip Eby. Meanwhile, I've got the same feeling about talking different languages and will refrain from continuing to cause confusion.

Quickly though, if by "application" you mean something like an Ecommerce module, I certainly don't believe anyone writing one should attempt to not think about the SQL at all while writing it. On the contrary I think the most important work is the SQL. On the other hand somebody customizing a web site and using the ecommerce module in conjunction with other applications should not need to think about the SQL. (That has more to do with abstraction between the domain model and the UI than with database abstraction and I gather ACS classic is addressing this for version 4).

I also have a different interpretation of Ben's position. My understanding is that he and other OpenACS people have ALREADY ported from Oracle to Postgresql, thus removing all Oracle dependencies. The problem as I see it is how to remain in sync with future upgrades to ACS classic (Oracle) version and extend to supporting other RDBMs with less pain. My impression was that he does not want "complicated SQL abstraction between Oracle and Postgres" but believes (as I do) that without RDBM specific SQL the result would be unacceptably inefficient.

The question then is how one can handle regular updates from ACS classic (Oracle) and ports to multiple other RDBMs (or even just Postgresql) with minimum pain while using RDBM specific SQL wherever necessary for efficiency.

I believe "ZPatterns" may be very relevant to that, but will obviously have to study it further before asking anyone at OpenACS to take that idea seriously, in view of your comments.