validacion - validar formulario javascript html5
¿Qué motor Javascript insertarías en tu aplicación? (10)
He probado SpiderMonkey y V8. Con SpiderMonkey, no pude hacer que nada funcionara. Ni siquiera pude obtener los ejemplos en mozilla.org para compilar.
V8 funcionaba desde el primer momento y obtuve algunas interacciones básicas de C ++ <-> Javascript que iban bastante rápido. Hay algunas listas de google para personas que usan V8, y ya encontré la mayoría de mis preguntas allí respondidas.
Quiero incrustar Javascript en un motor de juego de hobby. Ahora que tenemos la quinta generación de motores con Javascript (todo muy rápido), tengo curiosidad por saber qué motor elegirías incorporar en un marco C ++ (eso incluye la facilidad real de incorporarlo).
Nota: Para dejarlo en claro, no me interesan las secuencias de comandos DOM ni escribir Javascript en un navegador.
Aquí hay una compilación de enlaces y algunos consejos del hilo
- Mono araña
- tracemonkey (nota: compatible con versiones anteriores de spidermonkey):
- V8
- Squirrelfish
Solo para que conste, me encanta Lua y ya lo he incluido en los motores de los juegos unas 5 veces en el trabajo.
Sin embargo, ahora este es un proyecto de hobby, y creo que Javascript es conocido por la mayoría de los desarrolladores web y porque sus desarrolladores ECMA, Flash y Flex, un motor de juegos que usa Javascript y XML para scripting sería más fácil de usar y atendería a un mayor la base de usuarios (y una que hasta ahora no ha tenido la oportunidad de usar sus habilidades para juegos) que una con Lua (¡y hay muchos a su alrededor!).
También para el registro voy a ir con V8 en este caso, sobre todo porque me gusta el estilo C ++.
Es posible que también desee ver el V8 de Google. Aunque es bastante nuevo.
Esperaría por TraceMonkey, la próxima evolución de SpiderMonkey para salir. Más rápido y mejor diseñado. (Utiliza código donado de Adobe Flash).
Tracemonkey se enorgullece de realizar acciones repetitivas mucho más rápido optimizando agresivamente la estructura en tiempo de ejecución en función del uso real, que debe ser útil para el aumento del juego.
Vigilaría v8, ya que está gritando rápido motor de JavaScript, y estoy seguro de que desarrollará soporte multiplataforma a medida que crezca hasta su madurez.
El punto de referencia que apareció cuando V8 apareció por primera vez en la escena que mostraba que el V8 es el 1000% (o lo que sea) más rápido que otros motores fue muy utilizado para favorecer motores que eran buenos para la recursión. Si su código usa mucha recursión, entonces V8 podría darle una ventaja significativa, en cuanto a la velocidad. Para el mundo del "mundo real" (actualmente, al menos), SquirrelFish Extreme parece ser el ganador indiscutible en este momento (ver la publicación de mi blog sobre el tema para obtener los resultados de mis propias pruebas informales).
Como han señalado otros, la facilidad de integración y la calidad de la documentación pueden prevalecer sobre la velocidad pura. ¡No significa jack si no envías!
Prueba Javascript .NET:
http://javascriptdotnet.codeplex.com/
Implementa Google V8. Puede compilar y ejecutar Javascript directamente desde el código .NET con él, y suministrar objetos CLI para ser utilizados también por el código JavaScript. Y V8 es probablemente el mejor motor jamás creado en términos de rendimiento, genera código nativo de Javascript.
Cuando se habla de un motor de scripting y c ++ también se puede considerar chaiscript . Está cerca de la secuencia de comandos ecma (~ Javascript) y muy fácil de incrustar en c ++.
Vendedor de la página web:
... ChaiScript, por otro lado, fue diseñado desde cero con la integración con C ++ en mente. ... ChaiScript no tiene un metacompilador, ni dependencias de biblioteca, ni requisitos de sistema de compilación ni ningún tipo de equipaje heredado de ningún tipo. At puede funcionar sin problemas con cualquier función de C ++ que expongas a ella. No tiene que decirse explícitamente sobre ningún tipo, es función céntrica.
Con ChaiScript puedes literalmente comenzar a escribir tu aplicación agregando tres líneas de código a tu programa y no modificando tus pasos de compilación.
Creo que v8 solo funciona en x86, x64 y procesadores de brazo en este momento. Lo cual podría ser una desventaja.
Con respecto a la seguridad del hilo, desde include / v8.h :
* Multiple threads in V8 are allowed, but only one thread at a time
* is allowed to use V8. The definition of ''using V8'' includes
* accessing handles or holding onto object pointers obtained from V8
* handles. It is up to the user of V8 to ensure (perhaps with
* locking) that this constraint is not violated.
Puede leer más en el archivo fuente (parece una documentación doxygen, pero parece que no lo han subido a ninguna parte).
Actualización: ese comentario ha sido eliminado, probablemente hace algún tiempo. Parece que v8 ahora tiene un objeto Isolate
que representa una instancia del motor. Una única instancia de Isolate
solo se puede usar en un solo subproceso a la vez, pero otras instancias de Isolate
se pueden usar en otros subprocesos al mismo tiempo.
¿Es Java Script realmente el lenguaje correcto para tu juego? Muchos de los juegos que están usando el lenguaje de programación Lua para scripting. Es fácil de integrar, es muy pequeño, se compila en casi todas las plataformas y es fácil de aprender.
Esto es algo fuera de lugar, pero pensar fuera de la caja puede ser importante para hacer las cosas bien.
SpiderMonkey de Mozilla es bastante fácil y está bien documentado. Es una API C, pero es sencillo envolverla en C ++. Se puede compilar para que sea seguro para la ejecución de subprocesos, lo cual es útil para juegos ya que es probable que desee tener su lógica principal en un subproceso y lógica de interfaz de usuario en un segundo subproceso.
El V8 de Google podría ser una buena opción, ya que estás usando C ++, pero aún no tengo experiencia con él. De acuerdo con la documentación (gracias a Daniel James ), V8 no es seguro para subprocesos, aunque esto puede cambiar en el futuro.
También está SquirrelFish de WebKit , pero no pude encontrar una versión independiente de eso cuando estaba mirando antes.