即将到来的 MacRuby 支持将 Ruby 运行时嵌入到基于 Objective-C 的应用当中并为其编写脚本。 Matt Mower 解释了为什么选择 MacRuby 而不是其他 Objective-C 脚本的原因,还介绍了在当前 MacRuby 主干中可用的 API。Matt 用到 MacRuby 的应用是 Elysium,一个用于生成音乐的应用。
> 几乎是从一开始,我就时常在想,Elysium 应该是可脚本化的。一旦应用拥有了脚本能力以后,你就能对音乐策略有更强的控制能力。比如,可以用脚本控制鼓点的节奏,以达到控制音乐“力度”的目的。
Matt 继续讲到如何在一个 Objective-C 的应用中使用 MacRuby,并展示了一些调用方法。例如,在一个 Cocoa 应用中执行 Ruby 源代码的方法是:
[[MacRuby sharedRuntime] evaluateString:rubySource]
Matt 的示例也展示了一种简便的方法,在 Objective-C 应用中使用一小段 Ruby 代码来作为回调。
关于对 MacRuby 0.4 的具体修改,可以参见 MacRuby 的 GitHub 镜像(代码库的提交页)。
MacRuby 和 Objective-C 深度集成,例如,很多基础 Ruby 类型都直接映射到了 Objective-C 类型之上。因此,MacRuby 有着和 JRuby 以及 IronRuby 相近的优势,例如,简便快捷的访问大量的现存程序库(比如 OS X 所带的程序库)。Apple 已经使用 Ruby(尽管不是 MacRuby)来实现iPhone 商业实用工具集。
你开发Objective-C 应用吗?如果是的话,你会选择MacRuby,还是选择Matt Mower 列出的其他的脚本呢(Nu、JSCore、…)?
评论