Colin Moock s'est imposé depuis son livre ActionScript for Flash MX : the Definitive Guide comme ayant écris l'ouvrage de référence des programmeurs Flash. Aujourd'hui, il remet le couvert et se penche sur le "nouveau" langage de Macromedia, introduit dans Flash MX 2004, avec Essential ActionScript 2.0.
Loin de remplacer son précédant ouvrage, cette nouvelle référence se veut comme étant un complément de celui-ci. En effet, alors que le premier était une liste quasi-exhaustive de l'AS1, EAS2 s'attaque à la philosophie de développement complètement revue d'AS2, du fait de son orientation objet. Il s'adresse donc en bloc aux programmeurs AS1 intermédiaires, ainsi qu'aux développeurs objets issus de langages plus "traditionnels" tels que Java ou C++, et aux programmeurs AS2 intermédiaires et même confirmés.
La première partie du livre aborde la syntaxe AS2. Mêlant habilement l'initiation à la programmation objet, et la description des instructions introduites par la nouvelle mouture d'ActionScript, cette partie fourni au futur programmeur AS2 tous les outils nécessaires à ses premiers développements. N'oubliant pas d'aller au fond des choses, Colin Moock décortique chaque instruction à l'extrême, soulignant les particularités des nombreuses situations qui peuvent se présenter au codeur face aux instructions AS2.
Parfois répétitif dans son discours, mais jamais rébarbatif, il mets systématiquement le doigt sur les erreurs que l'on fait fréquemment lorsque l'on aborde l'AS2, et souligne les avantages indéniables qu'apporte ce nouveau langage, mais aussi cette nouvelle façon d'aborder le développement dans Flash.
Non content de donner une explication théorique exhaustive des syntaxes de base, des exemples concrets sont apportés avant d’aborder chaque nouvelle notion importante, nous guidant ainsi au travers du développement d'une classe ImageViewer, dans laquelle sont utilisées les notions précédemment abordées de manière plus formelle.
La deuxième partie aborde les méthodes à utiliser lors du développement d'application. L'auteur nous y présente tout d'abord sa méthode de travail "de base" notamment en terme de hiérarchie des dossiers et documents. Sans être révolutionnaire, elle a le mérite d'être simple, claire et efficace. Si vous n'avez pas déjà vos propres habitudes de développement objet, je dirais tout simplement que l'essayer c'est l'adopter, et si vous les avez déjà, vous pourrez ainsi les confronter à celles qui sont données dans ce chapitre.
Les chapitres suivant nous emmènent vers la programmation "visuelle", tout d'abord en abordant les composants et leur utilisation, en exposant notamment leur intégration à une application concrète de convertisseur de devises, puis en consacrant un chapitre entier à l'héritage de MovieClip, nous en dévoilant ainsi toutes ses subtilités, et également les aspects à prendre en compte pour effectuer un choix entre l'héritage et la composition avec MovieClip.
Cette partie se finit en décortiquant les différents moyens mis à notre disposition pour distribuer un code, que ce soit en OpenSource ou sans mettre les fichiers sources à dispositions des utilisateurs, en énonçant clairement les avantages, inconvénients et difficultés de chacune des méthodes.
La troisième partie se penche sur 4 Design Patterns, parmi les plus utilisés dans Flash que sont l'Observer, le Singleton, le Model-View-Controller (MVC) et la Délégation d'événements. Plus qu'une description approfondie de ces patterns, il s'agit plutôt dans cette partie de montrer leur utilité au sein d'applications AS2, ainsi que leur implémentation au sein d'exemple toujours aussi concrets.
Je ne peux que supposer la réaction des différentes catégories de lecteurs visées par ce livre :
- Pour les développeurs AS1, il introduit en douceur mais également en profondeur toutes les subtilités de AS2. Etant déjà convaincu, je ne peux que suggérer, mais je dirais que ce livre peut réussir à convaincre ceux qui sont encore réfractaire à l'AS2, en soulignant tous les avantages que cela emmène, que ce soit en terme d'organisation du code, mais aussi d'aide au développement prodiguée par les erreurs de compilation. Un coup de chapeau concernant le détail exhaustif des différentes possibilités qui existent quand on surcharge une méthode, et concernant le chapitre sur le gestion d'erreurs qui est un bijou de précision qui sont tout deux des bijoux de précision, allant vraiment au fond des choses.
- Pour les développeurs Objet découvrant l'AS2, en plus de décrire précisément les différences avec des langages reconnus tels que Java, l'ouvrage s'attache à faire découvrir la philosophie de développement à aborder avec Flash, qui diffère de par son orientation clairement graphique. Pour ceux qui sont déjà à l'aise avec les Design Patterns, il s'agit aussi de voir de bonnes implémentations AS2, pour ainsi se plonger dans le langage.
- Pour les développeurs AS2, qu'ils soient intermédiaires ou aguerris, il s'agit là d'une revue de détail, répondant la plupart du temps aux questions que l'on peut se poser sur quelques finesses du langage. Si l'on peut finir le livre en pensant ne pas avoir appris énormément par rapport à ce que l'on savait déjà, le simple fait de se remettre à programmer après cette lecture change la manière dont on voit le code. En gros, pour moi, j'ai vraiment l'impression que les qualités pédagogiques de l'auteur ont clarifié certaines notions qui m'étaient connues jusque là, mais peut-être un peu embrouillées !

En conclusion, je dirais que Colin Moock nous offre un nouvel ouvrage de référence, qui saura satisfaire de par son contenu riche et détaillé tous les développeurs accomplis ou en devenir. Véritable fondation des connaissances à posséder en ActionScript 2.0, il s'avère la rampe de lancement idéale pour aller encore plus loin dans la Programmation Orientée Objet avec AS2.
Pour finir, je vous conseille de lire suite à ce livre celui sur les Design Patterns par le Gang Of Four, que j'ai moi-même lu sur les conseil de Francis BOURRE, et qui est d'ailleurs cités par Colin Moock dans la troisième partie de l'ouvrage. Il s'agit là d'une véritable mine d'or sur les DP.