Anyway, i just wanted to add this because I dont think that you can
take it for granted that all perl5porters believe the core module set
should be as restricted as possible. I dont. I believe that the core
should contain out of the box enough support for the various platforms
that perl runs on that when people write code based only on core
modules they can do a good job without reinventing wheels or code
duplication.

The trouble is that Perl is run SO many places, doing so many things, over so many platforms, across so many decades (now 2) :) that "do a good job" is enormously difficult to define.

It varies so much, that you end up slurping in module after module until the "core" is an enormous JDK-like mass of code.

So the core contains those modules that people at various points have felt we absolutely can't live without or (unfortunately) the commit had the relevant "pull" to add without reprisals.

And everyone always wants to add more, constantly.

I want to see File::HomeDir ultimately in there, because there's a number of things that use $ENV{HOME} and implement their own special case logic.

You want to add ExtUtils::Installer once it works, so ExtUtils::MakeMaker can use it.

Module::Build wants to go in, but because they use YAML for the data file, we add Ingy's YAML.pm, who then decides he wants to use Test::Base for everything he does, so that slips in undernearth, and of course Test::Base is based on Spiffy, so Spiffy needs to go in the core (which isn't what actually happened, but could have)

It goes on and on and on, and eventually it's impossible to make the core build and smoke cleanly on any platform, because not all of these packages work everywhere all the time on all platforms.

The core is expected to work everywhere, just look at the number of File::Spec subfiles now. The work involved to deal with full(ish) platform support is enormous.

Which is why although I'd secretly like to put File::HomeDir in tomorrow and deal with problems later, I'm not going to say a damned thing until I'm sure it's completly bug free and working on as many platforms as possible, before I even think of broaching the idea.

On the other hand, if you have a specific problem domain you want to address, it's perfectly acceptable to build a distribution that contains all the extra things you need for that problem domain, without the need to impose the extra bloat on the core.

Adam K

Reply via email to