7

Estoy buscando un buen lenguaje de scripting para vincular a mi programa. Busco 2 atributos importantes:Lenguajes de scripting

  • lenguaje de secuencias de comandos debe estar vinculada con fuerza en el ejecutable (que no requiere tercera parte instalaciones). Esto es importante para mí para simplificar la distribución.
  • de secuencias de comandos debe permitir una cierta opción de depuración en tiempo de ejecución (Cuando se ejecuta un script dentro de mi programa me gustaría correr fácilmente dentro de un depurador mientras se está ejecutando en el contexto de mi programa)

Puede pitón, lua o algún otro idioma me proporciona esto?

+4

Debe proporcionar más información acerca de su programa, es decir, el idioma utilizado y el sistema operativo de destino. – Anax

+0

La pregunta más importante sería qué bibliotecas necesita. – Lothar

Respuesta

2

Puse mis dos centavos por python. No conozco muchos detalles, pero la batidora de la suite de gráficos por computadora hace un trabajo maravilloso al implementar scripts de python.

Por lo que yo puedo decir en la licuadora 2.5 el intérprete se ejecuta desde dentro del ejecutable,

import sys 
sys.executable 

espectáculos /blender/blender.exe y hay un buen soporte de depuración, que incluso tiene un total interactivo intérprete adentro.

Para más información echa un vistazo a: http://www.blender.org/

9

Lua está diseñado para esto:

  • vinculación estática? ¡comprobar!
  • debugging? check!
13

Tanto Lua como Python pueden proporcionar las características que usted menciona, por lo que elegir una de ellas dependerá de otros criterios.

Lua es una solución más ligera, tendrá una huella de disco mucho más pequeña y es probable que tenga una memoria menor que Python. Para algunos usos, puede ser más rápido. Python tiene una biblioteca estándar mucho más rica, bibliotecas de terceros más maduras y un lenguaje más expresivo.

Ambos se han integrado en las principales aplicaciones. Python se puede encontrar en Blender, OpenOffice y Civilization 4. Lua se puede encontrar en World of Warcraft y Adobe Lightroom. Recomiendo ver algunos tutoriales para cada uno y las facilidades disponibles para insertarlos en su aplicación y simplemente elegir el que mejor se adapte a su cerebro.

+1

Desafortunadamente Python carece de soporte real para un enlace de "un solo ejecutable". La DLL/so libs no se puede compilar ni vincular de manera estática. LUA evita el problema al no tener una biblioteca seria en absoluto. – Lothar

+2

Civilization 5 cambió a Lua por motivos de rendimiento. – Jonas

7

Por lo general, Lua es la mejor opción para integrarse en otro proyecto. Python es mejor como plataforma independiente porque el soporte de la biblioteca es mucho más amplio. Ver Lua Versus Python para más detalles.

Personalmente, utilizo ambos con mucha frecuencia dependiendo del trabajo en cuestión. Siempre utilizo Lua para incrustar en aplicaciones C/C++ o funciones de scripting que se importan desde bibliotecas compartidas de C/C++ (es decir, una DLL). Python es siempre mi primera opción para las tareas independientes que no requieren código C/C++ de bajo nivel.

1

Me gusta mucho Lua para incrustación, pero solo como otra alternativa, JavaScript es fácilmente integrable en C, C++ (SpiderMonkey y V8) y programas de Java (Rhino).

+0

+1 Es cierto, es otra opción viable. Solo lo recomendaría si usted, o más correctamente, sus usuarios/scripters probablemente ya lo sepan. Una cosa que olvidé mencionar en mi respuesta anterior es que, a menos que esté integrando el motor de scripting para su propio uso, debería considerar las preferencias y necesidades probables de quienes utilizarán la interfaz de scripting. –

+0

Simon: No estoy seguro de lo mucho que estoy de acuerdo con eso. Hubo un momento en que todos dijeron que querían REXX como un lenguaje de extensión, y no puedo nombrar un único programa que he visto con REXX en más de 10 años. No sé * nadie * que pidió Lisp para su editor (¡incluso los programadores de Lisp!), Pero mira Emacs ahora. Javascript (más o menos 'Esquema con sintaxis similar a Java') originalmente estaba por encima de las personas típicas que escribían páginas web, pero de alguna manera las personas lograron ajustarse. Creo que si el lenguaje es suficientemente poderoso y los usuarios quieren piratear tu programa/plataforma, los usuarios lo resolverán. – Ken

0

Agregaré Tcl a la mezcla. Está diseñado para integrarse fácilmente en otros programas.

1

Además de Tcl, Lua y Javascript (todos ya mencionados), Guile es otro lenguaje diseñado explícitamente para esto.

Cuestiones relacionadas