Moo et Type::Tiny.
###Introduction
J'ai été très longtemps un grand fan de Moose, c'est vraiment un module très
bien et puissant. Mais il souffre malheureusement d'un gros problème, c'est
qu'il est très lourd, il a beaucoup de dépendances et il est plutôt lent en
terme de performance. La solution est d'utiliser Moo, si vous n'avez pas
besoin de protocole à méta-objets, et que vous cherchez quelque chose de
rapide et puissant alors Moo est pour vous.
###La solution
La solution est donc d'utiliser Moo à la place de Moose, il est beaucoup plus
léger et rapide. L'avantage de Moose est qu'il y a un système de type, on
indique le type des attributs, ce qui est très pratique ça évite certaines
erreurs de l'utilisateurs, on est certains de manipuler par exemple un hashref
ou une string, il est aussi possible de valider les paramètres d'une méthode
avec MooseX::Params::Validate.
Moo n'offre pas de système de Moo, mais
**Toby Inkster** a initié Type::Tiny qui est système de contrainte compatible
avec Moo, Moose et Mouse. Il y a donc maintenant la possibilité d'avoir un
système de type pour les attributes et les paramètres de méthodes avec Moo, le
module est puissant, rapide et facile à utiliser. Je ferai des articles avec
des exemples d'utilisation du module.
###Conclusion
Je suis donc aujourd'hui un fan de Moo et Type::Tiny et je vais migrer
progressivement mes projets dessus. Perl est vraiment un bon langage, et surtout
sa force est le CPAN qui contient de très bon module.