Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^2: Upgrading CPAN - Yes We Can

by jdrago_999 (Hermit)
on Jun 04, 2009 at 04:34 UTC ( [id://768275]=note: print w/replies, xml ) Need Help??


in reply to Re: Upgrading CPAN - Yes We Can
in thread Upgrading CPAN - Yes We Can

CPAN is not an online coding collaboration tool. CPAN was, and will always be, a distributed distribution mechanism. Nothing more, nothing less.

I wouldn't say "always" there. Or at least "always" + "only" - I might have misunderstood the new whizbang features in Perl6's modules but this part right here:

The syntax of a versioned module or class declaration has multiple parts in which the non-identifier parts are specified in adverbial pair notation without intervening spaces. Internally these are stored in a canonical string form which you should ignore. You may write the various parts in any order, except that the bare identifer must come first. The required parts for library insertion are the short name of the class/module, its version number, and a URI identifying the author (or authorizing authority, so we call it "auth" to be intentionally ambiguous).
For example:

class Dog:ver<1.2.1>:auth<cpan:JRANDOM>; class Dog:ver<1.2.1>:auth<http://www.some.com/~jrandom>; class Dog:ver<1.2.1>:auth<mailto:jrandom@some.com>;

Since these are somewhat unweildy to look at, we allow a shorthand in which a bare subscripty adverb interprets its elements according to their form:

class Dog:<1.2.1 cpan:JRANDOM>

So instead of just

use DBI;

I could have

use DBI:ver<4.2>:auth<http://www.devstack.com.com/cpan/DBI>;

and get a completely different set of code than the "canonical" version (who knows how we decide on that).

Just Perl6's package loader tells me that something significant is about to happen to CPAN - and someone (I'll do it if I can get the time to) will need to accommodate the new features Perl6 will provide. I figure we could extend those features to Perl5 by adding coderefs to @INC. Something like:

use NiftyPerl6PackageNames; use DBI:ver<4.2>:auth<http://www.devstack.com.com/cpan/DBI>;

..............................

CPAN is also not a community effort.

If you say so...

It was created by a few who 'just fucking did it'. IMO, CPAN was great, still is great, and will be great in the future.

I have a strong feeling that a single, comprehensive archive of instantly-installable, free and open-source code will not only belong to Perl much longer. Other platforms could really benefit from something similar, and before long I'm sure CPAN will be viewed as a "predecessor to XYZ" (where XYZ is the Great New Thing for something else, like Ruby, .Net or Python).

I also believe that if (for example) someone like Microsoft were to create a "CPAN" for .Net, it would have all the features I've mentioned above, and more. Ultimately it would make our beloved CPAN look like a toy from the 1990's.

It's simplicity and unpretentiousness are the keys to its success. That allows the many mirrors to exists - the simplicity means virtually no (CPAN-specific) maintenance.

Uh-huh. Simplicity is good. So is a lack of pretense.

You and I and every programmer in the world knows that the first time you write a system, you know you could always do it better the second time around. The thing is that every system becomes a prototype for its replacement. Even Perl5 will one day succumb to Perl6. It is inevitable.

Along similar lines, the CPAN and all of its satellites will one day either become or become eclipsed by another CPAN-esque service that is simply Way Better.

Saying that what we have is Good Enough, or slinging the good old "Well then crank some code out, dude" just won't cut it. I have a few modules on CPAN and am always adding more. I do crank out code when I can, and when I see a need that's not yet fulfilled - like this one.

Creating Yet Another CPAN Alternative is, while within my realm of skill, not what I would aim for. Instead, I would like to open the discussion for what the Perl community and user base will need for the next 20 years with Perl6.

If that discussion has already taken place, I will probably it 2 minutes after typing this response - and read it. And perhaps see why I'm barking up the wrong tree. Or maybe I'll post a link to that discussion within this thread.

Wish me luck ;)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://768275]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (5)
As of 2024-04-23 18:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found