Java 8 in Action

mai 2, 2016

[azonbox2 imgurl= "https://livreinformatique.com/wp-content/uploads/2016/04/Java-8-in-Action-Lambdas-Streams-Raoul-Gabriel-Urma-246x300.jpg" imgdsc="" lnktxt= "Acheter sur Amazon" linkl="https://livreinformatique.com/go/java-8-in-action/" headline= "Java 8 in Action" subhline="Une introduction comme se doit au Java 8" text= "" ]

Java 8 in Action : Présentation

Java 8 in Action est une excellente introduction aux nouveautés apportées par Java 8. L’ouvrage est concis et bien écrit. A titre personnel, je suis un ingénieur en développement logiciel et je passe le plus clair de mon temps à écrire des applications Android en Java 6 et 7 et, par ailleurs, je suis aussi intéressé par la programmation fonctionnelle. Je m’attendais donc en découvrant ce livre a tout connaitre sur les expressions lambdas et sur les streams, que je pensais être les principales nouveautes de Java 8. Mais j’ai été impressionné par à quel point Java 8 introduit de nouvelles fonctionnalités concernant la programmation fonctionnelle, certainement grâce au développement des langages utilisant ces techniques, comme Scala par exemple. J’ai été agréablement surpris de voir que Java 8 met en place les bases de la plupart des concepts liés à la programmation fonctionnelle qui aident le développeur à écrire du code plus concis et à un plus haut niveau.

A qui s'adresse Java 8 in Action ?

Java 8 in Action s’adresse aux programmeurs Java qui souhaitent savoir ce qu’il y a de nouveau avec Java 8. Il effectue un excellent travail en ce qui concerne la couverture des expressions lambda, la nouvelle librairie présentant les streams, les méthodes par défaut dans les interfaces, la classe Optional, les nouvelles API de gestion des dates et du temps. Mais le livre va beaucoup plus loin que seulement énumérer les nouvelles fonctionnalités.

Les auteurs décrivent les fondations de la programmation fonctionnelle, bien au dela des nouvelles classes ajoutées au langage et ils donnent de nombreux exemples tres detaillés de comment penser et écrire en programmation fonctionnelle Java 8. Ils présentent aussi des comparaisons avec ce qui pouvait être fait en Java 7, ce qui met en lumière les différences. Ils expliquent aussi l’interêt de la programmation fonctionnelle, en citant notamment un exemple de besoin d’exploiter le parallèlisme sur les processeurs modernes multi-cœurs, et comment la programmation fonctionnelle et les structures de données immutables aident à remplir cet objectif précis. Les auteurs précisent aussi que même si la difference entre programmation orientée objet et programmation fonctionnelle est importante, la transition mérite d’être faite.

Bien qu’étant très enthousiaste à propos des nouvelles possibilites apportées par Java 8, parfois d’ailleurs avec beaucoup de points d’exclamation, les auteurs expliquent aussi quelques compromis qui ont été faits lors du design de Java 8 et comment le développeur peut éviter les pièges qui existent avec ces nouvelles fonctionnalités. Comme le montre le livre, l’approche fonctionnelle de Java 8 est aussi contrainte par l’historique du langage Java et des choix éffectués par le passé ; les nouvelles fonctionnalités devant apporter un plus, tout en gardant l’ensemble du langage rétro-compatible le plus possible. Par exemple, les lambdas de Java 8 ne s’intègrent pas a 100% avec le langage comme on pourrait l’aimer, et le type des lambdas en Java 8 est une interface et non une fonction comme cela semblerait plus logique. On peut avoir l’impression que Java 8 supporte un nouveau type de fonctions mais ce sont bien des classes qui sont utilisées pour représenter les différents concepts.

Java 8 in Action : Notre avis

Je recommande Java 8 in Action à tous les developpeurs Java qui recherchent soit de découvrir les nouvelles fonctionnalités apportées par Java 8, soit d’apprendre et/ou de se perfectionner sur la programmation fonctionnelle et particulièrement son application en Java. Dès le début de la lecture de Java 8 in Action, vous vous rendrez compte à quel point votre code pourra être plus précis et plus concis en utilisant la programmation fonctionnelle, ce qui fera de vous un expert dans le design et le développement sur une nouvelle approche de la programmation.