2 ms·
Have a look at MooseX::Declare and MooseX::MultiMethod then - the ability to add syntax to the language combined with a stunningly flexible, extensible metaprot
by mst 17y ago
Have a look at MooseX::Declare and MooseX::MultiMethod then - the ability to add syntax to the language combined with a stunningly flexible, extensible metaprotocol is a huge win.
About the only object system I can pull similarly beautiful tricks in is CLOS. python and ruby don't even come close.
Oh, and before somebody yells "but but it's a library", that's a good thing - it means the syntax and semantics can be changed without needing to produce a new incompatible interpreter version. Ruby 1.9 and Python 3 have both run into adoptions problems because of compatibility issues, whereas the Perl5 language v10 (and soon v12) don't/won't have nearly the same adoption problems because we focus on enabling libraries to improve the language rather than on baking in additional features.
Not that there aren't advantages to shoving things into the compiler and VM directly, but I'm not sure I believe that in this case they outweigh the advantages of keeping things as libraries.