¿Por qué dart2js produce inmensas líneas de código a partir de pequeñas aplicaciones Dart?

¿Puedes definir “inmenso”? Mi experiencia es que está dentro de los límites razonables (siempre y cuando no uses dardos: espejos).

Para un programa de “hola mundo” como este:

main() { print('hello world'); }

Y usando dart2js + minificación de Dart 1.7.2, compilo el programa Dart anterior en 6960 bytes. Si comprimo eso (que es la cantidad de servidores web que enviarán contenido a los navegadores), obtengo 2575 bytes. Yo diría que es bastante bueno.

Si agrego una llamada querySelector () desde dart: html:

importar ‘dart: html’;

principal() {
elemento var = querySelector (‘cool’);
print (‘hola mundo: $ elemento’);
}

Y usando la minificación dart2js + de Dart 1.72, compilo lo anterior en 33877 bytes. Si gzip eso, obtengo 10655 bytes. Además, eso es bastante bueno.

Para el contexto, jQuery en sí es de alrededor de 30 kb y CSS de arranque es de más de 100 kb (!). Y, por supuesto, la mayor parte del peso de la página está en imágenes de todos modos.

Ahora, si su JavaScript generado es superior a 1 MB, es muy posible que su programa esté usando dart: mirrors (una biblioteca de reflexión). NO use dart: mirrors con dart2js, ya que hinchará su código de salida.

Para obtener asistencia técnica más específica, publique sus fragmentos de código en Stack Overflow. ¡Gracias!

No sé qué es dart2js, pero probablemente sea la misma razón por la que “hello world” en Visual Basic produce un archivo enorme. Una mayor abstracción produce muchos gastos generales.