¿Cómo se compara la velocidad de un juego móvil de JavaScript con un juego móvil nativo (por ejemplo, basado en Java en Android)?

Java y JavaScript son lenguajes de programación. Los lenguajes de programación son solo un montón de reglas matemáticas abstractas. Los lenguajes de programación no son rápidos. O lento Ellos simplemente son .
El rendimiento de una aplicación no tiene nada que ver con el idioma. El factor más importante es la arquitectura de la aplicación. Luego viene la eficiencia algorítmica. Luego micro optimizaciones. Luego viene la calidad del compilador / intérprete. Entonces la CPU. Tal vez un par de pasos más en el medio. El lenguaje, sin embargo, no juega un papel directamente. (Y, por supuesto, si está hablando de puntos de referencia, entonces el punto de referencia particular juega un papel, así como qué tan bien implementado está el punto de referencia, qué tan bien está ejecutado, si el tipo que realiza el punto de referencia realmente sabe algo sobre la referencia, y más importante aún, las estadísticas. Además, la definición precisa de lo que realmente quiere decir con “rápido” es bastante importante, ya que también puede tener una influencia significativa en el punto de referencia).
Sin embargo, el lenguaje podría desempeñar un papel indirecto: es mucho más fácil encontrar y corregir cuellos de botella de rendimiento en 10 líneas de código Lisp altamente expresivo, claro, conciso, legible, bien factorizado, aislado y de alto nivel, que en 100 líneas de C enredada, de bajo nivel (tenga en cuenta que esos dos idiomas son solo ejemplos. No me refiero a seleccionar un solo idioma). Twitter, por ejemplo, ha dicho que con un lenguaje menos expresivo que Ruby, no lo harían. han podido hacer cambios tan radicales en su arquitectura en tan poco tiempo, para solucionar sus problemas de escalabilidad. Y la razón por la cual Node.js puede proporcionar un rendimiento de E / S tan bueno es porque la biblioteca estándar de JavaScript es muy mala. (De esa manera, Node.js tiene que proporcionar todas las E / S en sí, para que puedan optimizarlo desde cero desde cero. Ruby y Python, por ejemplo, han creado bibliotecas de E / S que funcionan tan bien como Node.js y son mucho más maduros … pero, Ruby y Python ya tienen grandes bibliotecas estándar, incluidas las bibliotecas de E / S, todas las cuales son síncronas y no funcionan bien con bibliotecas con eventos. JavaScript no tiene el problema de I / O bibliotecas que no funcionan bien con E / S evented, porque JavaScript no tiene bibliotecas de E / S en absoluto ).
Pero si realmente quiere comparar los dos, aquí hay un punto de datos interesante para usted: HotSpot, que es una de las implementaciones de JVM más populares y con mejor rendimiento, fue creada por un equipo de personas que incluyó, entre otras personas, un chico llamado Lars Bak. Pero en realidad, HotSpot no apareció de la nada, se basó en el código fuente de Anamorphic Smalltalk VM, que fue creado por un equipo de chicos que incluía, entre otras personas, a un tipo llamado Lars Bak.
V8, que es una de las implementaciones de JavaScript más populares y con mayor rendimiento, fue creada por un equipo de chicos que incluía, entre otras personas, a un tipo llamado Lars Bak. Pero en realidad, el V8 no apareció de la nada, se basó en el código fuente de Anamorphic Smalltalk VM, que fue creado por un equipo de chicos que incluía, entre otras personas, a un tipo llamado Lars Bak.
Dado que los dos son más o menos lo mismo, podemos esperar un rendimiento similar. La única diferencia es que HotSpot tiene más de cien ingenieros trabajando en él durante 15 años, mientras que V8 tiene una docena de ingenieros trabajando por menos de 5 años. Esa es la única diferencia en el rendimiento. No se trata de tipeo estático versus dinámico (Java está tipado estáticamente, pero la mayoría de las JVM y ciertamente HotSpot no hacen optimizaciones estáticas, todas las optimizaciones son puramente dinámicas), compilación vs. interpretación (HotSpot en realidad se interpreta con un compilador JIT adicional, mientras que V8 es puramente compilado), de alto nivel frente a bajo nivel. Se trata únicamente de dinero.
Pero apuesto a que por cada par de implementaciones de Java y JavaScript donde la implementación de Java es más rápida, puedo encontrar otro par donde la implementación de JavaScript es más rápida. Además, probablemente pueda mantener el par y simplemente usar un punto de referencia diferente. Hay una razón por la que el juego Computer Languages ​​Benchmark Game es un “juego”: incluso lo alientan directamente en su propia página a jugar con los puntos de referencia para hacer que cualquier lenguaje arbitrario llegue a la cima.

Fuente: ¿Qué tan rápido es Javascript en comparación con Java?

Las aplicaciones híbridas pueden ser un buen competidor cuando se trata de construir una buena aplicación de utilidad, pero los juegos son otra cosa. Sus tareas relacionadas con el rendimiento deben llevarse a cabo en su mejor momento.

También depende del requisito del juego, si es un juego de cartas básico, puede intentar construirlo con javascript. Pero cuando se trata de animaciones y renderizado de entornos, no creo que compita con aplicaciones nativas con javascript.