Programmation Python avancée | Préface

Cette page, associée au livre Programmation Python avancée – Guide pour une pratique élégante et efficace aux éditions Dunod (ISBN 978-2-10-081598-2), contient les ressources complémentaires et le code source des exemples présentés.

View the Project on GitHub xoolive/python

« Retour

Préface

Lorsque Xavier Olive m’a contacté pour me proposer de relire ce livre que vous tenez actuellement entre les mains, ma première réaction a été « Oh non, encore un livre sur Python! » Un certain nombre de livres sur Python trônent déjà sur les étagères de mon bureau, même s’il est vrai que la plupart sont en anglais. Mais lors de ce premier échange par mail, Xavier a glissé subrepticement le fait qu’il avait pour but d’écrire le livre qu’il aurait voulu lire. Cela a eu pour effet immédiat d’attiser ma curiosité et j’ai donc accepté de relire cet ouvrage sans trop savoir où je mettais les pieds. Après avoir relu les quelque 350 pages qui composent ce livre, je réalise que c’était une très bonne décision de ma part tant le livre est agréable à lire, tant sur la forme que sur le fond.

Sur la forme d’abord, car Xavier a véritablement soigné le style du livre qui tranche avec un certain nombre d’ouvrages que j’ai pu lire par le passé. Ayant une solide expérience quant à la typographie et à la mise en page, je suis admiratif du soin et du souci du détail qui ont été apportés à l’ouvrage. Trop souvent les auteurs négligent cet aspect en se disant que seul le fond importe pour un ouvrage technique alors que la forme peut véritablement jouer un rôle essentiel pour la compréhension de concepts parfois ardus. La relecture et les échanges avec Xavier sur ces aspects ont été d’autant plus agréables qu’il en a une parfaite maîtrise.

Mais la prouesse du livre se trouve bien évidemment sur le fond. Ayant moi-même une assez grande expérience de Python, notamment sur ses versants scientifiques, je reste admiratif de cet ouvrage qui est à la fois bien écrit, bien structuré, bien documenté et surtout extrêmement pédagogique dans son approche. Lors de ma relecture du premier chapitre, je me suis d’abord fait la réflexion qu’il allait un peu vite en besogne en présentant les bases du langage Python, avant de me rappeler qu’il s’agissait d’un ouvrage avancé venant compléter celui de Bob Cordeau et Laurent Pointal qui s’adresse, lui, aux débutants. Or, présenter les bases du langage Python à des utilisateurs avancés est un vrai numéro d’équilibriste. Mais je crois que Xavier a su justement trouver le bon équilibre en choisissant méticuleusement les aspects peut-être moins connus du langage et en les illustrant à l’aide d’exemples pertinents (et pour certains passionnants au niveau théorique, comme les L-systèmes).

Le livre est structuré autour de cinq grandes parties (Les bases du langage Python, L’écosystème Python, Écrire un Python naturel et efficace, Python, couteau suisse du quotidien, Développer un projet en Python) et de trois interludes (Calcul du rayon de la Terre, Reconstruire une carte d’Europe, La démodulation de signaux FM) qui viennent agréablement aérer la technicité de certains chapitres. Étant avant tout un livre pour des utilisateurs avancés, il est évident que Xavier ne pouvait éviter d’être technique sur certains des aspects les plus avancés de Python. J’avoue ne pas être un grand fan des dernières possibilités offertes par le langage Python car je crois que cela alourdit inutilement le langage mais Xavier a su malgré tout me convaincre de l’utilité de la majorité d’entre elles, notamment lorsque l’on se retrouve à gérer de gros projets collaboratifs.

Je suis donc à la fois très honoré et très heureux d’écrire aujourd’hui cette préface pour un livre qui, je le crois, deviendra un classique. Évidemment, ce n’est que la première édition et, au vu de la rapidité d’évolution du langage Python, je crois aussi que Xavier s’est engagé, sans peut-être le savoir, à écrire une nouvelle édition tous les deux ou trois ans. C’est tout le mal que je lui souhaite. D’ailleurs, à l’heure où j’écris ces lignes (février 2021), le PEP 636 concernant l’identification structurelle de motifs (Structural Pattern Matching en anglais) vient d’être accepté, validant ainsi encore un peu plus la 10e règle de Greenspun.

Nicolas P. Rougier, @rougier
Docteur en informatique et chercheur à l’Inria en neurosciences computationnelles
Février 2021