Forum OpenACS Q&A: Response to PostgreSQL vs Interbase- Future Direction of OpenACS?

Sorry, I'm still working my way through the code and docs so this may be off the mark... But I noticed the XML module is not yet ported, presumably because it relies on Oracle's internal XML capability.

Also gathered that the decision to implement most stuff in Tcl is largely for "historical" reasons. If I haven't missed or misunderstood something fundamental, this suggests a way to kill several birds with one stone:

1) Work with Postgresql people to implement internal XML support similar to Oracle. Seems to be a critical requirement for database oriented web services and may be higher on ACS/pg priorities than on Postgresql priorities. But the Postgresql architecture as a true ORDBMS cf Oracle RDBMS seems ideally suited for easily adding that sort of functionality as just another of many Postgresql add ons. Are they working on it already?

2) That would really bring out the not just financial advantages of using a free DBMS cf a commercial one. Just porting RDBM features used by ACS for "historical" (Oracle) reasons tends to highlight the difficulties due to Postgresql not having yet got around to some things that are common in the commercial RDBMS world like outer joins. Specifically, Postgresql should end up being able to do a great deal more with XML than just importing and exporting it because of the way it is designed to treat fields as structured objects on which you can define operations.

3. Gradually eliminate the Tcl stuff that just converts between SQL and Tcl/AOL to use XML as "middleware", while at the same time adding enhancements that take full advantage of XML.

4. End up with an OpenACS that is:

a) More database independent (ports to specific SQL dialects fiddle only with the XML to SQL for their dialect, not with Tcl code intertwined with the rest of the logic, unlike entirely separate ports for Interbase and Postgresql).

b) Fully able to participate in the enormous momentum around XML.

c) Less dependent on Tcl. (Existing ACS specific functionality just disentangled from the direct SQL dependency, additional specific functionality can be added in whatever language the developer prefers - many do not prefer Tcl).