Forum OpenACS Development: Response to Gratuitous use of acs_objects?

Collapse
Posted by Stephen . on
My feeling is that rather than remove features from the object system (such as making some things which are now objects, non-objects), and building packages which do not take advantage of core services and mechanisms provided by acs, the opposite should happen.

The more that is implemented in the core, the less that has to be re-implemented by each individual package. The core will not be light or lean+mean, but the packages will be. Appart from the engineering savings, i.e. time to build, previously debugged code, learn one api; what's more important is the idea of a common data model and the powerful things you can do with it. This is what gives the acs it's advantage over a loose collection of 'best of breed' programs.

The way I'm beginning to think about this, is as a seperate layer of abstraction above the database (augmenting, not replacing). This would be the lowest level of the toolkit, excluding things like parties, people and groups, but including objects and types, rels and rel types, attributes and values etc. Plumbing.

I see rels and rel_types at the very core of this so I wouldn't like to see them be stripped of their object_id's. I am in favour of giving object types object id's, and hence rel_types.

A concrete example of the push down of features I'd like to see from the higher layers of the toolkit into this core is the relationship inheritence of groups (component vs. member) in to relatiosnhips themselves. This mechanism is used already in the toolkit (groups, site nodes, object types, privileges, categories...?) but each is an island implemented uniquely. An integrated, toolkit-wide mechanism for this would enable some really cool interactions.

Considering the ideas floated here which seem to down play the importance of centralised, object_id identified features, I'm wondering where people see the toolkit going in the future. Is this just a performance problem, perhaps with tight client schedules forcing immediate action? Do people feel that an object model such as we have now will never be fast enough? Or do folks dissagree with the approach intirely?