III. Perl et sa communauté▲
Le plus grand succès de Perl est l'énorme quantité de bibliothèques réutilisables développées pour lui. Là où Perl 4 avait des bifurcations de code pour se connecter à des bases de données telles qu'Oracle et Sybase, par exemple, Perl dispose maintenant d'un véritable mécanisme d'extension. Larry voulait que les gens créent et maintiennent leurs propres extensions sans fragmenter Perl en des milliers de patois incompatibles et cela a fonctionné.
Cette réussite technique était presque aussi importante que la croissance d'une communauté autour de Perl. Les gens écrivent des bibliothèques. Les gens continuent le travail d'autres personnes. Les gens rendent une communauté intéressante à joindre, à préserver et à développer.
La communauté Perl est forte et saine. Elle accueille des participants enthousiastes à tous les niveaux, de débutants aux développeurs experts. Profitez des connaissances et de l'expérience de nombreux autres programmeurs Perl, et vous deviendrez un meilleur programmeur.
III-A. Le CPAN▲
Perl est un langage pragmatique et la disponibilité de dizaines de milliers de bibliothèques Perl librement réutilisables démontre ce pragmatisme. Si vous avez un problème à résoudre, il y a de très bonnes chances que la communauté mondiale Perl ait déjà écrit et partagé le code pour le résoudre.
La programmation en Perl moderne utilise intensivement le CPAN (http://www.cpan.org/). Le Comprehensive Perl Archive Network (3) est un système de téléchargement et mise en miroir du code Perl redistribuable et réutilisable. C'est l'une des plus grandes archives de bibliothèques de code dans le monde, sinon la plus grande. Le CPAN offre des bibliothèques pour tout, des accès aux bases de données aux outils de profilage, à des protocoles pour presque tous les périphériques réseau jamais créés, à des bibliothèques de sons et graphiques et des fonctions wrappers pour appeler les bibliothèques partagées sur votre système.
Sans le CPAN, Modern Perl est juste un autre langage. Avec le CPAN, Modern Perl est un outil puissant pour résoudre des problèmes.
Le CPAN met en miroir des distributions, c'est-à-dire des collections de code Perl réutilisables. Une distribution peut contenir un ou plusieurs modules ou des bibliothèques autonomes de code Perl. Chaque distribution occupe son propre espace de noms dans le CPAN et fournit des métadonnées uniques.
Le CPAN est grand, très grand
Chaque mois des centaines de contributeurs enregistrés et des milliers de modules indexés dans des centaines de distributions s'ajoutent au CPAN. Ces chiffres ne prennent pas en compte les mises à jour. En janvier 2014, search.cpan.org a rapporté 11 021 contributeurs, 129 039 modules et 29 068 distributions (représentant un taux de croissance de 15,1 %, 21,2 %, et respectivement 18,1 % depuis l'édition précédente de ce livre).
Le CPAN lui-même est seulement un service de mise en miroir. Les auteurs téléchargent sur le serveur les distributions qui sont envoyées à différents sites miroirs à partir desquels les clients du CPAN les téléchargent, configurent, compilent, testent et installent. Cette simplicité a bien servi Perl, en permettant les contributions de milliers de bénévoles. En particulier, les normes communautaires ont évolué pour identifier les attributs et caractéristiques des distributions CPAN bien formées. Celles-ci comprennent :
- le comportement des installateurs CPAN automatisés ;
- des métadonnées pour décrire ce que chaque distribution offre et attend ;
- de la documentation et des licences lisibles par la machine.
Des services supplémentaires du CPAN fournissent des tests complets automatisés et des rapports afin d'améliorer la qualité du packaging et l'exactitude à travers les plates-formes et les versions de Perl. Chaque distribution CPAN a sa propre file d'attente à base de tickets sur http://rt.cpan.org/ pour signaler les bogues et travailler avec les auteurs. Les sites du CPAN affichent des liens vers les versions précédentes des distributions, les évaluations des modules, les annotations de la documentation, et plus encore. Tout cela est disponible à la fois sur http://search.cpan.org/ et http://metacpan.org/.
Les installations de Perl Moderne incluent un client pour se connecter, rechercher, télécharger, construire, tester et installer des distributions CPAN ; il s'agit de CPAN.pm. Avec une version récente (à ce jour, la dernière version stable est la 2.0), l'installation du module est relativement facile. Démarrez le client avec :
$
cpan
Pour installer une distribution depuis la ligne de commande du client :
$
cpan
cpan[1
]>
install Modern::Perl
... ou l'installer directement à la ligne de commande du système :
$
cpan Modern::Perl
Le tutoriel d'Eric Wilhelm sur la configuration de CPAN.pm http://learnperl.scratchcomputing.com/tutorials/configuration/ contient une excellente section de dépannage.
Même si le client CPAN est un module de base pour la distribution Perl, vous aurez probablement besoin d'installer des outils standard de développement, comme l'utilitaire make et éventuellement un compilateur C. Les utilisateurs de Windows devront regarder de côté de Strawberry Perl (http://strawberryperl.com/) et Strawberry Perl professionnel. Les utilisateurs de Mac OS X doivent installer XCode. Les utilisateurs d'Unix ou de Linux disposent souvent de ces outils (mais les utilisateurs de Debian et Ubuntu devront installer build-essential).
III-A-1. Outils de gestion CPAN▲
Si votre système d'exploitation fournit sa propre installation de Perl, celle-ci peut être obsolète ou peut avoir ses propres dépendances envers des versions spécifiques de distributions du CPAN. Les développeurs Perl prudents construisent souvent des murs virtuels entre le Perl du système et leurs installations Perl de développement. Plusieurs projets contribuent à rendre cela possible.
App::cpanminus est un client CPAN plus récent ayant pour objectifs la vitesse, la simplicité et zéro configuration. Installez-le avec cpan App::cpanminus, ou :
$
curl -
LO http:/
/xrl.us/
cpanm
$
less cpanm # revoir le code avant l'exécution
$
chmod
+x
cpanm
$
./
cpanm
App::perlbrew est un système pour gérer et basculer entre vos propres installations de multiples versions et configurations de Perl. L'installation est aussi simple que :
$
curl -
LO http:/
/xrl.us/
perlbrew
$
less perlbrew # revoir le code avant l'exécution
$
chmod
+x
perlbrew
$
./
perlbrew install
$
perldoc App::perlbrew
La distribution CPAN local::lib vous permet d'installer et de gérer les distributions dans votre propre répertoire utilisateur, plutôt que pour l'ensemble du système. C'est un moyen efficace de maintenir les distributions CPAN pour des utilisateurs individuels sans affecter le système dans son ensemble. L'installation est un peu plus compliquée que pour les deux distributions précédentes, mais App::local::lib::helper peut simplifier le processus. Voir https://metacpan.org/pod/local::lib et https://metacpan.org/pod/App::local::lib::helper pour plus de détails.
Ces trois projets ont tous les trois tendance à supposer un environnement de type Unix (comme une distribution GNU/Linux ou même Mac OS X). Les utilisateurs de Windows peuvent télécharger Padre tout-en-un (http://padre.perlide.org/download.html).
III-B. Sites de la communauté▲
La page d'accueil de Perl, http://www.perl.org/ affiche des liens vers la documentation, le code source, des tutoriels, listes de diffusion et plusieurs projets Perl d'importance communautaire. Si vous débutez, la liste de diffusion pour les débutants en Perl est un endroit convivial pour poser des questions de novice et obtenir des réponses précises et utiles. Voir http://learn.perl.org/faq/beginners.html.
La page d'accueil du développement de Perl est http://dev.perl.org/, qui a des liens vers des ressources pertinentes pour le développement de Perl lui-même.
Perl.com publie des articles et des tutoriels sur Perl et sa culture. Ses archives remontent au XXe siècle. Voir http://www.perl.com/.
La page centrale du CPAN (Le CPANLe CPAN) est http://www.cpan.org/, même si les utilisateurs expérimentés passent plus de temps sur http://search.cpan.org/. Cette plate-forme centrale de distribution de code Perl réutilisable et libre représente une partie essentielle de la communauté Perl. MetaCPAN (https://metacpan.org/) est une interface récente alternative au CPAN.
PerlMonks, à http://perlmonks.org/, est un site communautaire consacré aux discussions sur la programmation en Perl. Son histoire de plus d'une décennie en fait l'un des sites de questions et réponses les plus vénérables de tous les langages de programmation.
Plusieurs sites communautaires offrent des nouvelles et des commentaires. http://blogs.perl.org/ est une plate-forme de blog gratuite ouverte à tout membre de la communauté Perl.
D'autres sites regroupent les réflexions des experts Perl : http://perlsphere.net/, http://planet.perl.org/, et http://ironman.enlightenedperl.org/. Ce dernier fait partie d'une initiative de l'Organisation Éclairée Perl (http://enlightenedperl.org/) pour augmenter la quantité et améliorer la qualité des publications Perl sur le web.
Perl Buzz (http://perlbuzz.com/) recueille et republie sur une base régulière certaines des nouvelles les plus intéressantes et utiles au sujet de Perl. L'hebdomadaire Perl Weekly (http://perlweekly.com/) offre une prise hebdomadaire sur l'actualité du monde Perl.
III-C. Sites de développement▲
Le site Meilleures Solutions Pratiques (http://bestpractical.com/) maintient un système populaire de suivi de demandes, RT, pour auteurs CPAN ainsi que pour développement Perl. Chaque distribution CPAN a sa propre file d'attente RT sur http://rt.cpan.org/. Perl lui-même a une file d'attente à base de tickets à http://rt.perl.org/.
La liste de diffusion Perl 5 Porters (ou p5p) est le point focal du développement de Perl. Voir http://lists.cpan.org/showlist.cgi?name=perl5-porters.
La Fondation Perl (http://www.perlfoundation.org/) héberge un wiki pour toutes sortes de choses relatives à Perl. Voir http://www.perlfoundation.org/perl5.
Nombreux experts Perl utilisent Github (http://github.com/) pour héberger leurs projets... y compris les sources de ce livre à http://github.com/chromatic/modern_perl_book/. Voir en particulier Gitpan (http://github.com/gitpan/), qui accueille des dépôts Git retraçant l'histoire complète de toutes les distributions sur le CPAN.
Un miroir local de Git
GitPAN reçoit des mises à jour peu fréquentes. Plutôt que d'aller chercher des distributions CPAN sur GitPAN, pensez à utiliser le merveilleux module Git::CPAN::Patch de Yanick Champoux pour créer des dépôts Git locaux des distributions du CPAN.
III-D. Événements▲
La communauté Perl organise d'innombrables conférences, ateliers, séminaires et réunions. En particulier YAPC Yet Another Perl Conference, « Encore une nouvelle conférence Perl » est un modèle de conférence locale réussie, à faible coût, qui se tient chaque année sur plusieurs continents. Voir http://yapc.org/.
Le wiki de la Fondation Perl répertorie d'autres événements à http://www.perlfoundation.org/perl5/index.cgi?perl_events.
Des centaines de groupes locaux de Mongueurs de Perl (Perl Mongers) se réunissent fréquemment pour des discussions techniques et interaction sociale. Voir http://www.pm.org/ et http://mongueurs.pm/ pour les mongueurs de Perl en langue française.
À titre d'information, le logiciel de gestion des conférences et des participants aux conférences YAPC a été l'œuvre de développeurs essentiellement français et norvégiens du groupe Perlmongers.
III-E. IRC▲
Lorsque les mongueurs et les autres membres de la communauté Perl ne peuvent pas se rencontrer en personne, beaucoup collaborent et discutent en ligne grâce au système de chat textuel connu comme IRC. La plupart des projets Perl les plus populaires et utiles ont leurs propres canaux IRC, tels que #moose et #catalyst.
Le serveur principal pour la communauté Perl est irc://irc.perl.org/. Les canaux notables incluent #perl-help, pour une aide générale sur la programmation en Perl, et #perl-qa, consacré aux tests et autres problèmes de qualité. Sachez que #perl est un canal à usage général pour discuter de tout ce que ses participants veulent discuter... et, par conséquent, il n'offre pas principalement une assistance technique.