style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Todo sobre Java 8

Este post es del mes pasado y habia olvidado comentarlo aca

http://www.techempower.com/blog/2013/03/26/everything-about-java-8/

En resumen, algunas de las cosas nuevas que tiene Java 8 estan:

- Closures finalmente
- Implementacion por default en ias interfaces
- Interfaces funcionales
- Mejora (leve) en la inferencia en tipos genericos
- Java Time (ya era tiempo... juar juar, entienden Tiempo? ash...)
- Un monton de cambios en las bibliotecas para tomar ventajas de los closures.

Lo m'as triste aunque hasta cierto punto entendible es que no son closures "reales" toda vez que tienen la misma limitante que los actuales closures (las clases internas anonimas) que no pueden capturar una variable local que no sea marcada como final la razon data de cuando se introdujeron estas clases, donde los implementadores decidieron que era mala idea poner en el heap un valor sin que el usuario lo supiera ( para que una variable pueda ser accedida por una clase anonima , debe de estar en el heap y no en la pila ) Al parecer esta implementacion de los closures tiene las mismas fallas. Muy probablemente porque lo que van a hacer es implementarlos como syntax sugar para las clases anonimas.

Como sea, finalemente se dara este cambio, se supone que a finales del 2013. Esperemos que eventualmente haya una implementacion que capture las variable para que ahora si sean verdaderamente full closures.

Chau!

(p.d. este post fue intencionalmente escrito sin acentos - tildes pues - )

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de echan

Buen link ... aun con sus

Buen link ... aun con sus limitaciones creo que java 8 es un buen avance ... sobre todo para los que por algo no pueden migrar a otro lenguaje de la jvm que ya trae lambdas.

La implementacion definitivamente va por el mismo camino que jruby o groovy usando invokedynamic y methodhandles como se ve aqui o chequense esta presentacion del mismo Brian Goetz ... algo tirada pero explica muchos detalles de la construccion http://www.youtube.com/watch?v=9JRDbjQRhRw .

En lo personal despues de los closures lo que mas me llama la atencion es la reimplementacion del motor de javascript con el proyecto nashorn ... imaginense ejecutar sus aplicaciones nodejs en java por decir lo menos. Aqui una presentacion del proyecto http://www.youtube.com/watch?v=DcI7X_KIjzo

Imagen de benek

También la clase Optional:

También la clase Optional: http://blog.informatech.cr/2013/04/10/java-optional-objects/ aunque está a discusión su utilidad.

Hay varias características destacables, annotated types, Java Time, parece que JDK 8 viene más sustancioso que el 7.

Imagen de edgar.martinez

Manos a la obra con Lambdas y Java 8

Hola, hay un tutorial muy completo, es mas bien una guia paso a paso, para en menos de una hora practicar los Lambdas y el JDK 8. Te explica todo, desde donde bajar lo que necesitas, te da el codigo y explicacion paso a paso:

http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/Lambda-Qu...

Saludos

Imagen de neko069

Pues honradamente yo no le

Pues honradamente yo no le entendía mucho a éso de los lambdas si no hasta que (gracias a @luxspes) estuve revisando y haciendo ejemplitos con Haskell, y ahora que estuve trabajando con C# y su Linq ya me queda un poco más claro, y sí que estará super bien tenerlo en Java.

offtopic @Oscar, tuve que leer como 4 veces para entenderle a lo de Time; necesito vacaciones u_u

Imagen de ezamudio

2014

Nuevamente se retrasa, esta vez para el primer trimestre de 2014. http://mreinhold.org/blog/secure-the-train

Imagen de benek

Es curioso que una de las

Es curioso que una de las opciones era dejar de lado el Project Lambda, pero no dejar de lado Applets y WebStart, que de entrada son la causa del retraso.

Imagen de Sr. Negativo

Java 8 ...

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">