使用Lua和C#最有效的方法是什么?

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

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

但是你把C#和web服务器放在你的问题标签中。

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

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

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

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

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

一旦IronPython成熟,我们就决定,由于Pythonfunction更强大,并且与VS很好地集成(以及有更多人使用它),我们将用Python替换所有Lua。 到目前为止,这一切都很顺利。 Lua是一个很好的小语言,我不确定在这一点上我能想到Lua优于Python的任何优点。

Lua可以快一点,但是如果你已经将你的域分成了脚本-y和非脚本-y,那么这可能不是一个重要因素。

为什么我喜欢Lua是因为它擅长作为一种语言,特别是当它与C / C ++一起使用时应该如此。 对我来说,正是这两者的合并“使”成为了语言。

陷阱……缺乏扩展模块可以被视为一个。 像没有CPAN,但有LuaRocks。 如果你有足够的绑定来解决你的问题,取决于。 如果没有,您可能需要制作它们。

语言陷阱…… Lua维基有一些愿望,可以被视为“陷阱”。 没有“切换”声明。 没有合适的“cond?a:b”格式。 如果你不想让你的思维超越这些相当肤浅的语法,那么JavaScript可能适合你吗?

总的来说,它是一种语言,使我比没有它的编程提高10-100倍。