lunes
dic182006
Reflexión sobre por qué no se deberían incluir closures en Java
lunes, diciembre 18, 2006 at 12:14AM
Mikael Greg ha publicado un post (que es casi un mini-artículo) en Javalobby sobre por qué él considera que no se debería incluir los closures en Java 7. Su argumento se apoya en dos pilares. Por un lado, que prácticamente todo lo que se puede hacer con closures se puede hacer con clases anónimas (lo único que no se puede hacer es acceder a las variables del ámbito de la closure) con la única "desventaja" de teclear un poco más de código.
Sin embargo, los modernos editores que tenemos para Java pueden generar la mayor parte del código necesario de la clase anónima. Además, lo que sí se podría hacer que es mejorar y simplificar la sintaxis para definir clases anónimas. Por otro lado, la sintaxis de las closures tampoco es tan elegante cuando éstas pueden lanzar excepciones.
El otro pilar de su argumento es que los beneficios que traería la inclusión de las closures (beneficios que Mikael no niega) se verían eclipsados por la complejidad e inconsistencia que traerían al lenguaje. Complejidad porque es un nuevo concepto a comprender e iría en contra del objetivo de Sun de alcanzar los 10 millones de programadores Java (lo que implica que el lenguaje debe ser sencillo). Inconsistencia porque ya tenemos una gran cantidad de librerías (en especial framework de colecciones) que se habrían diseñado de un modo completamente diferente si el lenguaje contase con este tipo de construcciones.
¿Qué os parecen sus argumentos? ¿Estáis a favor de las closures para Java 7 o en contra?
Sin embargo, los modernos editores que tenemos para Java pueden generar la mayor parte del código necesario de la clase anónima. Además, lo que sí se podría hacer que es mejorar y simplificar la sintaxis para definir clases anónimas. Por otro lado, la sintaxis de las closures tampoco es tan elegante cuando éstas pueden lanzar excepciones.
El otro pilar de su argumento es que los beneficios que traería la inclusión de las closures (beneficios que Mikael no niega) se verían eclipsados por la complejidad e inconsistencia que traerían al lenguaje. Complejidad porque es un nuevo concepto a comprender e iría en contra del objetivo de Sun de alcanzar los 10 millones de programadores Java (lo que implica que el lenguaje debe ser sencillo). Inconsistencia porque ya tenemos una gran cantidad de librerías (en especial framework de colecciones) que se habrían diseñado de un modo completamente diferente si el lenguaje contase con este tipo de construcciones.
¿Qué os parecen sus argumentos? ¿Estáis a favor de las closures para Java 7 o en contra?
in
j2se
j2se 
Reader Comments