On Thu, Nov 24, 2011 at 4:23 PM, Michael G Schwern <schw...@pobox.com> wrote:
> I don't think cobbling together an OO system from bits and bobs, and then
> relying on it, makes more sense than using a fully baked one

Of course, that pretty much describes Perl OO in a nutshell until
Moose/Class::MOP came along.  And it describes pretty much how every
other core module does OO.  (With the possible exception of CPANPLUS,
which dragged Object::Accessor into core with it.)

To be clear -- I'm not (yet) saying that TB2 should absolutely roll
it's own OO, but I am concerned about hiding yet another copy of a
perfectly decent CPAN module so that we can avoid saying that we're
including another CPAN module in core.  It's seductively easy to get
the benefits *now* during the development of TB2, but there are
downstream maintenance costs that we shouldn't discount lightly.

> Also one of the side benefits of shipping TB2::Mouse is now other Test modules
> can rely on it getting the benefit of a fully operational OO system without
> adding further dependencies.

And potentially *other*, non-test modules could start doing so too.
Is there a guarantee that TB2::Mouse will always be in core (short of
a deprecation cycle)?  Would it have to be available "forever" under
"use v5.18"?  I'm very leery of adding more core modules when the core
policy around deprecation or lack thereof is in flux.

[ Social hack: include TB2::Mouse but mark it "deprecated" from the
start.  :-) ]

If I had my druthers, I'd like to see Stevan's core MOP work finished,
then I'd like to see a powerful, minimalist object system on top of
*that* built for inclusion in core, then I'd like to see core modules
gradually migrating to that.  And I'd like a pony, too.

Maybe the related, fundamental question is whether TB2 itself needs to
be in core -- or, if so, *when* it needs to be in core.  Maybe core is
just fine with Test::More as is and anyone needing more powerful
testing frameworks can install TB2 from CPAN.  (Ditto for any new test
modules that are written that rely on TB2.)  Eventually, when TB2 is
well proven on CPAN and the core offers the kind of MOP that TB2
needs, then it can migrate in.

-- David

Reply via email to