Una partida de dardos

Por Tamara Osona
Junior Open Source Consultant de OpenSistemas

¿Quién no ha tenido dificultades a la hora de crear un objeto en Javascript? Gran parte de los desarrolladores han comenzado programando con lenguajes orientados a objetos fuertemente tipados y al encontrarse con los prototipos de Javascript, puede haberle dado un quebradero de cabeza a más de uno.

Javascript es un lenguaje con un buen manejo de prototipos pero a su vez, es igual de desordenado, no ayuda a estructurar mejor el código, sino todo lo contrario. Los atributos de una clase carecen de visibilidad, no permitiendo crear atributos privados.

Para todos estos programadores, acostumbrados a desarrollar con clases y todos sus beneficios, el equipo de Google creó un lenguaje de código abierto, llamado Dart que salió a la luz a finales de 2011, un reemplazo que pretende aprovechar las virtudes de JavaScript, y a la vez superar sus defectos.

Dart es un lenguaje puramente orientado al desarrollo con clases y objetos, y todo lo que esto implica (limpieza, herencia, reutilizabilidad…), tiene funciones que se pueden asignar a variables, tiene la posibilidad de crear propiedades y métodos privados dentro de una clase. Este lenguaje está pensado para la creación de aplicaciones o sitios complejos, ya que proporciona mayor control, orden y seguridad. Si ya se tienen conocimientos previos de JavaScript, comprender Dart es rápido.

Este lenguaje tiene muchas formas sencillas a la hora de declarar elementos, por ejemplo, para crear un elemento privado, es suficiente con que su nombre empiece por “_”, se pueden declarar datos de colecciones utilizando [] y {}, métodos sencillos que devuelvan un valor usando “=>”… tiene un “tipado opcional”, puedes, o no, declarar variables.

Está bien documentado, no solo por el propio Google, sino que también por comunidades como StackOverflow. Dart es muy similar a otros lenguajes que ya existen, pero su principal diferencia es que podemos ejecutarlo en el navegador. Para acceder a él, tenemos las librerías html y js, sobre éstas, se construyen otras, como “polymer”, que permite definir elementos y enlazar automáticamente con datos de los objetos Dart. También se está creando un port de AngujarJS, llamado AngularDart.

En principio, el único navegador que soporta este lenguaje es Chromium, pero el IDE (proporcionado por Google) integra un “parser” que transforma Dart a Js, por lo que el resto de navegadores también pueden interpretarlo, aunque esto no es lo más óptimo debido a que, en ocasiones, genera demasiado código JavaScript, su mayor desventaja para SEO y accesibilidad. El código generado es compatible con todos los navegadores actuales, excepto IE8 o inferiores. También puede ejecutarse sobre su propia máquina virtual (sus herramientas no funcionan en Windows XP). En cuanto a velocidad, Google afirma que Dart puede llegar a ser incluso más rápido que Javascript. Aunque es pronto, ya existen librerías para acceso a bases de datos como MySQL o PostgreSQL.

Después de dos años de pruebas, Dart ha alcanzado su primera versión estable, la versión 1.0, que ha tenido como prioridad el compilador de Javascript y su rendimiento, dejando para más adelante las optimizaciones en el servidor.

A pesar de los rumores extendidos en Internet, según el propio Google, Dart no fue creado para sustituir a JavaScript, si no como una buena alternativa a tener en cuenta para futuros proyectos.

www.dartlang.org