使用Lua作为SDK的跨平台语言的利弊分析

我正在规划一个游戏领域的移动 SDK 开发,应该是跨平台(首先支持 iOS 和 Android)。

我知道许多游戏引擎使用 Lua 作为脚本语言,以便将某些功能轻松地暴露给开发者,但是我从未见过它被用作编写 SDK 的核心语言。

对于为实现跨平台移动 SDK,使用 Lua 有哪些优缺点?

点赞
用户348796
用户348796

优点:

  • 可移植:在任何有 ANSI C 编译器的平台上进行构建。
  • LuaPython 相比,学习编写代码的难度相当简单。
  • 作为一个嵌入式的、可扩展的语言,提供了与 C/C++/Objective-C 直接交互的简单接口。它具有非常干净的 C API
  • 速度足够快:与其他语言相比表现良好,并且具有 JIT 编译器,可显着提高许多任务的性能。
  • 文档齐全:有参考手册书籍维基6 页简要参考等等。
  • 友好并热情的社区
  • 清晰简单的语法适合初学者并易于非专业人士操作。
  • 集成解释器:只需从命令行运行 lua
  • 原生支持协程实现迭代器和非可抢占多线程。
  • 增量垃圾收集器低延迟、没有额外的内存成本、少量实现复杂度和对弱表的支持。
  • 简单而强大的调试库
  • 免费

缺点:

  • Lua 不注重 100% 向后兼容性。许多新版本的 Lua 会破坏以前版本编写的程序。
  • 有限的错误处理支持。
  • 默认全局作用域。
  • 不支持 Unicode
  • Lua 仅支持几种数据结构,包括数组、列表和哈希表。
  • 有限的模式匹配支持。
  • 没有内置的 POSIX 函数。
  • 没有类/对象的终结器。
  • 在 Windows 平台上打包。需要一定的 Windows 应用程序打包经验才能生成一个安装程序,在其中以让你对 Lua 的使用作为核心语言对终端用户不重要的方式提供所有必要的东西。

建立在以下基础之上:

Lua - Good, Different, Bad and Ugly parts.

Look at Lua

2014-02-22 22:29:26