http://qs1969.pair.com?node_id=528584

One of the main problems I have found with Perl in a production environment is the installation of Perl modules.

If you give a Perl program to someone and they run it on a different machine, they need to download and install any Perl modules that your script depends on.

Contrast this with Java or .NET with a monolithic 100mb+ installer that installs all of the libraries (modules, shared code, etc) in one hit. There are many more Perl modules available (through CPAN/PPM) than Java or .NET libraries - but the standard set that you get when you install Perl is much smaller.

CPAN, PPM and PAR go a long way to addressing this problem much of the time, but it is still an extra step a Perl program user has to learn and take. Many times I have had to defend Perl over these extra steps.

Why can't we have a Perl distribution that includes a maximal amount of CPAN modules, rather than a minimal amount? These days, I would be fine with a 200MB Perl installer if I knew that I could write programs that relied on a much larger variery of modules than the standard set with no extra work from my users, and no PARing step for me.

I guess my question is why the standard set of Perl modules so small when the number of CPAN modules is so big? Was it a quality issue? Is there legal issues with bundling CPAN modules? Is there a technical reason why you can't bundle more CPAN modules in a standard Perl distribution?

Just some thoughts.

-Andrew.


Andrew Tomazos  |  andrew@tomazos.com  |  www.tomazos.com

Replies are listed 'Best First'.
Re: Perl with Everything
by brian_d_foy (Abbot) on Feb 07, 2006 at 21:03 UTC

    You don't need to bundle every module in CPAN to use it, and I wouldn't want a stable.tgz that had everything in it.

    It really doesn't take that much effort to install Perl modules, and the ones that do take effort aren't going to install any easier if they are in the core.

    It isn't an issue of technology. We could just make the distribution huge. That would be a lot of wasted effort, though.

    There is a small issue of quality. The Perl core is pretty well tested. That isn't true for a lot of CPAN.

    In most cases it's not a legal issue since most modules have the same license as Perl.

    It's just not a good idea because it doesn't gain you any real benefit. If you magically solved this problem, the same people would find something else to complain about. It's not that they don't use Perl because the core set of modules is so small; it's usually something else, such as firewall policies, ignorance, or just plain stubborness.

    Sure, Java and .NET may have huge installers, but the minimal size of CPAN barely fits on a CD, and most people aren't going to use most of that. Why would you want to wait for 600 MB to download just to get Perl?

    You could argue for a fat distribution, but you can already make that yourself. Get a copy of a minicpan and there you are. You bundle your script as a normal Perl distribution and let CPAN.pm handle the rest.

    And, you forgot to mention which other modules you thought should be part of core.

    --
    brian d foy <brian@stonehenge.com>
    Subscribe to The Perl Review

      And, you forgot to mention which other modules you thought should be part of core.

      If i had a vote id say that the AS "core" module set would be a nice improvement over the p5p "core" module set. Actually, as time goes by it seems like the p5p set is slowly drifting in that direction anyway.

      ---
      $world=~s/war/peace/g

Re: Perl with Everything
by perrin (Chancellor) on Feb 07, 2006 at 19:03 UTC
Re: Perl with Everything
by ysth (Canon) on Feb 07, 2006 at 18:52 UTC
    Periodically people raise the suggestion of more minimal or more inclusive distributions. Obviously there are also questions about how the various existing distributions do things. The perl-dist mailing list was set up for discussion of these issues, but it has always seemed to be that people have more interest in talk than follow-through.
Re: Perl with Everything
by BUU (Prior) on Feb 08, 2006 at 03:34 UTC
    To reiterate the point already made above me, FREEL FREE TO DO SO. Absolutely nothing is stopping you from taking 200 perl modules and making a distribution out of them. You can even include perl! Then you can just give it away to people!
Re: Perl with Everything
by Courage (Parson) on Feb 09, 2006 at 05:20 UTC
    I agree with other responders and want to add, that huge distro automatically becames hard to upgrade and maintain.
    When only a small module changes, its not hard to repackage again, its hard to convince people to upgrade again, only because your new script requires small upgrade of small pure-perl module.

    Then again, you'll end up with 200Mb initial distro and a number of small update packages, and finally there will be no gain.

    Best regards,
    Courage, the Cowardly Dog

Re: Perl with Everything
by Perl Mouse (Chaplain) on Feb 08, 2006 at 22:42 UTC
    Why can't we have a Perl distribution that includes a maximal amount of CPAN modules, rather than a minimal amount?
    That's a bogus question. We can have a Perl distribution that includes a maximal amount of CPAN modules. And it's quite easy to make.

    You can do it.

    I guess the question is, what's stopping you from creating a 200 MB Perl installer?

    Perl --((8:>*
Re: Perl with Everything
by pileofrogs (Priest) on Feb 08, 2006 at 19:41 UTC

    While this might be a figment of my imagination, I feel more confidant in modules that ship with the core than with modules I grab off of CPAN. I know that lots of people use and therefore test the modules that ship with the core. I don't know that about the modules I get from CPAN (though it is true of many of them.) If we shipped everything with the core, I'd lose that extra (possibly imagined) assurance.

    --Pileofrogs

Re: Perl with Everything
by hackdaddy (Hermit) on Feb 12, 2006 at 17:40 UTC
    SVN::Web is awesome, but getting the owner of the Subversion server to successfully install it is troublesome. It's sad to see install issues and a large dependency list distract from Perl's wonderful utility.