Llegamos a ustedes gracias a:



Noticias

Upgrade de Scala ofrece un alineamiento más cercano con Java 8

[09/11/2016] Scala, un moderno lenguaje funcional y orientado a objetos para Java Virtual Machine, está ahora alineado con Java 8, la última versión de la plataforma estándar de Java.

La versión 2.12.0, lanzada el miércoles, ofrece una mejora completa de su compilador para aprovechar las funcionalidades de máquina virtual en el upgrade de Java, de acuerdo a scala-lang.org. Con Scala 2.12.0, un rasgo compila directamente a una interfaz con métodos predeterminados, para mejorar la compatibilidad binaria y la interoperabilidad con Java. Y con Java 8 que permite métodos concretos en interfaces, Scala 2.12.0 puede compilar un rasgo a un solo classfile de interfaz.

"Antes, un rasgo se representaba como una interfaz y una clase que guardaba las implementaciones de método, afirmó scala-lang.org. "Scala 2.12 tiene que ver con hacer un uso óptimo de las nuevas características de Java 8 y así genera código que requiere un runtime de Java 8.

Además, la interoperabilidad entre Scala y Java 8 se ha mejorado para el código funcional, con métodos que toman las funciones que son fácilmente llamadas en cada dirección a través de sintaxis lambda. "Las clases de FunctionN en la biblioteca estándar de Scala son ahora tipos de SAM (Single Abstract Method) y todos los tipos de SAM son tratados uniformemente -desde la comprobación de tipos hasta la generación de código - no se genera ningún archivo de clase para las lambdas y más bien se usa invokedynamic en su lugar.

La nueva versión también cuenta con un nuevo optimizador de código de bytes. "El optimizador se configura utilizando la opción -opt compiler. De forma predeterminada, solo retira el código inalcanzable dentro de un método. También se incluye la eliminación de código muerto y varias optimizaciones de limpieza.

La versión 2.12.0 estandariza el back end GenBCode para emitir código más rápidamente, y se ha mejorado el shell interactivo en Scala. También tiene un upgrade de la inferencia de tipos para Scala.js, que genera el JavaScript desde Scala.

Scala 2.12.1, que va a rectificar algunos problemas de la versión 2.12.0, llega este mes; scala-lang.org afirma que va a limpiar el código y ofrecer soluciones de front-end. Una versión futura de Scala 2.12.x abordará un problema en el que las colecciones paralelas son propensas al interbloqueo en el REPL y los inicializadores de objetos. De aquí en adelante, las versiones de Scala 2.12.x serán completamente compatibles con los binarios.

Paul Krill, InfoWorld (EE.UU.)