现在已经出现了一个静态编译的 Ruby 变体,用于构建面向 iOS 设备的应用。该语言叫做 RubyMotion ,来自于 HipByte 的这门语言与工具链完全遵循 Apple 的 App Store 指导方针。为了做到这一点,他们不得不去掉了 JIT 编译器与解释器,这会导致一些 Ruby 开发者觉得非常受限制。
其工具支持非常弱。RubyMotion 并没有任何 IDE 支持。HipByte 希望开发者使用自己的文本编辑器与命令行终端来完成大多数开发任务。
运行时则要好很多。RubyMotion 完全支持多线程编程而不会遇到全局解释器锁的不便。它甚至为 Grand Central Dispatch (Apple 的用于并发与并行编程的基于任务的程序库)提供了一个接口。类似于 Ruby 本身,内存是由运行时管理的,但开发者依然可以访问原生以及第三方的 Objective-C 程序库。据推测,这种访问“是非常自然的且不会有任何性能上的代价”。将 RubyMotion 与 Mono for Android 相比,后者通常需要在 Mono 与 Dalvik 运行时之间编排对象。
RubyMotion 的大部分内容都是基于 MacRuby 的。 MacRuby 是个已经持续了四年之久的项目,基于 OS X 与 Objective-C 提供了 Ruby 1.9。MacRuby 的上一版发布于 2011 年 3 月,版本号为 0.10,这表明其发展速度并不如预期那么快。“MacRuby 是由 MacRuby 团队版权所有的免费软件,基于 Ruby 的许可”。
RubyMotion 本身并非开源项目。其零售价为每个开发者 200 美金,此外再没有其他的许可费与版权税。其零售价格包括一年的升级,这样其实际上是个订阅,每年需要升级一次。
评论