On Sat, Sep 01, 2001 at 10:19:07PM +0100, Graham Barr wrote:
> > > >The second is 'o' for 'other'.  A lot of stuff just doesn't fit.
> > > >Test::Inline lets you put code in POD.  What the hell kind of
> > > >interface is that?
> > 
> >     I don't see how that affects what kind of interface it is.  It's
> > still functional, OO, declarative, procedural, whatever.
> 
> Yes, I agree with Kurt on bot points.

We already have an 'other'.  ' n - no interface at all (huh?)'.
Module authors are using it to mean 'other'.


Here are some common, troublesome modules.  Simply describing these as
'procedural' or 'object-oriented' doesn't tell you anything useful.

CPAN        Sure, it's got an OO interface in there somewhere.  But the
            shell interface is the real point of the module.

Text::Template      Simply describing these with O or f doesn't do
Embperl             justice to the fact that the *real* point is
HTML::Mason         the ability to embed code into other mediums.
Test::Inline
Inline::C

Maybe we need an 'e' for 'embedded code' and some classification for
modules which are actually programs.  's' for 'shell program'?


There's already confusion about this.  Looking at the Inline namespace...

Inline::
::CPR              adpn? C Perl Run - Embed Perl in C, ala Inline     INGY
::C                bdpn? Write Perl subroutines in C                  INGY
::CPP              bdpO? Easy implementation of C++ extensions        NEILW
::Python           adcO? Easy implementation of Python extensions     NEILW
::Tcl              adcf? Write Perl subroutines in Tcl                RRS

Let's see... two have "no interface", two are OO and one is
functional.

They ALL have the same basic interface!  Yet it's described three
different ways, depending on the author.  Obviously some confusion.


We also need 'b' for 'bundle'.

Bundle::
::Bugzilla         Rdon? Bundle to load modules for Bugzilla          ZLIPTON

Bundle::Bugzilla is listed as having 'no interface'.


So that's..

    p               pragma          (Perliaga, Coy, etc...)
    e               embedded code   (Inline, Mason, etc...)
    b               bundle          (Bundle::whatever)
    s (or maybe P)  shell program   (CPAN)
    o               other           replacement for 'no interface'

plus the existing ones, and discourage the use of 'n'.


That should do a better job of describing what's on CPAN.


-- 

Michael G. Schwern   <[EMAIL PROTECTED]>    http://www.pobox.com/~schwern/
Perl6 Quality Assurance     <[EMAIL PROTECTED]>       Kwalitee Is Job One
If you'll mount me, I'll let you bomb Canada until they swoon.

Reply via email to