hello monks,

The preamble to this post must be clear: i'm four year late and i do not want to criticize Perl devs who maintain and make perl a better thing with new releases, i want just to know what happened and why.

The fact: i was lurking on the web with some vague perl learning intention when i came across Module::Pluggable in the official perl docs and I was intrigued by it.
After a while, since i've closed the browser tab, I've gone for it in the modules (M) list the official docs and i was surprised to not find it there. I've lazyly asked in the chat with no luck.
Put aside my lazyness i searched the possible motivation and i found this post that announced the module to be removed from core prior the 5.20 Perl release.

Then, picking up a little of hubrys, i decided to know why it had to be removed, searching (as suggested by tye) the p5p archive and i found
module deprecations for 5.18 by Ricardo Signes listing all candidates to be removed from 5.18.
The post mention at the beginning that the original discussion was started by Sayer X at Taking CPANPLUS out of core

Now i've read them all and i 've understood something: the goal was to remove CPANPLUS (i assume it is problematic or bugged or not so used..).
A dependency scan of modules used by CPANPLUS was made and for these modules other core modules were searched using them to be sure nothing important would be removed. The list contains Module::Pluggable.

While reading these long threads i read this good sentence by Steffen Muller I want to report (because i was in the 'many' count below..):
I think in all of this, choice of words was a bit poor. "Deprecated" will read to many as "don't use, it's bad", whereas it just means "won't be in core in the future". Please make really, really, really sure this is clear to everyone.

Understood this concept I still do not understand why to remove Module::Pluggable from core.

My idea of the core may be wrong but i think it is convenient (from the users perspective, not the devs) to have many useful modules in it.
It is not a problem installing from CPAN (Yes, even you can use CPAN) but i ever look to core modules as the minimal common factor every perl users can have.
A Perl's program that uses only core modules has anyway a plus in my mind. Also in my limited perl playground i've enough machines to be tired to install too many CPAN modules if i can write down my scripts using core modules. This does not means that i reinvent every wheel i come across, so if i need something to process, let's say, hairy XML i'll install XML::Twig with no problem. But i dont install (as for a recent example) DateTime::Format:: Strptime just to do a one-time time string conversion.

It sounds so ureasonable my opinion? Personally i'd like many others things in core: many *::tiny modules are candicates in my mind. Considering th above example of XML, would not be better to have XML::Twig (or similar good ones) in the core, istead of having all XML new comers been fooled for weeks by the XML::Simple siren?
Probably i would like too many things in the core (Tk..) but why to remove unharmful modules? or is somehow Module::Pluggable risky and i've not found right infos?

Incidentally i learned something useful: declare dependencies also for core modules because nothing is eternal!

About Module::Pluggable i was intrigued by it and i was considering to add the plugin ability to one of my long running spare time projects. Also the module had very good reviews also from one of the author of the mentioned p5p posts (ok was 2007..). the module was also put into the Perl Advent Calendar (ok was in the 2004..). So why it was removed?

L*

There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

In reply to About the CORE and the history of Module::Pluggable by Discipulus

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.