Avec le soutien financier des Mongueurs de Perl (que je remercie au passage), j'ai pu me rendre avec deux nouveaux mongueurs (jef et Julien "kernel" Simonet de l'ARN (Alsace réseau neutre)) à Lyon avec dans l'idée de faire avancer des des modules existants. Et là...
"We need to talk about SPORE"
Au début du hackathon, je me rends compte que se trouvent dans la même pièce :
- lizmat, une experte Perl6
- François Perrad, contributeur de la première version de la spécification de SPORE, auteur et mainteneur de l'implémentation Lua.
- jef, auteur et mainteneur de l'implémentation groovy (gspore) et probablement co-auteur de la version livescript. Il travaille dans l'équipe de Arnaud Grausem à l'Université de Strasbourg, ce dernier étant le papa de Britney, la version python.
- moi-même, intermittent du spectacle à la recherche d'emploi, presque diplomé de la Zavatta school of bullshit.
Rapidement, donc, les discutions se sont orientées vers SPORE. jef explique que la simplicité et la souplesse de SPORE ont permis à cette spécification de s'inserer dans des parties centrales du système d'information de l'Université de Strasbourg et que la popularité de la solution est grandissante. Il rapporte toutefois quelques manques dans la spécification qui ont été rapportés par Arnaud Grausem il y a quelques années. Les pull request sont restées lettre morte.
François explique que ces manques sont connus, qu'une spécification a été discutée lors des Journées Perl 2012 sans avoir été complètement rédigée mais les idées se voient déjà implémentées dans lua-spore. À cette occasion, l'équipe se demandait pourquoi SPORE n'avait pas rencontré un plus large succès tant il est vrai que cette idée simple fait gagner un temps fou (et d'autant que des spécifications qui nous semblent moins intéressantes conceptuellement sont apparues par la suite).
Afin de réactiver cette communauté, François nous a ajoutés (Arnaud et moi-même) comme membres de l'organisation SPORE de github.
Cette réactivation (la définition d'objectifs sur lequels je reviendrai dans un prochain billet) est à mes yeux un motif suffisant de satisfaction.
coté code
J'ai profité des moments de la discution sur les manques de SPORE nécessitait d'avoir un peu d'experience en la matière pour écrire un micro Dist::Zilla pour Perl6: p6sm est sur github.
Ensuite, nous avons profité de l'expertise et la patience de lizmat pour expérimenter les possibilités de metaprogrammation de Perl6 (ou pour être plus franc nous avons simplement appliqué sans varier les idées qu'elle nous a proposées) ce qui nous a rassuré : même si les namespaces sont immutables une fois clos, il est possible de créer des classes anonymes. en plus d'avoir un embryon d'implémentation que j'ai poussé sur github, nous avons surtout été satisfait par l'élégance des concepts et de la syntaxe de Perl6.