Dart 2.14 llega con soporte para Apple M1, nuevos operadores, mejoras y mas

Google dio a conocer hace poco el lanzamiento de la nueva versión del lenguaje de programación «Dart 2.14», que continúa el desarrollo de una rama radicalmente rediseñada de Dart 2 y que se diferencia de la versión original del lenguaje Dart por el uso de una fuerte escritura estática.

En esta nueva versión se destaca el soporte para Apple M1, la integración de nuevos operadores, mejoras en algunos comandos, manejo de memoria, en reglas y mucho más.

Para quienes desconocen de Dart deben saber que este, está pensado para ofrecer mejores resultados mediante alternativas a algunos problemas de JavaScript, pese a que en su presentación no se hicieron referencias explícitas a JavaScript. Pretende ser una herramienta sencilla para proyectos más grandes y ofrecer una mejor seguridad.

El objetivo de Dart no es reemplazar JavaScript como el principal lenguaje de programación web en los navegadores web, sino ofrecer una alternativa más moderna. El espíritu del lenguaje puede verse reflejado en las declaraciones de Lars Bak, ingeniero de software de Google, que define a Dart como un “lenguaje estructurado pero flexible para programación Web”

Principales novedades de Dart 2.14

En esta nueva versión de Dart 2.4 una de las novedades que se presenta es que en el SDK ya se cuenta con el soporte para procesadores Apple M1, lo que significa tanto la capacidad de ejecutar Dart VM, utilidades y componentes SDK en sistemas con un procesador Apple Silicon, como soporte para compilar archivos ejecutables para estos chips.

Otra de las novedades es en el comando «dart pub» en el cual se ha agregado soporte para un nuevo archivo de servicio «.pubignore» que permite definir una lista de archivos que se omitirán al publicar un paquete en el repositorio pub.dev. Estas configuraciones no se superponen con la lista de ignorados «.gitignore» (en algunas situaciones en pub.dev se requiere no transferir archivos que son necesarios en Git, por ejemplo, scripts internos usados ​​durante el desarrollo).

En la biblioteca estándar (Core) se agregan los métodos estáticos hash, hashAll y hashAllUnordered a la clase Object, mientras que para la clase DateTime, en esta se ha mejorado el manejo de la hora local al convertir horas entre horario de verano e invierno que no es un múltiplo de una hora.

Además en Dart 2.14 se proponen conjuntos de reglas unificadas para el analizador de código (linter), que brindan soporte simultáneo para verificar el cumplimiento de las recomendaciones de estilo de código para Dart y el marco Flutter. Por razones históricas, las reglas de codificación para Flutter y Dart eran diferentes, además, había dos conjuntos de reglas en uso para Dart.

Dart 2.14 introduce un nuevo conjunto general de reglas para linter de forma predeterminada en los nuevos proyectos de Dart y en el SDK de Flutter. El conjunto incluye reglas básicas, reglas adicionales recomendadas y pautas específicas de Flutter.

En el formateador, se han realizado optimizaciones en el formateo de bloques de código en cascada, lo que puede mejorar significativamente el rendimiento del formateo y evitar una interpretación ambigua de la pertenencia de los elementos de expresión.

El paquete ffi agrega soporte para el asignador de memoria, que libera recursos automáticamente. El paquete ffigen agrega la capacidad de generar definiciones typedef de tipos de Dart desde el lenguaje C.

De los demas cambios que se destacan:

  • Se ha agregado un nuevo operador de triple turno (>>>) que, a diferencia del operador «>>», no realiza una aritmética, sino un desplazamiento lógico que funciona sin tener en cuenta el bit de signo (el desplazamiento se realiza sin dividir en números positivos y negativos).
  • Se eliminó la restricción en los argumentos de tipo, que no permitía usar tipos comunes de funciones como argumento con un tipo.
  • Se ha trabajado para mejorar el rendimiento del comando «dart test», que ahora no requiere volver a compilar las pruebas después de cambiar pubspec, si el número de versión no ha cambiado.
  • Se eliminó la compatibilidad con la compilación en el modo de compatibilidad ECMAScript 5 (el cambio provocará la pérdida de compatibilidad con el navegador IE11).
  • Las utilidades separadas stagehand, dartfmt y dart2native han sido declaradas obsoletas, reemplazadas por comandos incorporados invocados a través de la utilidad dart.
  • Mecanismo de extensiones nativas de VM obsoleto. Para llamar al código nativo desde el código Dart, se recomienda utilizar la nueva interfaz Dart FFI (Foreign Function Interface).

Fuente: https://medium.com

from Linux Adictos https://ift.tt/2YNtZmO
via IFTTT