Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该学MacRuby还是RubyCocoa_Ruby_Macos_Macruby_Ruby Cocoa - Fatal编程技术网

我应该学MacRuby还是RubyCocoa

我应该学MacRuby还是RubyCocoa,ruby,macos,macruby,ruby-cocoa,Ruby,Macos,Macruby,Ruby Cocoa,我想用ruby学习mac开发,但我不确定该选哪一个。RubyCocoa存在的时间更长,但我认为MacRuby最终会战胜它 有什么建议吗???用MacRuby。这是未来:) 它更新、速度更快、集成度更好。热可可也很棒 MacRuby是在Apple技术之上实现的Ruby虚拟机,而不是RubyCocoa这样的桥接器。例如,Ruby字符串本质上是NSString,而不是由运行时桥接。这是一种更干净、更快、更可靠的方法。它也是由苹果公司开发和赞助的,这意味着它可能在某个时候成为OSX的一部分 另请参阅此帖

我想用ruby学习mac开发,但我不确定该选哪一个。RubyCocoa存在的时间更长,但我认为MacRuby最终会战胜它


有什么建议吗???

用MacRuby。这是未来:)

它更新、速度更快、集成度更好。热可可也很棒

MacRuby是在Apple技术之上实现的Ruby虚拟机,而不是RubyCocoa这样的桥接器。例如,Ruby字符串本质上是NSString,而不是由运行时桥接。这是一种更干净、更快、更可靠的方法。它也是由苹果公司开发和赞助的,这意味着它可能在某个时候成为OSX的一部分


另请参阅此帖:

RubyCocoa更成熟,测试也更好。MacRuby总体上更简单,设计也更好。MacRuby也像一把放在沙滩球上的草坪椅一样稳定。认真地从长远来看,它肯定是你想要使用的,但现在还没有。它们并没有太大的不同,以至于你不得不“学习”其中一个和另一个。它们都是Ruby,可以访问Cocoa API。了解Cocoa API比了解其他任何东西都重要

我建议您使用Objective-C学习Cocoa。一旦您很好地掌握了框架的核心概念(这些概念都基于Objective-C),如果您仍然愿意,就可以使用Ruby

2011年更新 对于MacRuby来说,上述情况不再适用。它非常坚固,速度足够快,可以在纯Ruby中执行大多数类型的Cocoa应用程序。MacRuby团队也不遗余力地与几乎所有的系统框架兼容,甚至是C框架。如果你喜欢露比,想做MAC开发,那绝对是一件值得考虑的事情。没有理由再选择RubyCocoa,除非您需要支持古老版本的OS X或PowerPC(MacRuby严格来说是Intel 10.5+)。其余的注意事项:

  • 必须在应用程序中包含MacRuby.framework,捆绑包的大小会有一个很高的下限(几十MB用于“Hello World”IIRC)

  • 虽然它在总体上是稳定的,但它仍然是非常新的测试版软件,因此在库中使用较少的角落有一些褶皱(例如指针有一些怪癖),并且一些设计决策不是最终的(例如并发支持正在快速发展)

  • 文档仍在进行中,并且落后于快速发展的语言。你会发现很多关于MacRuby的文章都认为HotCocoa是一种很酷的、原生的应用程序制作方法——这是一个很酷的实验,但现在它是一种废弃软件,存在一些严重缺陷,不适合大规模应用程序开发。标准Xcode工具链是进行MacRuby开发的受支持方式


我仍然建议使用Objective-C学习Cocoa,因为这是框架的母语,因此阻力最小。

自从Chuck回复您后,情况发生了很大变化,MacRuby现在使用LLVM,允许AOT编译,并且非常稳定,比以前快得多。ruby方面的东西仍然需要一些工作来实现100%的兼容性,但在我写这篇回复时,0.5仍处于测试阶段,您应该可以很快看到ruby库的兼容性。

顺便说一句,我相信MacRuby字符串实际上是一个
CFString
,它与
NSString
免费桥接。另外,您可以直接从XCode创建一个新的MacRuby项目。MacRuby支持是内置的!如果您最近有使用MacRuby的经验,最好更新这个关于当前稳定性状态的答案(或添加评论)。@Phrogz:谢谢您的提示。更新。非常好的信息,谢谢!(我正要沿着这条路走,一直在密切注视着霍特科科。)