J’étais hier soir au Lava JUG, pour une soirée autour des langages fonctionnels, animée par Yannick Loiseau, maître de conférence à l’Université Blaise Pascal et fortement impliqué dans le développement logiciel, notamment dans les langages fonctionnels.

A l’heure où de plus en plus de langages informatiques “modernes” (Java 8, C++ 11, Groovy, Scala, Clojure, etc) ajoutent des touches de programmation fonctionnelle, voire en font leur paradigme principal, et un an après la présentation Lambda Bestiary de Rémi Forax; Yannick nous propose un retour sur les concepts qui se cachent derrière ce style de programmation. Et en deux heures, ça promettait d’être sportif !

Et ce le fut un peu ! Mais là où Yannick a été très bon, c’est qu’il s’est appuyé sur des concepts que la plupart des développeurs connaissent déjà en langage objet (tels que les design patterns classiques) en montrant comment on pouvait les réécrire en langage fonctionnel, la plupart du temps de façon plus concise et “naturelle”.

La plupart des concepts ont été revus : fonctions de 1er ordre, d’ordre supérieur, concepts de map, filter, fold, unfold, les closures, les lambda jusqu’aux concepts plus avancés de partialisation, curryfication et monades. Le tout parsemé d’exemples en Java 8 et Golo. Et ce rappel tombe à pic pour moi car mes prochaines lectures seront consacrées à Java 7 et 8 ainsi qu’à Groovy, Scala et Clojure. Timing parfait !

La présentation, comme toutes les épisodes précédents, est à (re)découvrir ici.

Encore merci à Yannick et au Lava JUG pour ces moments de partage !

Commenter et partager

Cure de jouvence Java

dans Lectures

Après avoir quelque peu délaissé le Java au profit du C++ ces dernières années, un peu de rattrapage s’impose. Le but est donc de revoir les bonnes pratiques de Java 6 et de partir à la découverte de ce qu’ont apportées les versions 7 et 8 de Java. Rien que ça !

Pour cela, rien de plus efficace qu’un bon bouquin truffé d’exemples et écrit pas des personnes qui savent de quoi elles parlent. Je découvre à cette occasion pour la première fois des livres des éditions Manning et quelque chose me dit que j’y reviendrai ! C’est fou toutes les références qu’ils ont dans les technologies de développement logiciel !

J’ai donc choisi trois livres, un pour chaque version :
    - Java 6 : Effective Java, Second Edition de Joshua Bloch chez Addison-Wesley (Août 2008).
Bonnes pratiques qui permettent d’écrire du code Java efficient. J’avais déjà lu ce livre il y a cinq ans mais on oublie vite quand on ne manipule pas !
    - Java 7 : Well Grounded Java Developer de Benjamin J. Evans et Martjin Verburg chez Manning (Juillet 2012).
Nouveautés Java 7 (Project Coin, try-with-resources, NIO.2) et comme dans “Effective Java“, quelques techniques sympas à connaître.
Ensuite, une introduction très intéressante aux langages basés sur la JVM, cousins plus ou moins proches de Java dont notamment Groovy, Scala et Clojure.
Enfin, une dernière partie sur quelques notions de software craftmanship appliquées à ces langages.
    - Java 8 : Java 8 in Action de Raoul-Gabriel Urma, Mario Fusco et Alan Mycroft chez Manning (Août 2014).
Nouveautés Java 8 et notamment une introduction aux expressions lambda.
Ensuite, une partie sur le traitement des données (ex: Collections) à la sauce programmation fonctionnelle et flux.
Après, comme pour les précédents livres, une partie sur comment être efficient en Java 8.
Et enfin, une partie un plus poussée sur la façon de penser en programmation fonctionnelle et l’après Java 8.

Tout un programme qui fait du bien au moral ! Je détaillerai chacun des livres dans des articles à venir ainsi que les spikes que j’ai prévu de faire pour Groovy, Scala et autres.

Commenter et partager


Après la virtualisation avec Sébastien Douche en décembre, le Lava JUG démarre l’année sur les chapeaux de roue avec la venue de Rémi Forax, maître de conférence à l’UPEM (Université de Paris-Est Marne-la-Vallée), pour sa présentation Lambda Bestiary.

Après s’être présenté et nous avoir expliqué quels étaient ses travaux professionnels, Rémi est rentré dans le vif du sujet en nous expliquant pourquoi les lambda existaient en Java et à quoi elles servaient. Il a pris pour fil rouge la réécriture de design patterns bien connus tels que “Visitor”, “Factory” ou encore “Command” en les transposant de leurs implémentations objets “classiques” en implémentations à base d’objets Lambda. Bluffant !

J’ai vraiment apprécié la soirée, riche en enseignement sur les nouveautés de Java, les coulisses de son évolution et ce vers quoi il pourrait tendre dans les années à venir. Rémi est un très bon orateur et les heures défilent à grande vitesse.

Encore merci au Lava JUG de nous offrir des soirées de cette qualité là !

Commenter et partager

  • page sur

Pierre PIRONIN

J’ai créé ce blog pour parler de ce qui se passe autour de moi dans le domaine du génie logiciel.
J’exposerai mes devs, mes idées, mes lectures, les faits qui m’intéressent et les événements auxquels je participe.

Bonne lecture !


Artisan développeur


Auvergne, France