DART

Dart
Información sobre la plantilla
Parte de la familia Lenguajes de Programación Orientada a Objetos.
Dart thumb.png
Lenguaje de Programación Web Estructurada.
DesarrolladorGoogle.
Lanzamiento inicial2011
Última versión estable1.0
LicenciaCreative Commons
Sitio web
www.Dartlang.org

Dart, el lenguaje de programación estructurada para la web creado por Google, es un proyecto de código abierto en etapas tempranas de desarrollo que se irá presentando poco a poco a la comunidad. Fue revelado en la Conferencia en Aarhus, Dinamarca, el 12 de Octubre de 2011.

Características

  • Programación estructurada a la vez que flexible la idea de los ingenieros de Google ha sido que Dart pueda ser usado tanto en proyectos realizados por una sola persona hasta desarrollos complejos. Para ello se utilizan tipos opcionales. Según explican en su blog, incluso podremos empezar a programar sin estos tipos para añadirlos más tarde cuando sean necesarios.
  • Un lenguaje que resulte familiar a los programadores y que sea fácil de aprender: con esto en mente, desde la página web de Dart se han puesto a disposición de los usuarios varios tutoriales. Además al ser de código abierto se aceptan colaboraciones.
  • Permitir la adecuación de la nueva herramienta a cualquier navegador web: el código de Dart puede ser ejecutado de dos maneras, o bien en una máquina virtual nativa (que estaría disponible en Chrome en breve), o bien sobre un motor de Javascript usando un compilador que traduzca el código, lo que significa que será adaptable a cualquier navegador.
  • Este sistema pretende crear un código con una estructura flexible, familiar con el usuario y busca el alto rendimiento de los navegadores modernos y del resto de dispositivos del entorno. En ese sentido, este nuevo lenguaje posee tipos opcionales lo que permite que un usuario con pocos conocimientos puede iniciar la codificación sin una formación y añadirlo al proyecto más tarde cuando considere necesario.
  • lenguaje basado en clases e interfaces o POO (para facilitar la encapsulación y reutilización de código), que basándose en conceptos y tecnologías ya existentes, confían en que sea simple, eficiente y escalable (al final esto forma más bien parte de las buenas prácticas de programación, ya que por muy buena tecnología que usemos, si somos unos desorganizados y chapuceros, objetivos como eficiencia o escalabilidad no los veremos nunca).
  • En principio este nuevo lenguaje estaría disponible para los navegadores Chrome, Safari 5+, y Firefox 4+, aunque según indican en poco tiempo estará disponible para el resto.
  • Este código funciona a través de una máquina virtual nativa o en la parte superior de un motor de JavaScript mediante el uso de un compilador que traduce el código JavaScript a Dart, así la aplicación escrita por el usuario en Dart se compila y se ejecuta en el dispositivo que se utilice indistintamente. Además, se está estudiando la posibilidad de integrar esta máquina virtual de Dart en Google Chrome.

Objetivos

Hacer un lenguaje para la web estructurado y flexible a la vez. Estructurado en el sentido general del término, donde los programas son creados a partir de estructuras de control básicas, teniendo como resultado código claro y ordenado. Sin embargo, Dart es un lenguaje puramente orientado a objetos y todo lo que esto implica, donde el tipo de los datos se establece de forma dinámica o estática, a decisión del programador.

Proveer una sintaxis familiar para los programadores experimentados. Sin duda, para reducir la pendiente de la curva de aprendizaje. Las aplicaciones creadas con Dart tengan un gran desempeño y se programen en poco tiempo. Hacer que Dart esté orientado a múltiples dispositivos, desde smartphones hasta servidores, pasando por tablets y netbooks.

Hacer que Dart funcione sobre cualquier navegador web moderno, tal como JavaScript. De hecho, Dart puede ejecutarse sobre su propia máquina virtual, o bien, encima de un motor JavaScript.

Sintaxis

No es pseudo-lenguaje C; es Dart con la definición de la función Fibonacci arriba del código y una función principal que controla la ejecución.

int fib(int n) {
 if (n < = 1) return n;
 return fib(n - 1) + fib(n - 2);
}
 main() {
 print('fib(20) = ${fib(20)}');
}
Una clase y una función principal para calcular la distancia entre dos puntos en un plano X-Y:
class Point {
 Point(this.x, this.y);
 distanceTo(Point other) {
   var dx = x - other.x;
   var dy = y - other.y;
   return Math.sqrt(dx * dx + dy * dy);
 }
 var x, y;
}
main() {
 Point p = new Point(2, 3);
 Point q = new Point(3, 4);
 print('distance from p to q = ${p.distanceTo(q)}');
}

Es más familiar para un programador tradicional que conoce lenguaje C/C++, Java, PHP, y similares. Por lo demás la sintaxis es limpia, pero no tanto como en Python o Go.

Novedades

Dart está pensado para resolver los problemas de JavaScript y ofrecer unos mejores resultados, pese a que en su presentación no se hicieron referencias explícitas a JavaScript. Tiene la capacidad de ser una herramienta sencilla para proyectos más grandes y ofrece una mejor seguridad. Los ingenieros de Google desarrollaron desde 2011 un programa desde Internet para el desarrollo de aplicaciones llamado Brightly, que quizás podrá ser la primera aplicación creada con Dart. Google ofrecerá una herramienta para compilar Dart a ECMAScript 3 en el instante, para ser compatible con los navegadores que no utilicen Dart. Google también integrará una máquina virtual nativa en Google Chrome y facilitará a sus competidores lo mismo para sus navegadores.

Referencias