Lyon  
Perl Mongers hardware
ordinateur
AccueilLes membresNotre mailing-listLes créations des membresRevue de presseSélection de liens

Extending and Embedding Perl

Extending and Embedding Perl

Auteurs : Tim Jenness, Simon Cozens

Editeur : Manning [http://www.manning.com/jenness/]

ISBN : 1-930110-82-0

Parution : juillet 2002

 

Tout hacker Perl, une fois qu'il maîtrise le langage lui-même, est tenté d'approfondir le sujet pour savoir ce qui se passe réellement lorsqu'un programme Perl est exécuté. Mais la documentation disponible, touffue, est souvent éparse (savoir dans quel perldoc rechercher l'information peut se révéler ardu entre perlxstut, perlxs, perlembed, perlclib, perldebguts, perlguts, perlcall, perlapi, perlintern, perlapio, perliol et autre perlhack) et difficile à comprendre, et encore plus à mettre en oeuvre.

C'est là que "Extending and Embedding Perl" vient à la rescousse. Tout à la fois guide de référence et tutoriel, il nous prend par la main pour nous guider dans les entrailles de Perl.

Le livre débute par une introduction au langage C, destinée aux personnes connaissant Perl. Dès le début, les auteurs se mettent donc au niveau du lecteur cible : le programmeur Perl. Bien conçue, cette introduction pose les bases du C, qui seront utilisées dans le chapitre suivant pour montrer comment étendre Perl en C.

Une fois le b-a-ba expliqué, les auteurs nous font partager avec le chapitre 3 les joies du langage C (pointeurs, tableaux, gestion de la mémoire), et utilisent ensuite ces connaissances toutes fraîches pour expliquer ce qu'est au juste une variable Perl, et comment perl (l'interpréteur) utilise et gère les différents types de variable (scalaire, tableau, hash, glob, etc.).

Le chapitre 5 plonge dans les détails de l'API de Perl 5. Souvent dans ces cas-là, on a droit à un copier-coller des documentations, mais Simon Cozens et Tim Jenness, en plus d'expliquer chacune des fonctions, l'illustrent par un morceau de code tiré d'exemples réels (modules existants, code issu de l'interpréteur perl, etc.) en le commentant, souvent ligne par ligne. Difficile dans ces conditions de ne pas comprendre ce que fait réellement une fonction, et comment l'utiliser.

Les auteurs terminent alors sur le sujet de l'extension de Perl par un chapitre dans lequel tous les sujets éminement techniques correspondant aux notions abordées dans le chapitre 3 sont abordés. Une explication détaillée permet de ne pas (trop) se perdre en route dans les abimes de XS. Et pour ceux qui ont quand même décroché, le chapitre 7 propose les alternatives les plus courantes à XS, et en particulier aborde l'excellent module Inline.

Comme les auteurs sont des experts respectés dans la communauté des développeurs de perl, certains points expliqués lors de ces chapitres ne sont pas, à notre connaissance, présentés (du moins de manière complète et lisible comme ici) dans la documentation fournie avec perl, ou dans d'autres ouvrages plus généraux sur Perl. On pense en particulier aux typemaps qui permettent de faire correspondre automatiquement des types C à des types Perl, ou aux considérations sur la portabilité des modules XS sur les versions moins récentes de l'interpréteur perl.

Les deux chapitres suivants changent radicalement de ton, car on passe cette fois au problème opposé consistant à appeler du code Perl depuis du code C. Le chapitre 9, en particulier, applique la théorie en embarquant un interpréteur Perl dans mutt (le lecteur de mails bien connu). C'est d'ailleurs peut-être le seul reproche que je ferai au livre : même s'il applique bien ce que le chapitre précédent a expliqué, j'aurais préféré un exemple plus réel et moins tiré par les cheveux.

Le chapitre 10 dévoile le Saint Graal : il explique le coeur de l'interpréteur perl ; et, associé au chapitre suivant, il proposera au lecteur (pour peu qu'il soit bien accroché) de mettre la main à la pâte au développement de son langage favori. Le livre se conclut d'ailleurs sur ce chapitre, en soulevant un coin du voile sur l'avenir de Perl, et en présentant rapidement le projet Parrot.

En résumé, Jenness & Cozens nous présentent un livre de très bonne facture. Livre indispensable, même, pour qui souhaite connaître Perl plus intimement. Les auteurs transmettent leur savoir de façon intelligente et agréable ; et, en lisant le livre, on a vraiment envie de mettre en pratique ce qui est expliqué. A recommander, donc.

Haut de page