En el trabajo estamos planteando añadir un motor de scripting para temas relacionados con definir la pipeline de render (ahora usamos un XML pero se nos queda corto ya y es demasiado ofuscado usar XML para definir procesos iterativos).
Estoy planteandome usar Javascript ya que LUA me parece algo tosco y Python demasiado pesado. Tened en cuenta que me interesa que las dependencias sean lo mas pequeñas posibles, porque sino redistribuir el framework que estamos haciendo en mi departamento se hace demasiado complejo.
Alguien ha experimentado con Javascript bindeado desde C++? Estoy mirando Spidermonkey (el motor de firefox) y V8 (el de Chrome).
Cualquier expertise al respecto será bien recibido.
Yo no tengo "expertise" de ese, pero le doy un +1 a LUA.
Por supuesto que si ya lo has considerado lo suficiente ignora el +1, pero es que LUA me encanta. :P
El motor de JavaScript v8 es de lo mejor que hay. No obstante, es pesado y lento en comparación con el rendimiento que te da LUA. Tu mismo lo puedes probar.
Yo ante tal cuestion ni me lo pienso, LUA. Puede que te sea más complejo de implementar eso es cierto la pila de LUA es un infierno, yo ya me pelee bastante con ella. SI quieres rendimiento LUA, si quieres facilidad para que lo toque la gente "de internet o por ahí" usa JavaSciprt. Aunque yo creo que LUA es mucho más facil que JavaScript.
Hola.
Otra alternativa:
http://www.angelcode.com/angelscript/
Un saludo.
Partiendo de la base que si usas un lenguaje de script es para agilizar el desarrollo, esto es, que cada línea de código de más a la aplicación no sé realmente por qué optais por Lua teniendo lenguajes como Ruby o Python.
Tener un lenguaje de script embebido debe ser una tarea tediosa para los desarrolladores ya que tienen que estar entre dos mundos, si no te sale muy muy rentable introducir esta sobrecarga es preferible no incluirlo y desde luego los dos citados lenguajes te dan características interesantes para ser muy eficiente:
- Una librería muy amplia
- Herramientas de desarrollo (consolas, debuggers)
- Entornos de trabajo y facilidad para trabajar con código de terceros (virtualenv, pip, easy_install, rake, un larguísimo etc)
- Programación funcional, introspection muy potente, metaprogramación
- Soluciones para añadir velocidad (optmización de bytecode, JIT, ver pysco para python por ejemplo)
- Comunidad
Sé que Lua es la niña bonita de los desarrolladores de juegos y que parece es el primer flashazo, pero desde luego valoraría much si merece la pena. De hecho yo me plantearía antes de hacer nada si merece la pena meter un embebido o quizás sería mejor tener el framework y después hacer un recubrimiento.
Ya nos contarás
Si a mi poner python me encantaría, pero redistribuir python con mi librería sería una tocada de huevos, intento mantener mi libreria lo más ligera posible así que salvo que descubra un python-lite dudo que pueda hacerlo, y veo que con javascript me pasará igual.
Entre LUA, Phython y JavaScript, que son los que yo conozco. LUA es el más rápido y el menos pesado. No es porque sea la niña bonita es que al tener al menos esas 2 caracteristicas lo hace ideal.
Yo me hice mi binding con C++ y no usé ninguno existente y me dió la lata en su dia. Pero creo que merece la pena.