Ce mardi dernier a eut lieu le 10e anniversaire du Paris JUG, un chouette événement qu’il ne fallait pas rater.
Pour l’occasion, les organisateurs ont vraiment marqué le coup en nous conviant dans un lieu prestigieux : le salon Gustave Eiffel de la tour éponyme.
L’après-midi a donné lieu à quatre conférences avant un cocktail très sympathique. C’était évidemment l’occasion de plusieurs rétrospectives émouvantes (souvenirs, souvenirs) sur 10 versions de Java et du Paris JUG avec les présentations de Rémi Forax et de Jean-Michel Doudoux. Toutefois, je retiens surtout les deux présentations très techniques de Venkat Subramaniam qui nous a réexpliqué de manière brillante et exemplaire les paradigmes de programmation fonctionnelle, structurée, objet et surtout réactive. J’ai beaucoup apprécié sa manière d’aborder et présenter les choses, en se posant des questions que je pense moi aussi essentielles : de quand ça date ? est-ce que c’est nouveau ? pourquoi ça réapparaît maintenant ? pourquoi aurais-je besoin de ça ? Il va au fond des choses et nous explique à quel moment les apports de Java 8 ne sont plus tout à fait suffisants pour un puriste de la programmation fonctionnelle (compatibilité Java oblige). Je retiens en particulier son tableau final expliquant les similitudes et différences entre les Streams de Java 8 et les Reactive Streams de Java 9.
Java 8 Streams | Java 9 Reactive Streams |
---|---|
functional pipeline | functional pipeline |
lazy | lazy |
data(only) | data (also) |
zero, one, or more data | zero, one, or more data |
what if something goes wrong ? | |
Goog luck | 3 channels |
data——> | |
error—–> | |
complete–> | |
what if something goes wrong ? | |
deal with it downstream | |
failure is a first class citizen | |
error is just another form of data | |
seq. vs. parallel | sync vs. async |
push at your pace | backpressure |
is like qtips : use & throw | multiple subscribers |
no forking | |
cold vs. hot |
Un grand merci aux organisateurs !
Rendez-vous dans 10 ans 😉