On 3/30/06, Jeff Eaton <jeff@viapositiva.net> wrote:
I have to confess that I've been following Category's development, and while I can attest to the developer's dedication, I don't think it's a good idea. At its core, it's a hack that merges book and taxonomy functionality without re-assessing the underling architecture. It makes sense as a contrib module for sites that really need it, but I think moving core in that direction would be a mistake.
Far better, IMO, to explore a more robust relationships system that *encompasses* taxonomy-style metadata and book-style relationships (as well as other stuff). There are a couple of projects along these lines already. If there's talk of revisiting something as fundamental as taxonomy, make the project worth the effort.
--Jeff
I know what you're saying, Jeff, and believe me it's something I've thought about more than a few times over the past year. But at the end of the day, developing an "all-encompassing" relationships system is a very ambitious task, and one that will take much more development effort than I've put into the category module. The biggest problem will be backwards-compatibility. If we redesign Drupal's categorising / structuring / relationship system from the ground up, how hard will it be to bridge the gap between this new system and the old book/taxonomy system? My guess is that it will be pretty hard. Category, on the other hand, has achieved full backwards-compatibility (through the wrapper system, and through category_legacy) quite easily, because its API is simply a merged and modified version of the API that book and taxonomy use. Category is a more powerful system than book and taxonomy, and yet its new storage schema maps easily to the old schemas, and its new API maps easily to the old APIs. The price of this backwards-compatibility is that, yes (I admit), many of the problems with the old APIs and data structures still exist, and haven't really been solved. But then again, many of the benefits of the old APIs (such as years of testing and refinement) are also being carried through to the category system. It would be awesome if we had a "perfect" new relationships system, and if that fresh new system was able to achieve full backwards-compatibility with taxonomy and book (and various other things, such as comment and possibly user). But that is a task that I don't feel capable of taking on: if other people feel that they're up to it, that's great. If we are ever to replace the book and taxonomy modules in core with something more powerful, then there absolutely MUST be an upgrade path. If a new relationships API isn't able to achieve that, then it's simply not practical. Sorry to sound so negative about it, but building such an upgrade path is a task for which I personally don't see the light at the end of the tunnel. Jaza.