Paris JUG : 10 ans déjà !

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 StreamsJava 9 Reactive Streams
functional pipelinefunctional pipeline
lazylazy
data(only)data (also)
zero, one, or more datazero, one, or more data
what if something goes wrong ?
Goog luck3 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. parallelsync vs. async
push at your pacebackpressure
is like qtips : use & throwmultiple subscribers
no forking
cold vs. hot

Un grand merci aux organisateurs !
Rendez-vous dans 10 ans 😉