[**Dart**](http://www.dartlang.org/), el lenguaje de programación estructurada para la web creado por Google, ya está aquí y en este pequeño artículo le daremos un vistazo muy general. Sin más preámbulo, comencemos.

### Contexto

**Dart** fue dado a conocer hace unas semanas y, como se prometió en su momento, presentado en forma el día de hoy en el marco de la conferencia para desarrolladores GOTO celebrada en varias sedes europeas.

**Lars Bak y Gilad Bracha** fueron los encargados de hacer la presentación. Ambos son ingenieros/investigadores destacadísimos. Bracha trabajó en Sun Microsystems y lideró el diseño de Newspeak, un lenguaje orientado a objetos basado en el clásico Smalltalk de [Alan Kay](http://alt1040.com/2011/10/historia-de-la-tecnologia-alan-kay-padre-legitimo-de-la-computacion-personal). Bak merece una mención aparte.

Lars Bak es experto mundial en implementación de máquinas virtuales, entre ellas la sofisticada HotSpot de Java. Luego trabajó en el diseño del motor **JavaScript V8**, antes de ser una tecnología comprada por Google, su actual empleador. Lo curioso de Bak es que él no reside donde los demás googlers, en California, sino en un pequeño pueblo danés, Aarhus, donde coordina en su casa-granja un grupo de 12 programadores para la mejora continúa de V8, la tecnología clave de Google Chrome.

### Diseño

Dart es un proyecto de código abierto en etapas tempranas de desarrollo que se irá presentando poco a poco a la comunidad, al estilo de lo que sucedió con [el lenguaje Go](http://bitelia.com/2009/11/go-el-nuevo-lenguaje-de-programacion-de-google), también creado por Google (a punto de alcanzar la versión 1.0, por cierto).

Estos son los objetivos de diseño del nuevo lenguaje:

1. 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.
2. Proveer una **sintaxis familiar** para los programadores experimentados. Sin duda, para reducir la pendiente de la curva de aprendizaje.
3. Que las aplicaciones creadas con Dart tengan un **gran desempeño** y se programen en poco tiempo.
4. Hacer que Dart esté **orientado a múltiples dispositivos**, desde smartphones hasta servidores, pasando por tablets y netbooks.
5. 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

Esto 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 

Ahora 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)}');
}

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

