javascript performance typescript google-closure-compiler asm.js

javascript - Rendimiento de TypeScript(asm.js, compilador de cierre) y sobrecarga



performance google-closure-compiler (1)

Evaluamos y probamos TypeScript a fondo en nuestro equipo y otros equipos ya lo utilizan, así que aquí está mi experiencia:

  • TypeScript es un superconjunto de JavaScript y en su mayoría se traduce 1: 1 a JavaScript sin ningún compromiso de rendimiento significativo, por lo que si sabe cómo escribir JavaScript eficaz, también sabe cómo escribir TypeScript eficaz. Una de las características no tan eficientes es la herencia, que se "emula" utilizando prototipos de JavaScript y produce más código del que se escribiría normalmente en JavaScript. Así que usa la herencia con precaución. Puede ver el JavaScript generado para ver si sus construcciones están compiladas lo suficientemente eficientemente para su caso.
  • La compilación de mecanografiado en asm.js es el mismo problema que la compilación de JavaScript en asm.js. Necesitaría emular las características que falta en asm.js en comparación con el javascript completo ... Si necesita algunas partes en asm.js, probablemente necesite Escríbalos usted mismo o compile desde un lenguaje más apropiado (menos dinámico) por emscripten y tal.
  • TypeScript tiene algo de soporte de AMD, pero no puedo hablar sobre el soporte de cierre de Google ... Ya que trata de lograr algo similar de manera muy diferente (los tipos y el metainfo en los comentarios en lugar de una nueva sintaxis), no creo que sean muy compatibles de usar máximo de ambos ...
  • El tamaño del archivo no es realmente un problema, es muy similar al tamaño de archivo de un JavaScript legible, a menos que se use mucho la herencia
  • El uso de TypeScript con backbone y otras bibliotecas tiene un beneficio en comparación con JavaScript; Las bibliotecas más populares ya tienen archivos de definición de tipo para TypeScript, por lo que obtiene autocompletado y verificación de tipos casi gratis. La diferencia de tamaño de archivo no es realmente un problema en comparación con JavaScript bien escrito.

TypeScript es todavía muy joven y muchas cosas que queríamos tener (JSLint, cobertura de código, TDD, herramientas BDD, ...) faltaban en ese momento. Además, hubo varios errores en el compilador (que se han corregido posteriormente), por lo que no elegimos usarlo, pero ningún punto de su lista se mostró como una verdadera reducción para nosotros ...

Actualización : para ver el potencial de TypeScript puede consultar Visual Studio Online "Mónaco". Lo que hicieron allí es bastante impresionante. Consulte Cómo comenzar con TypeScript para una introducción rápida.

Estoy estudiando el uso de TypeScript combinado con un MVC del lado del cliente (probablemente Backbone.js + Marionette.js o Ember.js ) para proyectos futuros y, por lo tanto, tengo algunas preguntas relacionadas con el rendimiento y la optimización:

  • ¿Cómo se compara la salida de TypeScript rendimiento de JavaScript nativo?

  • Dado que asm.js es un subconjunto de JavaScript, ¿sería posible convertir código TypeScript en código asm.js ? Si es así, ¿ya es posible?

  • ¿Es posible y aún es útil crear compilaciones de proyectos de AMD que utilizan TypeScript con el Google Closure compiler ?

  • ¿Cuánta sobrecarga agrega TypeScript en promedio, por tamaño de archivo?

  • Cuando se utilizan bibliotecas ligeras como Backbone.js en un proyecto pequeño, por ejemplo. ¿Tiene sentido usar TypeScript en lo que respecta al tamaño del archivo?

Me gustan los beneficios adicionales de TypeScript pero no quiero sacrificar el rendimiento por el estilo de escritura y la escritura.

Todos los artículos / libros sobre el uso de TypeScript en grandes proyectos, especialmente relacionados con el rendimiento, las optimizaciones y las compilaciones son bienvenidos.

Gracias de antemano !