哪种编程语言支持热代码交换和/或沙盒?

时间:2010-01-21 01:48:53

标签: erlang lua sandbox stackless python-stackless

我想写一个基于网络的MMO游戏,允许用户编写AI并将其作为游戏的一部分运行。我计划将Html5用于图形,并希望它是基于网络的,因此可以从智能手机访问它。我需要找到一种支持沙盒,并发,热代码交换和大型库的编程语言,以使事情变得更容易。

此时我的研究出现了Erlang,Stackless Python和Lua。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:16)

Erlang 不支持支持沙盒,因此您可能不想使用它,至少对于您的脚本语言而言。 Erlang无论如何都不适合编写脚本,所以这可能没问题。

Erlang 为这样的项目制作一个好的后端语言,但是我会从个人经验中强烈推荐它。

我不认为Stackless也有沙盒支持,所以这可能也不在列表中。

另一方面,Lua明确支持沙盒,并且也有协同程序:http://lua-users.org/wiki/SandBoxeshttp://lua-users.org/wiki/CoroutinesTutorial,所以我建议您使用脚本语言。

Lua也很容易嵌入,就像在这个小小的教程中看到的那样:http://heavycoder.com/tutorials/lua_embed.php(你甚至可以在没有所有库加载的情况下离开,因为你无论如何都想要沙盒化。)

答案 1 :(得分:7)

我也会选择Lua,因为它具有荒谬的可定制性和通用性(如果你不喜欢它的语法,你可以change it使用功能性或类似python的语法。正如前面的回答所说,你有沙盒和强大的并发性。我个人甚至都不会想到嵌入Lua以外的任何东西;>。

然而,Lua缺少扩展的标准库,这就是Python赢得大奖的时间:/。