Description générale
Le livre compte 350 pages. En plus du texte, on y trouve des extraits de code et des images là où la description écrite serait insuffisante. À la fin de chaque chapitre, un résumé du contenu, des tâches d’étude et des exercices pratiques sont proposés. Certaines parties du contenu m’ont semblé assez complexes.
Introduction
À l’exception des chapitres d’ouverture et de conclusion, l’ouvrage se compose de 7 chapitres, chacun divisé en 3 thèmes. Chaque thème approfondit et complète le précédent. Les chapitres eux‑mêmes présentent généralement des technologies totalement nouvelles et indépendantes des chapitres antérieurs.
Chapitre 2 : Flux d’exécution et verrous
- Jour 1 : Mutualisation exclusive et modèles de mémoire
- Jour 2 : Au-delà des verrous intégrés
- Jour 3 : Sur les épaules des géants
Chapitre 3 : Programmation fonctionnelle
- Jour 1 : Programmation sans état mutable
- Jour 2 : Parallélisme fonctionnel
- Jour 3 : Compétition fonctionnelle
Chapitre 4 : Le chemin Clojure – séparer identité et état
- Jour 1 : Atomes et structures de données persistantes
- Jour 2 : Agents et mémoire transactionnelle logicielle
- Jour 3 : Plongée en profondeur
Chapitre 5 : Acteurs
- Jour 1 : Messages et boîtes aux lettres
- Jour 2 : Gestion des erreurs et tolérance aux pannes
- Jour 3 : Applications distribuées
Chapitre 6 : Coordination des processus séquentiels
- Jour 1 : Canaux et blocs do
- Jour 2 : Plusieurs canaux et I/O
- Jour 3 : Modèle CSP côté client
Chapitre 7 : Parallelisme des données
- Jour 1 : Programmation GPGPU
- Jour 2 : Dimensionalité et groupes de travail
- Jour 3 : OpenCL et OpenGL — stocker les données sur le GPU
Chapitre 8 : Architecture Lambda
- Jour 1 : MapReduce
- Jour 2 : Couche batch
- Jour 3 : Couche d’accélération
Opinion
Ce livre était prévu pour être lu lentement, mais je l’ai abordé comme n’importe quel autre. Je n’ai pas réalisé les exercices pratiques ni étudié le matériel supplémentaire, ce qui a rendu certains thèmes particulièrement difficiles. De plus, les langages et technologies ciblés — Clojure et Erlang — ne sont pas ceux avec lesquels le développeur moyen est à l’aise. Ainsi, en vous lançant dans cette lecture, attendez-vous à un challenge. En revanche, l’ouvrage est informatif et intéressant.