3

据我了解,Lua 是一种可嵌入的脚本语言,可以对对象执行方法。有哪些需要避免的陷阱?使用 Lua 作为解释器并在 Web 环境中执行方法或作为规则引擎是否可行?

4

4 回答 4

6

Lua 脚本正在成为Apache Web 服务器的核心模块。

这里有一些用于绑定 Lua 和 C#/.NET 代码的工具LuaInterface是最新的。

于 2008-12-25T17:43:35.617 回答
5

Lua 非常快 - 脚本可以预编译为字节码,函数执行接近 C++ 虚拟方法调用。这就是为什么它在游戏行业中用于编写 AI、插件和其他游戏中的高级内容的原因。

但是您将 C# 和 Web 服务器放在问题标签中。

如果您不考虑嵌入式 Web 服务器,那么 Lua 就不是很强大。Lua 是 ANSI C - 它编译为本机代码,因此它不是很欢迎您的 asp.net 服务器,也不是您的 C# 代码。想想“中等信任”或“绑定”或“64 位”。

陷阱够多了。如果您已经在使用 C#,则没有理由在 Web 服务器上避免使用它。它被编译和缓存。它为像这样的大型网站提供服务。

于 2008-12-25T18:42:12.753 回答
2

我们曾经在一个中型 C# 生物医学仪器控制应用程序中使用 Lua 作为我们的脚本语言。这是教硬件人员如何编写自己的一小段测试代码的好方法。

一旦 IronPython 成熟,我们决定,由于 Python 功能更全,并且与 VS 的集成度更高(以及使用它的人更多),我们将用 Python 替换所有 Lua。到目前为止,效果很好。Lua 是一门很好的小语言,我不确定在这一点上我能想到 Lua 相对于 Python 的任何优势。

Lua 可能会快一点,但如果您已经将域拆分为 script-y 和 non-script-y,那么这可能不是一个大因素。

于 2008-12-29T05:46:15.343 回答
1

我喜欢 Lua 的原因是它作为一种语言非常出色,尤其是在与 C/C++ 一起使用时。对我来说,正是这两者的结合“造就”了这种语言。

陷阱.. 缺少扩展模块可以看作是一个。就像没有 CPAN,但有 LuaRocks。取决于您是否有足够的绑定来解决您的问题。如果没有,你可能需要制作它们。

语言陷阱.. Lua wiki中有一些愿望,可以看作是“陷阱”。没有“切换”声明。没有正确的“cond ? a : b”格式。如果您不想将注意力转移到这些相当肤浅的语法上,那么 JavaScript 是否适合您?

总的来说,它是一种语言,它使我的工作效率比没有它的编程高 10 到 100 倍。

于 2008-12-25T19:07:50.703 回答