我正在考虑向现有代码库添加脚本功能,并且正在权衡各种软件包的优缺点。 Lua可能是最明显的选择,但我想知道人们是否根据他们的经验提出任何其他建议。
脚本将在某些事件中触发,并可能会驻留一段时间。例如,在启动时,脚本可以定义程序作为多个按钮呈现给用户的若干选项。选择其中一个按钮后,程序将通知脚本可能发生进一步事件的位置。
这是唯一真正的要求;
答案 0 :(得分:3)
根据我自己的经验:
我们很幸运能够生活在脚本的黄金时代,所以如果你选择任何一种流行的版本,很难做出错误的选择。
答案 1 :(得分:1)
我和Spidermonkey玩过一点点。看来你的情况至少值得一看。我也听说过Lua的好消息。使用javascript脚本语言的一个重要论点是,许多开发人员已经知道它并且从开始可能会更舒服,而Lua很可能会有一点学习曲线。
我不是完全正面但我认为蜘蛛侠是你的4个要求。
答案 2 :(得分:1)
我为此目的广泛使用了Python,并且从未后悔过。
答案 3 :(得分:1)
Lua拥有最直接的C API,用于绑定到我曾经使用过的代码库。事实上,我通常会手动快速滚动绑定。然而,如果没有像swig这样的生成器,你通常不会考虑这样做。此外,它通常比替代品更快,更轻,coroutines是一个非常有用的功能,很少有其他语言提供。
答案 4 :(得分:1)
允许您调用标准C函数和C ++方法,而无需代理函数。应用程序只是注册脚本应该能够使用的函数,对象和方法,并且不再需要对代码进行任何操作。脚本引擎也可以使用内部应用程序使用的相同功能,从而无需复制功能。
对于脚本编写器,脚本语言遵循广为人知的C / C ++语法(稍作修改),但不需要担心指针和内存泄漏。
答案 5 :(得分:1)
最初的问题将Tcl描述为“T”。
Tcl从一开始就被设计为嵌入式脚本语言。它已经发展成为一种独一无二的动态语言,但仍然在全世界被用作嵌入式语言。它可以在BSD许可下使用,因此它可以免费获得。它也适用于任何现代平台,许多不那么现代。它不仅适用于桌面系统,还有适用于移动平台的变体。
Tcl擅长“胶水”语言,您可以在C语言中编写性能密集型函数,同时仍然可以从脚本语言的优势中获益,从而降低应用程序性能关键部分的性能。
Tcl还附带了一流的GUI工具包(Tk),可以说是最简单的跨平台GUI工具包之一。它还与SQLite和其他数据库非常接口,并且已经在很长一段时间内内置了对unicode的支持。
如果脚本界面可供您的客户使用(而不是简单地让您自己的工程师在脚本级别工作),Tcl非常容易学习,因为总共只有12条规则可以管理整个语言(截至tcl 8.6)。事实上,Tcl作为一种发明领域特定语言的方式,通常是如何用作最终用户脚本解决方案。
答案 6 :(得分:0)
已经提出了一些很好的建议,但我只想提一下,Perl也可以调用/可以调用C / C ++。
答案 7 :(得分:0)
您可能可以使用任何现代脚本/字节码语言。
如果您愿意忍受新产品日益增长的痛苦,可以使用Parrot VM。它支持许多(如果不是全部)此页面上列出的语言。不幸的是,它还没有完成,但这并没有阻止一些人在生产环境中使用它。
答案 8 :(得分:0)
我认为大多数人可能会提到他们最熟悉的脚本语言。从我的角度来看,Tcl专门设计用于与C接口,因此您的问题域是为该语言量身定制的。但是,我确信Python,Perl或Lua会没问题。您应该选择当前团队最熟悉的语言,因为这会缩短学习时间。