Traits, r?les and other repurposed terms

Matt S Trout dbix-class at
Sat Feb 9 14:40:24 GMT 2008

On Fri, Feb 08, 2008 at 05:23:59AM -0800, Ovid wrote:
> --- Abigail <abigail at> wrote:
> > (Of course, "roles" is just "multiple inheritance" with a different
> > name.
> With all due respect, this is not even remotely true.

Objects are a poor man's closures.

Closures are a poor man's objects.

Multiple inheritance is a poor man's role application system.

Role application is a poor man's multiple inheritance.

Certainly I've found the core effects of MI with a C3 MRO and of roles
to be remarkably similar - anything in MI that calls next::method is a
method modifier, anything that doesn't is a plain method. Conflict
detection and resolution and similar is just tooling built on top; while
I find myself reaching for roles instead of MI now 99 times out of 100
DBIC's component system is built out of C3+MI and with a little programming
discipline provides pretty much the same result.

      Matt S Trout       Need help with your Catalyst or DBIx::Class project?
   Technical Director          
 Shadowcat Systems Ltd.  Want a managed development or deployment platform?  

More information about the mailing list