Once a module goes into the core of Perl 5, it stays there forever, for good or evil. Having written tests for a chunk of core modules, some of that code isn't very good. (In 2004, we know a lot more about good Perl 5 programming than anyone did in 1995, so please don't read into that sentence more than I intend.) Some of the interfaces are terrible.
Will those modules ever go away? Unlikely. Backwards compatibility is important. Will those modules ever have interface-compatible replacements? Maybe someday, but how will you convince people to use them?
I wonder, idly, if every core module became dual-lived, distributed in the core and on the CPAN, if someone could write Bundle::CoreModules, keep it up to date, and the core could grow smaller.
Yes, there's still a problem with those people who compile Perl themselves apart from vendor packages, but I'd be surprised if those people don't have the technical saavy to download and install such a bundle somehow.
That leaves shops who refuse to install anything not distributed with the core. It's too bad that business stupidity isn't more lethal (to businesses).
There may be drawbacks I don't see right now, but the idle thought has a lot of appeal at the moment.
Business Stupidity (Score:2)
It's too bad that business stupidity isn't more lethal (to businesses).
I frequently hear programmers talk longingly about how their competitor's products are so much more professional and must be better written. However, I've sometimes had a chance to see the competition's code or talk to their developers and their developers have the exact same thoughts. Somehow everyone knows that the grass really isn't greener except when it applies to their own situation.
The reason that businesses don't do a bet
Perhaps seperate out into Core and Standard lib (Score:2)
Looking at what is included in things like NMS and or required by commonly used modules like DBI would help categorise which modules should be organised where.
It would also be nicer if openssl, etc were integrated into the core so that users had things like SSL, mysql, etc working 'out-of-the-box'.
@JAPH = qw(Hacker Perl Another Just);
print reverse @JAPH;