[Catalyst] Re: OT: Use the CPAN, Luke?

Aristotle Pagaltzis pagaltzis at gmx.de
Thu Nov 27 06:58:02 GMT 2008

* Toby Corkindale <toby.corkindale at strategicdata.com.au> [2008-11-27 04:25]:
> Aristotle Pagaltzis wrote:
>> Case in point, Mouse is essentially Moose Light. Since
>> Catalyst itself is becoming Moose-based, is there *any*
>> reason to use Mouse instead? I suppose if it automatically
>> stubs itself into a Moose loader where Moose is available,
>> that would be not *too* bad, but it’s still a pointlessly
>> added dependency.
> According to the Mouse docs, Mouse supports the most commonly
> used  features of Moose, but runs in 25% of the time. I'm happy
> if the Catalyst crowd has decided to use a
> performance-optimised version of a module, but it seems like
> Mouse has  had less testing exposure to "production" systems.
> (ie. The ancient  Perl/CPAN modules running on debian, rhel,
> etc) (I note that Moose itself passes tests on Debian stable)

Sorry, I didn’t make myself clear enough. I meant that Catalyst
is soon going to be loading Moose. So why should a 3rd party
Catalyst extension load Mouse? OK, it might be a bit faster than
Moose, but Moose will be loaded anyway, so any performance
benefits will have to trade off against larger app instance
processes, which probably adds up to a net negative for actual
performance-hungry apps. Little is gained, therefore – yet,
another point of potential installation failure is added.

Maybe there should be a list of modules that should be preferred
for certain purposes when writing Catalyst extensions? Of course
we don’t to *prescribe* any of them, since the main selling point
of Catalyst is that cares more about being glue and about having
an opinion. So if you want to glue something big like Template
Toolkit or Mason into Catalyst you might have to accept modules
which duplicate functionality that other dependencies already
offer. But it might be good to say “for tasks where you don’t
already have a really strong opinion and where it’s up to you,
please strongly consider using the following modules”. (The
Catalyst Canon maybe, if you will.)

It would certainly be an interesting exercise to go through the
dependency chains of a few big Cat apps to see how much duplicate
functionality and overlap they have. A union of the prereqs of a
big pile of of Catalyst extensions could also serve as discussion
basis for that suggested Canon.

Aristotle Pagaltzis // <http://plasmasturm.org/>

More information about the Catalyst mailing list