Evolución de Java (desde JDK5 a 8)
El pasado miércoles di, junto con Pilar Fraile, una charla sobre la evolución de Java, desde la JDK5 hasta la 8. La charla estaba inspirada por esta charla de Mario Fusco sobre Java 8 Lambdas en la Codemotion 2013.
La idea sobre todo era centrarse en cambios de sintaxis con dos propósitos, explicar y convencer de las mejoras hasta Java 7 a los desarrolladores que todavía no están usando el diamond operator, auto-cierre de recursos en el try, enumeraciones… y, por otra parte, introducir los grandes cambios en Java 8. Sobre los cambios en Java 8 nos centramos principalmente en métodos por defecto y estáticos en interfaces, la nueva API de fechas y lambdas.
Planteamos la charla mostrando código en Java 5/6/7 y el equivalente en versiones más modernas, mostrando, por ejemplo, cómo calcular el siguiente miércoles de la semana en Java 7 con el API de Calendar o con Java 8.
Todo el código usado (a base de tests) está disponible junto con las slides, echadles un vistazo y enviad preguntas/sugerencias/correcciones :)
También grabamos la sesión con un hangout. Debido a mi incapacidad técnica no he grabado toda la parte de Pili, JDK5 a JDK7 ( sorry :( ), sobre todo está grabado cuando hablamos de Java 8.
Al público le encantó el nuevo API de fechas (basado en Joda time) pero las expresiones lambdas no fueron tan bien recibidas (sobre todo por cuestiones de legibilidad). Probablemente no me centré lo suficiente en las ventajas de reutilización, composición, lazyness. También está la resistencia al cambio, sobre todo cuando parece complicado.
Por mi parte, todos estos cambios son más que bienvenidos (no habrían estado mal 4-5 años antes). De momento me tocará conformarme con que ya podemos usar casi todos los cambios de Java 7 en Android.
Incluyo las slides:
Cualquier feedback es bienvenido 😀