2012-07-20 26 views
8

Sé que ese dardo todavía está en la vista previa técnica. Dart también se puede compilar en JavaScript.¿Cuáles son los límites de compilar dardos para javascript?

¿Pero cuáles son los límites de compilar dardos para javascript? Dart tiene que tener algunas características o conceptos específicos dentro del lenguaje, que no se pueden traducir simplemente a código JavaScript.

La razón es que un amigo me preguntó si Dart puede compilar todo lo posible en JavaScript o eso p. El 5% de los elementos de idioma (ya sabes, las cosas realmente geniales mejoradas) no serán compilables.

http://www.dartlang.org

Respuesta

3

¿Se puede incluir un FAQ quote? ;)

P. ¿Algún código de Dart válido compilará a JavaScript, o hay limitaciones de ? Sí, tenemos la intención de cualquier código de Dart válido para compilar a JavaScript. Si falta algún soporte de uno de nuestros compiladores, , eso es un error (en el compilador o en la especificación).

Así que si no es el caso ahora, al menos, el objetivo de Google es compilar cualquier pieza de código JavaScript dardo a.

7

Mi inicio ha desarrollado una aplicación 50.000+ líneas en Dart y hasta ahora han stumpled en muy pocas limitaciones en cuanto a la recopilación de dardo de JavaScript. Dart fue creado desde el principio para ser convertido a JavaScript para que no sufra los problemas de compilación que plagaron GWT (GWT no pudo serializar las clases de Java en Javascript, lo que provocó que las personas envueltas cosas solo por hacer feliz al compilador de GWT).

Habiendo dicho eso, existen algunas limitaciones al compilar Dart a JavaScript, pero la mayoría de ellas están relacionadas con la tecnología del servidor que no se puede ejecutar en el navegador como sockets y acceso IO y por lo tanto son muy razonables. También hay algunas limitaciones con respecto al paso de objetos a los aislamientos, pero creo que estos serán resueltos en versiones futuras de dart2js.

+1

Lo que dijo Lars. Añadiré que actualmente, a partir de 2012-07-20, existe un problema conocido de compilación de enteros de muy gran tamaño (desde Dart) hasta JavaScript. Dart admite enteros de tamaño arbitrario, JavaScript no. Este es un error conocido, y el equipo lo sabe. Si te mantienes dentro de los tamaños de número de JavaScript, estarás bien. Tenemos la intención de abordar este desajuste antes del lanzamiento de Dart. –

+0

@SethLadd lo siento, sí, me olvidé de eso (es por eso que tengo mi propia implementación int, pero la mayoría de la gente nunca necesitará esto). ¿Sabes si JS int se convertirá con precisión arbitraria (como en la máquina virtual) o se limitará a enteros de JavaScript de 64 bits. –

Cuestiones relacionadas