Review: Java 8 in Action

Después de un pequeño parón en el blog, debido a vacaciones y temas varios, vuelvo esta vez con una pequeña reseña sobre un libro que terminé de leer hace poco, «Java 8 in Action», de la editorial Manning.

Aunque ya estaba bastante familiarizado con Java 8, por leer múltiples artículos y hacer pocs y demás, me compré hace varios meses este libro. Y hice muy bien  🙂 Es un libro de muy fácil lectura y no se hace largo ni pesado.

Trata principalmente todas las novedades de Java 8, centrándose en concreto en el «cambio» a programación funcional de Java, centrandose mucho en las lambdas y los streams.

Los autores son Raoul-Grabriel Urma, Mario Fusco y Alan Mycroft.

Java 8 in Action

Java 8 in Action

Partes

Consta de 4 grandes partes, con varios capítulos cada una:

  1. Fundamentals: introducción en la que habla de porque necesitaba Java esta actualización, con una pequeña introducción a las lambdas y streams, así como un capitulo tratando el concepto de «Behavior parameterization» (capitulo muy didáctico, y que viene muy bien para entender correctamente las lambdas). El último capitulo de esta parte introduce a fondo el concepto de lambda y su funcionamiento.
  2. Functional-style data processing: en esta parte se centra a saco en los streams, con varios capítulos. Desde una introducción básica, hasta el uso detallado de los collectors, etc. En concreto, en uno de los capitulos trata la paralelización, muy interesante, haciendo incluso una pequeña introducción del framework fork/join que se añadió en Java 7.
  3. Effective Java 8 programming: en esta parte empieza con un capitulo con consejos de refactoring de java a java 8, consejos de testing y debugging. El resto de capítulos trata otras novedades de Java 8:
    – Default methods
    – Optional
    – CompletableFuture (se me quedo un pelín corto, pero es una muy buena introducción)
    – New Date Time API
  4. Beyond Java 8: En esta parte se centran en explicar varios conceptos de programación funcional pura, de como usarlos con Java 8, etc. Termina con un capitulo comparando Java 8 con Scala (con una pequeña introducción a Scala, no está mal), y con otro comentando posibles mejoras (ya para Java 9) que consideran recomendables.

Por último tiene 4 apéndices:
Apéndice A Comenta algunos otros pequeños cambios de Java 8.
Apéndice B Enumera nuevos métodos en librerías ya existentes (collection, list, etc)
Apéndice C Apendice avanzado sobre como realizar múltiples operaciones en paralelo con Streams. Curioso cuanto menos.
Apéndice D Pequeño apéndice comentando como las lambdas son traducidas a bytecode.

En la web de Manning se puede descargar además todo el código de ejemplo que sale en todo el libro. Además, si te compras el libro y lo registras en la web, puedes descargartelo en pdf, epub, formato kindle, etc. Muy cómodo.

Opinión personal

Como comentaba cuando empecé a leerlo ya tenia un gran background sobre Java 8, e incluso lo estaba usando en mi trabajo desde Febrero (que es cuando me cambie de empresa), con lo que casi me lo compré más por capricho que por necesidad. Y aún así no me arrepiento 🙂

El libro me vino muy bien para asentar ciertos conceptos, y para entender ciertas movidas de los streams. Además que viene muy bien como libro de consulta para ciertas operaciones.

Y si no estás muy puesto en Java 8, es un libro perfecto para ponerte las pilas y muy fácil de leer. No se hace nada pesado, y trata todo lo necesario para manejarte con el mundillo de las lambdas y streams.

En mi experiencia, si eres programador Java, el paso a Java 8 y su programación funcional es una pasada. El código es mucho más legible, más resumido… Y además es que luego ya no hay vuelta atrás, jaja. Si ahora mismo tuviera que volver a trabajar en algún proyecto en Java 7 (o menos), no podría…

Deja un comentario