Qué traerá Java 7

A unas semanas de la renuncia de Gosling a Oracle y en un mundo en que tanto Groovy, Scala como Clojure, todos lenguajes implementados sobre la JVM no paran de crecer y amenazan reemplazar a un alicaído Java, les vamos a comentar algunas de las novedades que traerá la séptima versión del popular lenguaje, que vería la luz a finales de año (aunque dicen las malas lenguas que esta fecha podría posponerse para el 2011).

Soporte a lenguajes dinámicos

Java es un lenguaje fuertemente tipado, mas no tanto a nivel de bytecode, pero esto es un problema para lenguajes dinámicos como Groovy o Jython, que trabajan sobre la JVM. Para mejorar la integración se introducirá, además de varias clases nuevas, un nuevo bytecode, simplificando la implementación de compiladores dinámicos con una mejor performance.

Strings en switch



Por el momento, en un switch sólo podemos pasar como parámetros tipos de datos byteshortcharint yenum, pero finalmente podrá aceptar Strings, por lo que será posible hacer

switch (myString) { case "uno": ; break; case "dos": ; break; default: ; }

Collections y Generics

Hasta ahora, cuando teníamos que instancias una collection, debíamos duplicar el tipo de parámetros

Map<String, List> anagrams = new HashMap<String, List>();

Pero a partir de ahora, el segundo <> será inferido:

Map<String, List> anagrams = new HashMap<();

Además, podrán ser inicializados como los arrays:

List numbers = ["uno", "dos", "tres", "cuatro", "cinco"];

Manejo automático de recursos#x0d;

Mediante una mejora en el trypodemos declarar directamente recursos que deban ser cerrados al terminar la ejecución, ahorrándonos tener que cerrarlos manualmente. Lo que hasta ahora es:

try { BufferedReader br = new BufferedReader(new FileReader(path)); return br.readLine();#x0d; } finally { br.close();#x0d; }

Directamente será:

static String readFromFile (String file) throws IOException { try (BufferedReader reader = new BufferedReader(new FileReader(file)) { return reader.readLine(); } }

Binarios literales

Con el prefijo 0b podremos directamente representar literales binarios de enteros

<code>int binario = 0b10100010;</code>

Modularización del JDK

A medida que fueron agregando funcionalidades, características, entornos, etc., indudablemente se ha hecho más pesado, tanto en tamaño de descarga, tiempo de carga al inicio y consumo de memoria. El proyectoJigsaw viene a remediar esta situación, intentando implementar un JDK modular gracias al cual los usuarios podríamos descargar y cargar algunos sólo algunos componentes del JDK que requerramos para correr y desarrollar una determinada aplicación.

Nueva API de I/O

El manejo de I/O será una de las áreas que más cambiará con la séptima versión de Java. Por un lado, se añaden excepciones al manejo de archivos y se mejora el soporte a operaciones como copiado y borrado, permisos, monitoreo de modificaciones, etc. También crearon una interface NetworkChannel que define métodos bind()getLocalAddress()getOption()setOption(). Finalmente, se permitirá que los threadscontinúen su trabajo paralelamente al trabajo de I/O y sean notificados cuando las operaciones sobre archivos o red terminen de ejecutarse, con canales asíncronos.

Estos son algunos de los cambios, obviamente hay más. Hay varios sencillos que serán muy bienvenidos por el tiempo que ahorrarán al escribir código y otros, como la modularización, los cambios en manejo de archivos, que parecen más importantes. Si bien el JDK 7 será lanzado o a fines del 2010 o a principios del 2011, los que quieran tener un anticipo de los cambios pueden chequear las versiones de prueba de tanto el JDK deSun Oracle como el desarrollado por IBM (disponible sólamente para Linux y previo registro gratuito).

Enlace: bitelia

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: