Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
Programmation avancée en Perl
Auteur : Sriram Srinivasan (Traduction Jean Zundel)
Synopsys :
ISBN: 2-84177-039-7

As suggested by several monks I've produced a review in french of the french translation of 'Advanced Perl Programming'.
Some people asked for an english's translation of this review, you'll find it below as a comment.

Programmation avancée en Perl

INTRODUCTION

J'ai un avis assez mitigé au sujet de ce livre.
Je recherchais un livre sur les structures internes de Perl,
qui irait un peu plus loin que le Camel et qui serait un peu plus abordable que les sources de Perl.
Ce livre a partiellement répondu à mes attentes.
J'ai trouvé un livre intéressant à plus d'un titre, d'un excellent niveau technique mais certains aspects (que je détaillerai plus bas) amoindrissent sensiblement l'attrait de ce livre.

PRESENTATION

Programmation avancée en Perl comporte 412 pages.
Il se décompose en 20 chapitres :
  1. Références de données et stockage anonyme
  2. Implémentation de structures de données complexes
  3. Typeglobs et table de symboles
  4. Références de sous-programmes et fermetures
  5. Eval
  6. Modules
  7. Programmation orientée objet
  8. Orientation objet : les étapes suivantes
  9. Tie
  10. Persistence
  11. Implémentation de la persistence objet
  12. Réseaux et sockets
  13. Réseaux : implémentation des RPC
  14. Interfaces utilisateur graphique avec Tk
  15. Exemple d'interface graphique : Tetris
  16. Exemple d'interface graphique : perlman
  17. Génération de code par modèle
  18. Extension de Perl : un premier cours
  19. Intégration de Perl : la solution de facilité
  20. Fonctionnement interne de Perl

Et 2 annexes :
  • A. Référence des widgets
  • B. Résumé de la syntaxe
ANALYSE

Ce découpage, dont la logique m'échappe, donne au livre un petit coté 'décousu'.
Les chapitres sont, à mon avis, assez inégaux, certains sont excellents, d'autres le sont moins.
Certains domaines sont TRES (trop?) détaillés, comme par exemple le chapitre 5 entier sur Eval, ou les 3 chapitres sur l'interface graphique.

Plus que l'ordre de présentation des sujets abordés, c'est leur intérêt(variable) et les raisons de leur choix qui me pose problème.
L'auteur a beau justifier ses choix en disant que ces domaines ont été choisis car représentatifs de ce qu'un programmeur DEVRAIT connaître,
le choix me semble arbitraire et pour le moins discutable.
(Pas de chapitre sur la sécurité ? Sur le tri ? L'obfuscation ?...)

En fait outre ce problème très subjectif, je reproche 4 choses a ce livre :
  1. Il n'est pas écrit par un programmeur Perl mais par quelqun qui connaît bien Perl.
    La nuance est de taille, je n'ai pas retrouvé de passion dans ce livre, avec au bout du compte un livre qui n'arrive pas a captiver...
    (Par opposition au Camel qui reste passionnant de bout en bout...)

  2. Plus embétant, certaines fautes de styles me semblent préjudiciables :

    • Usage d'idiomes C/C++ a la place des idiomes Perl
      Comme par example l'utilisation des boucles
      $lng2=@$rtableau2; for($i;$i<$$lng2;$i++) {...
      ala place des boucles foreach (page 9)
    • Pas de use strict (même pas d'incitation a l'utiliser)
      et des constructions douteuse comme $x{toto} au lieu $x{'toto'} (page 44)
    • Pas de déclaration des variables locales (page 33,58,231...)
    • 'Références douces' pas déconseillées comme OeufMayo me l'a justement fait remarquer
      (lire les articles de Dominus sur ce sujet...)

  3. Un livre qui commence à dater (1998!)
    Avec certaines informations sur les threads ou les refs incompletes par exemple...

  4. Une tendance de l'auteur à plus présenter ses modules que les modules 'standards'.

Mais tout n'est pas a jeter dans ce livre.
De positif, on retiendra :
  • Le style est clair et efficace.
  • La comparaison entre Perl et d'autres langages (C++,Java,Tcl,Python) à la fin de chaque chapitre est intéressante et objective.
  • Le chapitre 20 qui répondra à toutes les questions que vous pourriez vous poser sur la structure interne de Perl
    (pour peu que vous ayez quelques bases en C).
  • Les références vers d'autres sources d'informations en fin de chapitre, toujours utiles.
  • Le chapitre 3, sur les typeglobs et la table de symboles TRES enrichissant tout en restant clair.
    (Pour pouvoir, par exemple, comprendre pourquoi my est plus rapide que local)
  • Le traitement de certains sujet généralement peu abordés et intéressants : La sérialization, les DIFFERENTS usages de tie.
  • L'excellente qualité générale de l'ouvrage :
    Avec trés peu de typos et d'erreurs d'imprimerie (juste un renvoi a une note page suivante à la page 17),
    et une traduction excellente, c'est a dire qui se laisse oublier (je n'ai trouvé qu'une erreur de traduction dans les codes sources (page 271))

CONCLUSION

Ce livre reste un bon livre sur Perl, Moins passionant que le CamelBook, moins pratique que le CookBook, il est quand même d'un excellent niveau, tout en restant clair et facile a lire.
Toutefois je ne peux m'empécher d'imaginer ce que ce livre aurait été s'il avait été écrit par un PASSIONNE de Perl...
Et de rêver...
(A quand un livre ecrit par plusieurs Saints du monastère... ;-)

Éditent chipmunk 2001-05-07


In reply to Programmation avancée en Perl by arhuman

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (7)
As of 2024-04-18 09:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found