En la keynote de Gotocon, de la mano de Lars Bak (creador del motor de javascript V8 de Chrome) y de Gilad Bracha (co-autor de la segunda y tercera edición de la especificación de Java) se ha presentado Dart; un nuevo lenguaje de programación para la web.
Hace unas semanas se filtraron varios emails internos de google de 2010 en los que se discutían las bonanzas y mancanzas de Javascript. En dichos emails intervenían varios peces gordos en los que hacían latente sus preocupaciones a medio y largo plazo sobre el futuro de Javascript y en el que se planteaban un seguido de mejoras imprescindibles para garantizar una buena evolución de la web.
Dart es lo que en esos documentos apuntaban como la solución y es lo que hoy han presentado en Gotocon. Dart es muy parecido sintácticamente a Javascript pero le añade cosas que mucha gente echamos de menos. Dart incluye mejoras a JavaScript no sólo sintácticas que mejoran su usabilidad (como un sistema de Orientación a Objetos serio) sino que aporta mejoras que permitirán la creación de mejoras herramientas de desarrollo y otras mejoras que permitirán incrementar el rendimiento de ejecución de Javascript ya que el JIT tendrá mejor información sobre cómo optimizar la ejecución (i.e. tipado estático de datos).
Prestaciones
Sistema de clases con herencia e interfaces
Tipado estático de datos
Genéricos
Ámbito léxico de bloque real
Sobrecarga de operadores y constructores
Modelo de concurrencia basado en actores
Interpolación de cadenas. print(‘Hello, ${name}!’);
Named constructors
imports
Dart se ha diseñado para conseguir tres objetivos:
Alto rendimiento en los distintos dispositivos usados para la web.
Usabilidad y productividad del lenguaje. Dart es dinámico, fácil de usar y sigue la naturaleza de Javascript de no necesitar ser compilado.
Posibilidad de crear herramientas avanzadas que faciliten el desarrollo.
class Printer extends Isolate { main() { port.receive((message, replyTo) { if (message == null) port.close(); else print(message); }); } } main() { new Printer().spawn().then((port) { for (var message in [‘Hello’, ‘from’, ‘other’, ‘isolate’]) { port.send(message); } port.send(null); }); }
Cómo usarlo
La VM de Dart aún no es parte de Chrome pero ofrecen varias herramientas que nos permiten su uso:
Compilador de Dart a Javascript (disponible para Chrome, Safari 5+ y Firefox 4+)
En una VM (Virtual machine) nativa, que también se podría usar en el lado servidor.
Dartboard es un plugin para el navegador desde el cual podrás escribir pequeñas aplicaciones en Dart.
Personalmente es un lenguaje que me atrae mucho, más aún viniendo de quien viene, un sello distinguido de calidad. Además de la novedad creo también en la necesidad de evolucionar Javascript. Algo está clarísimo y es que cada vez se desarrollan más aplicaciones pesadas dentro del navegador, aplicaciones enterprise y aplicaciones con ciclos de desarrollo largos y equipos grandes. Todo esto sumado, destapa ciertas incompatibilidades con un lenguaje como Javascript, que aunque posible el circuito productivo es muy mejorable.
¿Lo aceptará la comunidad?
El éxito de Dart vendrá dado por la habilidad de Google de convencer al resto de fabricantes de incorporar la VM en sus navegadores. Durante los próximos meses veremos la tendencia y adopción que Dart pueda tener. Cabe destacar también que esta no es ni la primera ni la única iniciativa para mejorar Javascript. Hay proyectos como Javascript++ que siguen objetivos similares, pero está claro que su impacto no es el mismo que el que puede tener Google.
Más información | Web oficial de Dart, Ejemplos de código, Especificación del lenguaje, Anuncio oficial
En Genbeta Dev | Se descubren más detalles del nuevo lenguaje de Google llamado Dart