URL: https://linuxfr.org/users/skarsnik/journaux/merry-6-c-mon-experience-avec-perl-6 Title: Merry 6.c! Mon expérience avec Perl 6 Authors: Sylvain Colinet Date: 2015年12月26日T15:54:09+01:00 License: CC By-SA Tags: perl et perl6 Score: 22 Je profite d'un journal pour vous parlez de la sortie de Perl 6 mais surtout offrir un avis qui sort du "Regardez on peut écrire le code du lanceur d'une fusée en 1 ligne" Ce journal n'est pas là pour vous faire une liste des fonctionnalités de Perl 6, car des gens mieux informés que moi comprennent probablement mieux la plupart des concepts existant dans le langage. Désolé de n'être qu'un simple mortel. Mes connaissances en matière de compilateur/théorie du langage sont vraiment faibles. Premièrement je vais préciser ce qui est sorti réellement, même si l'annonce officielle est assez claire sur ce point (https://perl6advent.wordpress.com/2015/12/25/christmas-is-here/) La version "1.0" est surtout une publication des spécifications du langage, accompagnée d'une implémentation de ces spécifications. Pour les personnes moins informées cela signifie surtout qu'à partir de cette version $truc + $machin signifiera toujours l'addition numérique de $truc et $machin. (Oubliez qu'on peut étendre le langage pour changer ça, mais vous avez saisi l'idée générale je pense.) Maintenant je vais parler de mon expérience avec perl6 sur ces 3 derniers mois. Ce n'est pas forcement pour troller mais offrir peut-être une vue plus "pratique" sur ce qu'est bosser avec Perl 6. Pour être clair, même si ces spéc. regroupent beaucoup de choses, Il y a encore énormément de choses qui sont aussi importantes que le langage en lui-même qui ne sont pas (ou vaguement) définies. Sans vous faire un détail de ce qui est là/pas là il est important de savoir que l'écosystème actuel est un peu le bazar. Il est basé sur des répertoires git sur github avec un installeur qui a tendance à exploser d'un jour à l'autre, et il n'est pas rare qu'un changement 'mineur' puisse casser un module déjà existant. Ne vous attendez pas du tout à du solide comme le CPAN, ni à voir les modules intégrés dans votre distribution préférée. Je devrais probablement vous parler de comment je me suis mis à Perl 6. Je lis beaucoup de fanfiction sur l'univers de Mon Petit Poney et le site fimfiction (https://www.fimfiction.net) est une place centrale pour en trouver. J'étais curieux de faire des statistiques sur ce que je lisais (Combien d'histoires concernent ce personnage? Je suis plutôt aventure ou romance...) et j'étais curieux de voir où en était Perl 6. Je vais pas détailler mon parcours entier avec le langage, ça ressemble beaucoup à https://perl6advent.wordpress.com/2015/12/16/day-16-yak-shaving-for-fun-and-profit-or-how-i-learned-to-stop-worry-and-love-perl-6/ avec de nombreux patchs et quelques modules écrits pour arriver à mes fins. (Hé, je suis dans l'annonce de Rakudo pour mes patchs sur NativeCall). Autant être honnête sur les performances, Perl 6 est lent. J'ai dû écrire un module qui utilise une bibliothèque C pour analyser les pages web de fimfiction parce que le module qui fait ça avec du code natif met 30 à 40s à analyser les 250ko de HTML du site et offre un résultat faux. En comparaison la bibliothèque C utilisée (gumbo) met moins de 0,1s et 1,5s est perdu à générer les objets perl. Je pense que Perl 6 est pas du tout prêt à, par exemple, être utilisé pour faire du web. Je suis pas du tout un développeur web mais 15s pour générer http://www.nyo.fr:1080/fimstuff/stats_230097.html sur mon serveur dédié (Un i7 2.2Ghz) ça me parait pas génial (les données sont prises dans une base de données dans cet exemple). Quelque chose qui est très frustrant aussi et je pense qui ça risque de dérouter beaucoup de gens : c'est presque une obligation (en ce moment) de travailler si possible avec la version de développement de Rakudo si vous voulez utiliser certain modules. Ça devrait sûrement se stabiliser dans le prochain mois. Un souci avec ça, c'est que les outils de mise à jour ne sont pas trop finis et souvent ça se résume à : Virer son installation, reconstruire Rakudo et réinstaller les modules. Je vous conseille aussi d'avoir un compte github, vous allez sûrement rencontrer un moment où vous devrez forker un module pour corriger quelque chose. J'avais des moments où pour lancer un script j'utilisais 4 ou 5 copies locales de modules, le temps que mes modifications soient mergées. Bon après tous ces points pas forcement glorieux, qu'est-ce qui rend bosser avec Perl 6 assez cool : Mine de rien c'est super agréable d'écrire du Perl 6, spécialement si vous avez déjà bossé avec Perl 5, juste des trucs comme `say` ou `%hash` ou encore la syntaxe de la boucle `for`. Les paramètres nommés sont super agréables et offrent de nouvelles façons de gérer les fonctionnalités sur certaines fonctions car ils peuvent facilement être utilisés comme une forme de flags. Par exemple en utilisant DBIish vous pouvez écrire `$sth.row()` pour récupérer des données sous forme de liste ou `$sth.row(:hash)` pour les avoir sous forme d'un tableau de hachage. Écrire des bindings vers des bibliothèques C est vraiment simple (http://doc.perl6.org/language/nativecall), surtout comparé à ce qu'offre XS pour perl5. Vous n'aurez pas forcement besoin d'une bonne compréhension du C. Cela permet assez facilement de combler un manque dans les modules. Les modules Perl 5 sont à priori facilement utilisables aussi, mais ce qui permet de les utiliser ne veut pas s'installer pour moi, donc je n'ai pas encore pu tester. Les gens qui bossent sur Perl 6 sont assez accueillants, il est assez facile de modifier des composants du langage car une grande partie est écrite en Perl 6 ou un langage s'en rapprochant (NQP). Il est pas rare qu'un bug reporté sur #perl6 se trouve corrigé dans l'heure qui suive. Dans tout ça je me suis un peu perdu dans mon journal, mais ce qu'il faut retenir c'est que Perl 6 est vraiment fun avec beaucoup de potentiel mais la récente publication n'est pas vraiment prête pour le monde "réel". Mais si plus de personnes commencent à utiliser le langage, il devrait atteindre une bonne maturité assez rapidement, car le grand facteur bloquant (à mon avis) est le manque de développeurs surtout au niveau des modules. Voici quelques liens relatifs à ma participation sur Perl 6 https://github.com/Skarsnik Mon profile Github http://skarsnik-stuff.blogspot.fr/2015/11/scrapping-web-with-perl6-so-you-want-to.html Un article (en anglais) sur comment parser du web/html. Mes modules http://modules.perl6.org/dist/Gumbo http://modules.perl6.org/dist/Config::Simple http://modules.perl6.org/dist/Discord http://modules.perl6.org/dist/NativeCall::TypeDiag http://modules.perl6.org/dist/Acme::WTF

AltStyle によって変換されたページ (->オリジナル) /