多年前,我想编写Mac软件并拥有Java WebObjects的丰富经验,我尝试了java桥接,但决定咬紧牙关学习Objective-C(幸运的是,因为我讨厌让我的软件不被桥接器弃用)。后来我骗了RubyCocoa。我学习了Ruby(确实发现它很有趣),但发现桥很难成熟或稳定,最后我结束了将代码移植回Objective-C。
多年过去了,我想知道是否值得花些时间与MacRuby合作,甚至学习Python来使用PyObjC。尽管我喜欢Objective-C,但我还记得当它没有崩溃时,使用Ruby桥会提高效率。我只是讨厌投入时间再次使用崩溃的软件。
答案 0 :(得分:3)
如果你想尝试其中一座桥梁,我会说MacRuby是要走的路。它由Laurent Sansonetti开发,他是Apple的高级软件工程师,负责Ruby。
它现在非常实用,并且与本机框架很好地集成。值得一看,特别是如果你已经拥有Ruby经验。
答案 1 :(得分:1)
如果你想学习Cocoa编程,请忽略桥接。他们只会让编写Cocoa应用程序变得更加困难,而且你会浪费大量时间来加快速度。
具体来说,您需要学习Objective-C才能理解系统框架的API和设计模式。此外,所有文档和工具都是专门为支持Objective-C而编写的。
学习Cocoa编程的大部分时间将用于所述API和设计模式;相比之下,实际语言部分相对较小。
另请注意,桥接器必然会产生阻抗不匹配,试图将不完全相同的功能从一种语言映射到另一种语言。
坦率地说,如果你了解Ruby,那么Objective-C应该很简单;对象模型非常相似。
答案 2 :(得分:0)
我的个人意见是使用ObjC for Mac原生应用程序。
使用Ruby / Python,他们应该在本地工作良好,没有不可靠的接口和可疑的支持。
答案 3 :(得分:0)
这就是为什么它不浪费时间。在某些情况下,Ruby和Python拥有令人敬畏且发展良好的库,这些库在Objective-C中不可用,并且不太可能。 这是最好的用例之一。
示例:您不希望在Objective-C中重新实现Rails(有些人可能会),但您可以轻松地使用它,部分内容可以通过MacRuby为Cocoa应用程序提供支持。
MacRuby已经死了。有商业RubyMotion。
还有PyObjc,RubyCocoa和mruby。
其他有趣的用例之一是提供不像AppleScript和OSA那样恶劣的脚本功能。
有正当理由。