Moose should be a swear word. Every time I've encountered Moose, it just made maintenance harder. The argument about eliminating boilerplate code is laughable, when you look at any Moose class with pages of crap at the top. (should be indented, but slashdot ecode sucks)
has 'blah' => {
is => 'rw',
isa => 'Str',
};
Thanks, I could've put that in a hash, and I didn't really care if it was a string or modifiable. Now I get useless Java-like stacktraces to boot.
Not to mention the implicit things like "_build", "clear", and reimplementations of things that were already native perl (traits; oh, wow, I can....count the number of items in an array now? and return those items? and tell if it was empty? Thanks for the unnecessary crap, oh yes this is much more readable....).