我应该学习MacRuby还是RubyCocoa

时间:2009-03-29 20:21:56

标签: ruby macos macruby ruby-cocoa

我想用红宝石学习mac开发,但我不确定应该选择哪一个。 RubyCocoa已经存在了很长时间,但我认为MacRuby将在长期内击败它。

有什么建议吗?

3 个答案:

答案 0 :(得分:37)

使用MacRuby。这是未来:)

它更新,更快,更好地集成。 HotCocoa也很棒。

MacRuby是一个在Apple Technologies之上实现的Ruby VM,而不是像RubyCocoa这样的桥梁。例如,Ruby String本质上是一个NSString,而不是由运行时桥接。这是一种更清洁,更快速,更坚固的方法。它也是由Apple开发和赞助的,这意味着它可能在某些时候成为OS X的一部分。

另见帖子:Why MacRuby Matters

答案 1 :(得分:8)

由于Chuck回复你,事情发生了很大变化,MacRuby现在使用LLVM,允许AOT编译,并且比以前更加稳定和快速。事情的红宝石方面仍然需要一些工作才能100%兼容但是当我写这个响应时,0.5仍然处于测试阶段,你应该看到ruby库很快兼容。

答案 2 :(得分:7)

RubyCocoa更成熟,测试更好。 MacRuby整体设计更简单,设计更好。 MacRuby也和坐在沙滩球上的草坪椅一样稳定。认真。从长远来看,这绝对是你想要使用的,但它还没有。他们没有那么不同,你必须“学习”一个与另一个。他们都只是Ruby,可以访问Cocoa API。它更多的是了解Cocoa API而不是其他任何东西。

我建议用Objective-C学习Cocoa。一旦你掌握了框架的核心概念(都是基于Objective-C),那么你可以使用Ruby,如果你还想要的话。

2011年更新

上述情况不再适用于MacRuby。它非常坚固和快速,足以在纯Ruby中完成大多数类型的Cocoa应用程序。 MacRuby团队也不遗余力地与几乎所有的系统框架兼容,甚至是C系统框架。如果你喜欢Ruby并且想要进行Mac开发,那肯定是需要考虑的事情。除非您需要支持OS X或PowerPC的古老版本(MacRuby严格来说是英特尔10.5+),否则没有理由选择RubyCocoa。其余的警告:

  • 必须在您的应用中加入MacRuby.framework,在捆绑尺寸上设置较低的边界(“Hello World”IIRC的几十MB)

  • 虽然它一般都很稳定,但它仍然是非常新的测试版软件,因此在库中较少使用的角落中存在一些皱纹(例如,指针有一些怪癖),而一些设计决策并非如此final(例如并发支持正在快速发展)

  • 文档仍在进行中,并且落后于快速移动的语言。你会发现很多关于MacRuby的文章表明,HotCocoa是制作应用程序的一种很酷的本地方式 - 这是一个很酷的实验,但它现在已经放弃了一些关键缺陷,使其不适合大规模的应用程序开发。标准的Xcode工具链是支持MacRuby开发的方式。

我还建议使用Objective-C学习Cocoa,因为这是框架的本地语言,因此是阻力最小的路径。