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

Julien Sobczak

Java Puzzlers: Traps, Pitfalls, and Corner Cases

Joshua Bloch, Neal Gafter

Un des livres les plus plaisant lire. Notre cerveau est mis rude épreuve mais une chose est sûre, on s'amuse du début la fin.

General

Addison-Wesley Professional Paperback 032133678X 282 pages

Review

Après 10 années de développement Java, je pensais pouvoir relever le défi lancé par Java Puzzlers. Le résultat n’est pas très glorieux. 1/3 des puzzles résolus, 1/3 où j’étais sur une bonne piste sans tout à fait parvenir à la réponse et donc 1/3 de puzzles où je suis resté bouche bée sans la moindre explication.

Il faut dire que le livre s’appuie sur les subtilités du langage et de sa librairie dont il vaut mieux rester éloigné. Mais pour les éviter, faut-il encore les connaître et mieux encore, les comprendre.

Le livre est découpé par thèmes Les expressions, les boucles, les chaines de caractères, les classes, les exceptions, les librairies, … chaque puzzle, on s’étonne de la simplicité du programme et le résultat semble si évident, mais bien sûr, l’exécution du programme nous donne un résultat bien différent. Vient alors la solution. Les auteurs nous guident tout doucement sur la bonne voie, de quoi nous laisser encore une chance de trouver par “nous-même”. Les explications sont toujours très claires. On apprend facilement. J’ai particulièrement apprécié les conseils des auteurs pour éviter les subtilités soulevées par les puzzles et aussi les réflexions sur les possibilités que les designers du langage auraient pu retenir, en se basant souvent sur d’autres langages existants.

La vraie force de l’ouvrage est de nous présenter d’une manière tellement fun, un contenu qui pourrait être bien pénible à digérer (on est loin de la spécification Java). On s’amuse littéralement. On enchaîne les puzzles avec toujours cet espoir de trouver, espoir qui s’amincit surtout quand arrive le dernier chapitre contenant des puzzles avancés.

Les auteurs recommandent d’avoir un compilateur Java à ses côtés (mais de ne surtout pas utiliser d’IDE). J’ai trouvé que le livre se lisait très bien sans cela.

Si vous développez en Java depuis quelques mois ou depuis des années, venez tester vos connaissances. Surprise garantie

Vivement une seconde édition pour couvrir les nouveautés de Java !