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.