[Koha-devel] Moose vs Moo

Frédéric Demians frederic at tamil.fr
Fri Apr 17 09:17:11 CEST 2015


Thanks Paul for raising this.

> I'd like to have more informations. For example:
>  * arguments in favor of Moo ?

Taking a look at Moo, its main advantages are speed and compatibility with
Moose.

https://metacpan.org/pod/Moo#MOO-AND-MOOSE

> is the argument "the overhead is cancelled by Plack persistency" valid & is
> it removing this argument in favor of Moo ?

Don't forget that overall run-time performance of Koha is generally not
limited by the object system, but by external IO, design decisions etc.,
AND persistency for a webapp.

For the sitemap command-line script, I've compared execution time
between Moose/Moo versions, and found:

Moose
----------------
real    0m5.277s
user    0m5.136s
sys     0m0.096s

Moo
----------------
real    0m4.705s
user    0m4.540s
sys     0m0.096s

Moo is quicker but not that much in this case.

> I'd like to have more details about "too many important features are lost"
> with Moo ?

Out of my brain, missing Moose features in Moo:

- 'isa' parameter to attributes, and a complete type system.

- Method modifiers, but is seems it's now somehow implemented in Moo.

- Delegation

- MooseX:: An extensive ecosystem of Moose extensions.

- Class::MOP. A Meta Object Protocol. It allows to do classes introspection for
  example, or classes loading during runtime.


More information about the Koha-devel mailing list