This blog is no longer updated. Please check my new blog here.

Julien Sobczak

Programming Pearls, 2nd Edition

Jon Bentley, Patrick Chan

Un classique qui souffre de quelques rides. Même si les exemples paraissent dépassés, la valeur du livre est ailleurs. Une bonne source d'inspiration !

General

Paperback 0201657880 239 pages

Review

Ce livre regroupe 15 essais de Jon L. Bentley parus durant les années 80 dans la célèbre revue “Communications of the ACM”. On peut donc se demander si le livre est encore d’actualité.

Avant de répondre à cette délicate question, plusieurs choses sont à noter. Jon L. Bentley fait un travail remarquable pour s’abstraire des détails techniques. Même si il faut bien choisir un langage ou un type de machine précis, on comprend vite que l’intérêt du livre réside dans les idées véhiculées à travers ces exemples. De plus, Il est vrai que les contraintes actuelles ne sont plus tout à fait les mêmes. Les machines n’ont cessé d’évoluer selon la loi de Moore mais cela considérablement ralentit et on privilégie désormais la multiplication des processeurs. Cela témoigne donc que nous devons toujours faire face à des contraintes et cela n’est pas prêt de changer. La réponse est donc un grand OUI. Le livre garde tout son sens malgré les années qui défilent.

Chacun des essais commence par exposer un problème. Plusieurs solutions sont ensuite discutées notamment en terme de complexité, de consommation mémoire, CPU, etc. Assez pointu mais le contenu reste facile à suivre et on ne manquera pas d’apprendre à chaque fois. D’ailleurs, ce que le livre parvient à faire admirablement bien, c’est nous faire prendre conscience qu’il faut réfléchir dur pour trouver la solution élégante. Le livre prend souvent l’exemple du binary search que nous avons tous déjà rencontré. L’algorithme ne fait que quelques lignes et pourtant il aura fallu plusieurs décennies pour obtenir une version correcte !