Hmm... I like it. It took me a good 6 months before I learned how to use 
CPAN. I don't see how your proposal is that different from:

  alias cpan='perl -MCPAN -e shell'

But I get the idea.  Someone (well, you've inspired me now, so I) could 
write a perl5 equivilent, because command line is quite nice.  I'll see 
how it flies with my next class.

More comments below.

On Tue, 4 Jun 2002, Miko O'Sullivan wrote:

> [This seems like a good time to post something that's been on my mind for
> some time.]

Sure. It's been pretty dull around here.

> DETAILS
> 
> A few brief philosphical points:
> 
>   1) People like languages that have tons of built-in
>       doohickeys. See PHP and Java.

See Perl 5 (though PHP and Java far exceed it, in doohickeys)

>   2) Instead of a huge standard library, a really easy to use CPAN
>       client allows programmers to have the world of modules almost
>       as easily as built-in, and with the advantage of up-to-date-ness
>       and quantity.

Indeed. And it should be _really_ easy to install to a different source 
tree and have Perl use it. I want more modules on systems I don't 
administrate, and asking for them is a pain.

> The command above would ask the user if they want to install using the
> current directory as the root of library tree, and is also mentions that if
> they want to specify another dir they can use this command:
> 
>    cpan --lib ~/lib load Date::EzDate

Hmm... yeah, I think that's as easy as library root's gonna get. I like 
C<install> better than C<load>, though.


> Don't download dependencies:
> 
>    cpan --dep 0 load Date::EzDate

So, what's the difference between --dep 2 and --dep 3? Is that depth or 
something? Or max number?

> Update all currently installed modules:
> 
>    cpan update *

Oh, if only shells could DWIM... Naturally this would do cpan update and 
then every file in the current directory. To remedy this you have to do 
some awful thing like:

        cpan update \*
        or
        cpan update '*'

Maybe 'all' would serve the purpose better.

> Update a namespace:
> 
>    cpan update Date::*

I like that idea a lot.

> Get help on using cpan:
> 
>    cpan help

Err, howsabout the GNU way...

cpan --help

> No configuration files (.e.g .cpan) are necessary.  However, you can use a
> configuration file if you want tp indicate a .cpan-like file
> 
>    cpan --conf ~/.cpan load Date::EzDate

What about no configuration file if ~/.6pan's not there, and ~/.6pan if it 
is.

> By default, progress messages are kept to a minimum.  No more of those
> hundreds of lines of bewildering make messages.
> 
>    cpan --lib ~/perllib load Date::EzDate
>    finding server
>    downloading module
>    determining dependencies
>    downloading dependencies
>    installing
>    done

We could just go with the idiomatic "don't say anything unless it's bad." 
I've developed a taste for that.  Perhaps this is better for the default 
and you can enable quiet through ~/.6pan.

> -----------------------------
> Other Misc CPAN Ideas
> 
> - Authors don't need to indicate dependencies.  CPAN figures it out from the
> use's and require's.  CPAN will not accept modules that depend on other
> modules that aren't on CPAN.  (Yes, there might be a chicken and egg problem
> there, I'm sure we can find a solution.) This leads me to...

What about version discrepancies?   I guess that can come from the 
C<use>s.

> - Automated load balancing: cpan.perl.org doesn't have to pay for the
> bandwidth of the whole world. cpan.pl should recognize a command from
> CPAN.org to redirect to another server.

Definitely. I like on-6pan mirrors better than on-client mirrors.


About the name 6PAN... I mean it reads well, but does it mean anything? 
The, er, 6 Perl Archive Network?  

RCPAN? Really Comprehensive Perl Archive Network?  :)

Or just PAN?

I got nuthin'.

Luke

Reply via email to