Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Re^3: What modules should be added to the corelist?

by Anonymous Monk
on Aug 16, 2019 at 22:23 UTC ( #11104585=note: print w/replies, xml ) Need Help??

in reply to Re^2: What modules should be added to the corelist?
in thread What modules should be added to the corelist?

To expect that the Perl developers care for and maintain a module that you consider good is expecting a bit too much. CPAN is available and as you already understand, recommendations change. Hence this is why the Perl core aims to only include what is needed for/by Perl itself.

While agreeing with the lean core principle, I've seen Perl get severely eclipsed TWICE by completely inferior languages that sell themselves as a "kitchen sink" and as having "batteries included". This is about what people want and what Perl needs, not my favorite modules.

Clearly Perl is incomplete without modules or the corelist would not have over 600 items. The only question is what to include. My suggestions fall into 3 broad categories:

1. Complete Perl by bundling missing features (like a REPL)*
2. Update old interfaces and make things easier (like IO and Rule)
3. Encourage Perl use by using other languages in Perl! (FFI, Inline)

I would settle for Path::Tiny but this example from IO::All says it all:

replace this: open STUFF, '<', './mystuff' or die "Can't open './mystuff' for input:\n$!"; local $/; my $stuff = <STUFF>; close STUFF; with this: my $stuff < io './mystuff';
* Frankly I would go wild with things like PPI, Perl::Tidy, Perl::Critic, Perl::Examples, something like Classic::Perl (expanded, for complete backcompat), B::Keywords, B::C, B::CC, Modern::Perl, etc.

Replies are listed 'Best First'.
Re^4: What modules should be added to the corelist?
by Corion (Pope) on Aug 17, 2019 at 06:32 UTC

    Yes, and there is nothing stopping you from doing this, as I already outlined. Your idea of what is important is entirely not my idea of what is important. "Updating old interfaces" means breaking backwards compatibility and old scripts - feel free to do that, but don't call it Perl.

    To expect that such modules would be maintained by the Perl maintainers is too much.

    IO::All is a horrible idea that opens up the locker of footguns that PHP closed a long time ago, by allowing open("http://..."). It would be a very bad idea to include it in the Perl core.

    Also look at Python, whose Batteries Are Leaking. Having modules maintained separately from the core is important because the module release cycle is different from the Perl core release cycle.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (4)
As of 2019-10-21 00:47 GMT
Find Nodes?
    Voting Booth?