Ya fue liberada la nueva version de Dart 2.12 y llega con Null Safety y FFI
Seguido de la anterior publicación de la nueva versión de Flutter 2, Google también dio a conocer la publicación (casi al mismo tiempo) del lanzamiento de la nueva versión del lenguaje de programación Dart 2.12, en el que continúa el desarrollo de la rama Dart 2 rediseñada radicalmente.
Para quienes desconocen de Dart (originalmente llamado Dash) deben saber que este es un lenguaje de programación de código abierto, desarrollado por Google.
Sobre Dart
Dart 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”
Entre las características únicas de Dart se destacan las siguientes:
- Portátil: los compiladores eficientes generan código de máquina x86 y ARM para dispositivos y JavaScript optimizado para la web. Se admite una amplia gama de objetivos : dispositivos móviles, PC de escritorio, backends de aplicaciones y más. Un extenso conjunto de bibliotecas y paquetes proporciona API consistentes que funcionan en todas las plataformas, lo que reduce aún más el costo de crear verdaderas aplicaciones multiplataforma.
- Productivo: la plataforma Dart permite un desarrollo rápido e iterativo tanto para dispositivos nativos como para la web. Y Dart ofrece construcciones ricas como aislamientos y async / await para manejar patrones comunes de aplicaciones concurrentes y controladas por eventos.
- Robusto: el sistema de tipo seguro para nulos de Dart detecta errores durante el desarrollo. Y la plataforma general es altamente escalable y confiable, con un uso de producción durante más de una década por parte de una amplia gama de aplicaciones, incluidas aplicaciones críticas para el negocio como Google Ads y Google Assistant.
¿Qué hay de nuevo en Dart 2.12?
Este lanzamiento se destaca por la estabilización del modo de seguridad «Null» (Null Safety), que evitará bloqueos causados por intentos de usar variables cuyo valor no está definido y configurado en «Null» pues permitirá a los desarrolladores detectar más fácilmente los errores nulos durante el desarrollo. Anteriormente, era difícil distinguir entre el código que anticipaba pasar como nulo y el código que no funcionaba con nulos.
Es decir, implica que las variables no pueden tener valores nulos a menos que se les asigne explícitamente un valor nulo. El modo considera estrictamente los tipos de variables, lo que permite al compilador aplicar optimizaciones adicionales. La conformidad de tipo se verifica en tiempo de compilación, por ejemplo, si se intenta asignar un valor «Nulo» a una variable con un tipo que no implica un estado indefinido, como «int», se generará un error. Null Safety es un cambio importante en el lenguaje y requiere algunos cambios al codificar.
Otra mejora importante en Dart 2.12 es la implementación estable de la biblioteca FFI , que permite crear código de alto rendimiento desde el cual puede acceder a las API de C, pues FFI permite pasar estructuras por valores y no solo por referencias.
De los demás cambios que se destacan:
- Las estructuras anidadas, frecuentes en C, ahora son compatibles con Dart FFI.
- Se realizaron optimizaciones de rendimiento y tamaño.
- Se agregaron herramientas de desarrollo y un sistema de creación de perfiles de código escrito con Flutter, así como nuevos complementos para desarrollar aplicaciones en Dart y Flutter para Android Studio/IntelliJ y VS Code.
De los planes futuros para Dart en general se menciona que en la próxima versión se centrarán principalmente en cambios incrementales de lenguaje, como alias de tipo, operador de triple turno, anotaciones de metadatos genéricos y metaprogramación estática.
Finalmente si estás interesado en conocer más al respecto sobre esta nueva versión del lenguaje de programación, puedes consultar los detalles en el siguiente enlace.