Forum OpenACS Development: Re: thoughts on [extends ...], inheritance and converting down

now we have a third object system implemented by [extends ...] and so things are starting to get tense with all these different systems.
They're not really objects, and it's just an extension of the package system and the request processor.

"requires" was already a weak form of inheritance, after all, as it makes available the Tcl API and datamodel and (if mounted) package templates.

Nothing new here except a slight expansion of the existing "requires" semantics.

I'm not arguing that it would be nice if everything were wrapped up cleanly into a single mechanism.

But if you believe apm packages are objects now, then you need to understand they were just as much objects before. so your "three mechanisms" complaint isn't pointing out a change.

"extends" is a slightly stronger form of inheritance as you get parameters and (optionally!) immediate access to templates, and all the packages you extend and your own package share a single package_id.

But the "weak inheritance" from before - datamodels, tcl scripts, oh and resources and the include librarys, too - are unchanged, while the last - access to templates - isn't new, just strengthened/different.