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.