本来觉得还有戏的,但看了这篇帖子貌似希望不大咯? http://www.subfurther.com/blog/2011/12/06/throwing-cold-water-on-macruby-for-ios/
没玩过 OC,不过感觉 OC 最大的好处就是快吧。明显 ruby 不够快。 速度上 js, lua 都比 ruby 快。虽然我喜欢 ruby。。。。。不得不吐槽她的速度。。。
MacRuby 的性能是很不错的,通过 LLVM,最后 JIT 成本机代码。 用 MacRuby 来开发 Mac OS 下的应用是很舒服的。 iOS 下,由于 Objective-C 的 runtime 不支持 GC,这个是 MacRuby 不能开发 iOS 应用的关键所在。 我觉得短期内,Apple 应该不会在 iOS 下支持 Objective-C 的 GC。因为已经增加了 ARC。
我写过一个 MacRuby 的程序 ( https://github.com/ashchan/gmail-notifr ),速度上基本不会跟直接用 Objective-C 有太大差别(因为 MacRuby 不是通过 Bridge 的方式来调用的)。
#5 楼 @skandhas Apple 不仅不会在 iOS 下支持 GC,而且已经宣布 10.8 以后 GC 会慢慢被遗弃。也正因为这个原因,MacRuby 现在处境比较微秒。如果 MacRuby 中不用 GC,那不如直接用 Obj-C 来写,如果要用 GC,就可能得自己在 Objective-C 上建一个 VM 了。
即使官方认可 MacRuby. 我也会选择官方完全支持的 objective-c 来开发 ios app. 除非你的主要目的是在玩技术而不是开发 app.
#10 楼 @jinleileiking 实际上 Objective-C 的 Runtime 可是很强大喔。 比如说:我可以通过它动态查询对象和类的信息,可以在运行中为某个类增加新的方法等等,另外,Objective-C 也有元类的概念(虽然比 Ruby 的简陋一些。)
你也可以把那个 Runtime 看成 VM。(虽不是很贴切)
#7 楼 @skandhas 因为 MacRuby 是由社区维护的,目前除了每日构建和完善,正在做的是更新网站,增加对 Xcode 4.3(及以后 4.4)的模板支持。
#10 楼 @jinleileiking MacRuby 是编译成本地代码运行的。Objective-C 跟 Ruby 确实有很多相似的地方。
#13 楼 @ashchan thx! @jinleileiking Objective-C 的高明之处就是结合了 静态编译的性能优势 和 动态的灵活性。这一点确实很棒。粗略的说,程序的代码是静态编译成本机代码,而对 obj-c 对象的方法调用 (也即是发消息) 则是通过 objective-c 的 Runtime 来动态查找调用。而且程序本身的二进制文件中已经也含入了该程序相关的元信息。