Para aprender Dart encontramos una pequeña [guía de estudio](http://www.dartlang.org/docs/getting-started/), aunque la [especificación](http://www.dartlang.org/docs/spec/index.html) del lenguaje debiera ser suficiente para comenzar a trabajar.

### Comentarios finales

Tú y yo lo sabemos sobradamente bien. Primero, que Google no deja de sorprendernos. Segundo, que sus tecnologías, si no terminan siendo estándares de facto, por lo menos dan mucho de qué hablar y hasta dan pie a tecnologías derivadas.

Ahora bien, si agregamos que Google tiene algunos de sus mejores ingenieros trabajando en Dart, seguro que en los próximos 2 o 3 años, a lo mucho, veremos a **Dart integrado en Google Chrome y Chrome OS**, y quién sabe, en un serio aspirante a competir con JavaScript por el reinado de la programación web, tanto en el navegador como en el escritorio, asunto en el que una vez más Google demuestra que está su prioridad.

También en Hipertextual:

La actualidad tecnológica y científica en 2 minutos

Recibe todas las mañanas en tu email nuestra newsletter. Una guía para entender en dos minutos las claves de lo realmente importante en relación con la tecnología, la ciencia y la cultura digital.

Procesando...
¡Listo! Ya estás suscrito

Participa en la conversación

35 Comentarios

Participa en la conversación, deja tu comentario

    1. el problema es q cuando google hizo dart, supuestamente no existia nodejs ni librerias como backbone.asi que segun ellos, dart es el unico lenguaje cliente-servidor para grandes app y eso es mentira

      1. Según explican ellos, el problema no esta en que no existan buenas librerías en JavaScript, el problema esta en el propio JavaScript.

  1. me parece que estan reinventando el agua tibia pero bueno habra que darle tiempo a ver que mas puede ofrecer el nuevo Dart

  2. tengo al rededor de 8 años estudiándolo y trabajado con JS, la elección de JS en la programación web es sencilla !es lo que hay!, la unica «competencia» seria VBScript que al estar casado con IE pierde por default!, tiene muchas bondades como objetivamente también tiene algunas debilidades, su principal ventaja es que ya esta en todos los exploradores desde hace años, se ha casado tan bien con HTML, DOM y CSS de hecho la magia de HTML5 viene de la mano de JS ya que sin el HTML5 son solo etiquetas para definir partes de nuestro documento.

    Dart, vi un poco su estructura me parece bien, pero el cambio seria difícil, estamos hablando de años, si yo para HTML5 hace un par de años lo pronosticaba ser viable para el 2015 dart seria viable casi hasta el 2020, ya que hay que esperar las nuevas versiones, recordemos también que el programar para la web es programar para la mayoría de dispositivos que podamos cubrir eso incluye exploradores viejos que no tendrán soporte a dart, al igual se tiene que crear un estandar si se pretende que los otros exploradores lo adopten de forma nativa como pasa con JS asi que veo mucha brecha de tiempo, la estrategia es crear máquinas virtuales que trabajaría como hoy trabaja Java o AS/Flash, o bien compilar el codigo y generar JS como lo hace hoy con GWT pero terminaría siendo JS, aunque si el dart da ventajas que Java no daba y se usa para este framework lo tomaría en consideración para mis próximos proyectos y si duda estara presente próximamente en Chrome, ChromeOS y Android.. será interesante ver que pasa con este leguaje y jugar un rato con el…

  3. Los programadores «serios» no queremos más wrappers para esté mundo de pseudo-códigos, estos sólo solapan la estupidez humana, quiero escribir en bajo nivel, tener el control y conocer lo que hago.

    1. estoy de acuerdo con eso… aunque a JS no lo podemos considerar de «bajo nivel» es de muy alto nivel solo que a muchos «programadores» les espantan y no quieren salir del lenguaje y paradigmas que dominan (Java-GWT) o bien no se le da la programación real y terminan haciendo un copypaste de los tutoriales de jQuery U.u, y no digo que jQuery este mal…. solo que es tan sencillo que cualquier pelagato ayudante de cocinero puede «hacer» maravillas en JS pero usandolo con las patas…. obviamente con una calidad, estructura, funcionalidad y rendimiento de la mierda!… U.u pero bueno en este mundo vivimo… donde domina lo que es «facil»… U.u… que fail

    2. los programadores serios saben que hay una diferencia de target y metas a la hora de escoger un lenguaje de bajo nivel a uno de alto nivel…no se de donde vienes tu (supongo que de ensamblador o de c) pero no tiene ningun sentido comparar el objetivo de los lenguajes de bajo nivel a los de alto nivel, espero que tengas suerte, paciencia y mucho tiempo libre para programar aplicaciones grandes usando un lenguaje de bajo nivel…..

      los programadores serios usan haskell y lenguajes funcionales, que son de alto nivel

  4. Mmm parece interesante y sencillo y para mi que supongo que soy un «programador tradicional» porque conozco Java y algo de PHP, me resulta facil de asimilar la sintaxis.

  5. Me cansaron. Porque todo lo de Google se sube al podio de las mejores tecnologías? Porque hablamos de que Dart nos sorprende y que Google no deja de sorprendernos si aun ni lo han probado al lenguaje? Dejen de sumar puntos a favor a Google solo por ser Google… Aprendamos a sacar conclusiones que no se basen en el historial de una empresa

    1. para mi ya es natural encontrar opiniones muy engañosas en los articulos de alt1040 lo que para mi es una verdadera lástima pues no he encontrado otro blog con articulos tan en principio interesantes

  6. Google, la nueva Microsoft.

    Lo último que necesitábamos ahora es otra megacorporación imponiendo sus criterios en la web

  7. «pequeño pueblo danés, Aarhus» -> Aarhus tiene 250.000 habitantes. Hay que tener cuidado con los daneses que tienen pueblos muy grandes. Por favor, comprobar fuentes :)

    1. Pues yo espero que no. Y no porque no me guste jQuery, sino porque espero que no haga falta. No son más que colecciones de workarounds para hacer que programar en JavaScript no sea un peñazo.

  8. en realidad dart no pretende sustituir a javascript, porque el código va a compilar a javascript, es decir, en el fondo tu código va a ser javascript (similar a lo que hace coffescript o mas similar aun a lo que hace clojurescript…un lenguaje solo apto para fanáticos de la prog funcional), por que es mas rápido si a final de cuentas es javascript?..no lo se pero supongo que es porque se va a utilizar el compilador de closures (creado por google) que en cierta medida «limpia» el código haciéndolo mas eficiente…esto ya lo hace clojurescript desde hace rato….

    esto significa que vas a poder utilizar librerias de javascript y node.js pero con un lenguaje que si bien no tiene mejor sintaxis (lastima que no hayan tomado la sintaxis de ruby o python…) si es mas consistente (javascript esta plagado de inconsistencia y defectos de diseño)…

    parece interesante aunque a final de cuentas no es nada nuevo, es la continuacion de lo que hicieron los creadores de coffescript y clojurescript pero con el sello google

      1. he leido en otros foros que es la alternativa mas facil, replazar java como lenguaje de GWT e implementar Dart, que a su vez exporta un js o funcionaria directamente en un motor en el explorador

  9. Todo lo terminara controlando google :O Dart reemplazando a Javascript en unos anios? bastante posible siendo google el monstruo que es, asi que a familiarizarnos con Dart xD

    1. Si? Te familiiarizaste con VBscript en su día? Porque ahora Google está intentando lo mismo que intentó Microsoft por aquel entonces.

    1. HTML5 aun esta en pañales U.u faltan de 3 a 5 años para que sea una tecnologia 100% viable (ni la epecificacion formal del estandar ha sido terminada y mucho menos implementanda)

    1. Al escribir apps complejas en javascript se incrementa la dificultad de mantener el código. Por eso la simplicidad de sintaxis, como en python, está tirando la balanza a favor de estos lenguajes

      1. curioso q menciones python cuando uno de los lenguajes del que veo menos influencia en dart es precisamente python, incluso viendo la documentacion observo detalles de ruby…pero nadita de python…Guido debe estar de vacaciones en google recibiendo masajes gratis, porque en Go tuvo poca influencia y en este menos..

    2. Porque Google está empeñada en controlar hacia donde se dirige la web. Y para ello necesitan que el lenguaje que se use para escribir las aplicaciones esté bajo su control.

      1. Porque todas las compañias están empeñadas en controlar hacia donde se dirige la web, lo hizo microsoft (con silverligth y el explorer en sus tiempos), tambien lo hizo Apple. Google no es el único