On Thu, Dec 08, 2005 at 11:16:52PM -0500, Rob Kinyon wrote: : On 12/8/05, Larry Wall <[EMAIL PROTECTED]> wrote: : > [snip] Certainly, as you speculate, if different authors want : > to share an API, they can give it an "API" author that knows how to : > delegate to one of the authors. : : Would you mind elaborating on this some more?
I don't really have much elaboration to give. We have policy modules that can invoke other modules on behalf of the user, and you can view an API module as a kind of policy module. We also already know that we need to figure out how to pick between Funny-1.2-STAN Funny-1.2-OLLIE using something like a policy. Certainly one way to handle that would be to allow whomever is making the decision to create a Funny-1.2-API that picks between ABBOT and COSTELLO, as a kind of editorial decision. There are two elaborations on this theme. One is that use Funny-1.2 could be considered a request to search for use Funny-1.2-API or more likely use Funny-(1.2.0...)-API or even use Funny-(1.2.0...)-(/^.* _API$/) The second is that "API" if API here is representing some kind of editorial selection, there are potentially multiple editorial entities, and they would presumably have different names. use Funny-(1.2.0...)-USER_API use Funny-(1.2.0...)-SITE_API use Funny-(1.2.0...)-CPAN_API use Funny-(1.2.0...)-RH_API use Funny-(1.2.0...)-MS_API use Funny-(1.2.0...)-G_API use Funny-(1.2.0...)-K_API use Funny-(1.2.0...)-MOD_API use Funny-(1.2.0...)-ECMA_API and then use Funny-(1.2.0...)-API might actually be end up looking for use Funny-(1.2.0...)-(/^ $THEME _API $/) and then we get to fight over who sets $THEME. On the other hand, it can reasonably be argued that a "true" API should be completely agnostic as to its implementation. On the gripping hand, with roles we are specifically giving our interfaces the right to specify default implementation, and this is construed as a feature. So maybe it's okay for an API to specify its default. In fact, arguably it should be *required* to specify its default so there's clarity about who has to add more authorial information and who doesn't. But this is all probably something the CPAN folks would do a better job designing, not me. I just wanted to point out the underlying principle that version numbers are like array indices and authors are like hash keys, and that sometimes you want to have ordered versioning, and sometimes you don't. But then we have to give users a way to sort the hash keys. Hmm, I guess I had more to say about that than I thought I did. Larry