我正在寻找一种好的脚本语言来链接到我的程序。我正在寻找两个重要的属性:
- 脚本语言应该硬链接到可执行文件中(不需要第 3 方安装)。这对我来说简化分发很重要。
- 脚本应该允许一些运行时调试选项(在我的程序中运行脚本时,我想在调试器中轻松运行它,同时它在我的程序上下文中运行)
python、lua 或其他语言可以为我提供这个吗?
我正在寻找一种好的脚本语言来链接到我的程序。我正在寻找两个重要的属性:
python、lua 或其他语言可以为我提供这个吗?
Lua 和 Python 都可以提供您提到的功能,因此选择其中之一将取决于其他标准。
Lua 是一个更轻量级的解决方案,它的磁盘占用空间要小得多,并且可能比 Python 的内存开销也更小。对于某些用途,它可能会更快。Python 拥有更丰富的标准库、更成熟的第三方库和更具表现力的语言。
两者都已嵌入到主要应用程序中。在 Blender、OpenOffice 和 Civilization 4 中可以找到 Python。在魔兽世界和 Adobe Lightroom 中可以找到 Lua。我建议您查看每个教程以及可将它们嵌入您的应用程序的工具,然后选择最适合您大脑的教程。
通常,Lua 是嵌入到另一个项目中的更好选择。Python 作为独立平台更好,因为库支持更广泛。有关更多详细信息,请参阅Lua 与 Python。
就个人而言,我根据手头的工作非常频繁地使用两者。我总是使用 Lua 嵌入 C/C++ 应用程序或从 C/C++ 共享库(即 DLL)导入的脚本功能。对于不需要低级 C/C++ 代码的独立任务,Python 始终是我的首选。
I'd put my two cents in for python. I don't know a lot of the details, but the computer graphics suite blender does a wonderful job of implementing python scripting.
As far as I can tell in blender 2.5 the interpreter is run from inside the executable,
import sys
sys.executable
shows /blender/blender.exe and there is good debugging support, it even has a full interactive interpreter inside.
For more info check out: http://www.blender.org/
我真的很喜欢 Lua 的嵌入,但作为另一种选择,JavaScript 很容易嵌入到 C、C++(SpiderMonkey 和 V8)和 Java(Rhino)程序中。
除了 Tcl、Lua 和 Javascript(都已经提到)之外,Guile是另一种专门为此设计的语言。
我会将 Tcl 添加到组合中。它旨在轻松嵌入到其他程序中。