瞎扯淡 各位觉得 MacRuby 成为官方认可的 iOS 开发语言有戏吗?

durden · 2012年02月22日 · 最后由 hhuai 回复于 2012年02月22日 · 7887 次阅读

本来觉得还有戏的,但看了这篇帖子貌似希望不大咯? http://www.subfurther.com/blog/2011/12/06/throwing-cold-water-on-macruby-for-ios/

没玩过 OC,不过感觉 OC 最大的好处就是快吧。明显 ruby 不够快。 速度上 js, lua 都比 ruby 快。虽然我喜欢 ruby。。。。。不得不吐槽她的速度。。。

iOS 的开发语言肯定是 C\ C++ 级别的,编译语言。

以前关注过,应该没啥希望。

我觉得 MacRuby 在 OS X 上存在的目标是先干掉 Apple Script。

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 了。

#6 楼 @ashchan 看来 Apple 是推荐使用 Objective-C 的 ARC 了。现在 MacRuby 的官方也没放出啥消息。 题外话:Objective-C 倒也是一门十分优秀的语言。它的动态性十足。列入动态语言也不为过 :> 毕竟和 Ruby 同宗(Smalltalk)

lua 顶替了~~

#8 楼 @Lucifer 单纯把 ruby 引擎嵌入到 iOS App 中也不困难。只是没有像 MacRuby 这样无缝的调用 Cocoa 框架的能力了。lua 也类似。

#6 楼 @ashchan #5 楼 @skandhas 如果如所说是 llvm 编译成的机器码,那速度要好些。 如果要动态编译,那就要慢些。

Objective-C 倒也是一门十分优秀的语言。它的动态性十足。列入动态语言也不为过 我所理解的动态,就是要不要动态编译,或者说,你的程序是机器码,还是 VM 上的代码。有 VM 才能搞元编程。。。IHO

即使官方认可 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 确实有很多相似的地方。

#11 楼 @ichord 同意。用官方的 SDK 永远是最佳选择。

以苹果的理念,基本上在 IOS 上是绝对不会支持的。

#13 楼 @ashchan thx! @jinleileiking Objective-C 的高明之处就是结合了 静态编译的性能优势 和 动态的灵活性。这一点确实很棒。粗略的说,程序的代码是静态编译成本机代码,而对 obj-c 对象的方法调用 (也即是发消息) 则是通过 objective-c 的 Runtime 来动态查找调用。而且程序本身的二进制文件中已经也含入了该程序相关的元信息。

不求官方支持 iOS 开发,只要一直可以用来开发桌面程序,并能通过 app store 的审核就行了。

#15 楼 @skandhas 这么一说,OBJ-C 好像是很有意思!!!,静态和动态结合,太有创意了。可惜不开源啊

#17 楼 @jinleileiking runtime 是开源的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号