4

多年前,我想编写 Mac 软件并拥有大量使用 Java WebObjects 的经验,我尝试了 java 桥接器,但决定硬着头皮学习 Objective-C(幸运的是,因为我不想让我的软件与桥接器一起被弃用)。后来我和 RubyCocoa 混在一起。我学习了 Ruby(发现它确实很有趣),但发现桥离成熟或稳定还很远,最后我结束了将代码移植回 Objective-C。

多年过去了,我想知道是否值得花一些时间使用 MacRuby,甚至学习 Python 以使用 PyObjC。尽管我很喜欢 Objective-C,但我记得当 Ruby 桥没有崩溃时,它的工作效率更高。我只是讨厌花时间再次使用崩溃的软件。

4

4 回答 4

3

如果您想尝试其中一种桥梁,我会说 MacRuby 是您的最佳选择。它由 Laurent Sansonetti 开发,他是 Apple 的一名高级软件工程师,致力于 Ruby。

它现在非常实用,并且与本机框架很好地集成。值得一看,特别是如果您已经有 Ruby 经验。

于 2010-11-24T13:47:30.010 回答
1

如果您想学习 Cocoa 编程,请忽略这些桥梁。它们只会使编写 Cocoa 应用程序变得更加困难,而且你会浪费大量时间来加快速度。

具体来说,您需要学习 Objective-C 才能理解系统框架的 API 和设计模式。此外,所有文档和工具都是专门为支持 Objective-C 而编写的。

您学习 Cocoa 编程的大部分时间将花在上述 API 和设计模式上;相比之下,实际的语言部分相对较小。

还要注意,为了将不太相同的功能从一种语言映射到另一种语言,桥必然会导致阻抗不匹配。

坦率地说,如果您了解 Ruby,那么 Objective-C 应该非常简单;对象模型非常相似。

于 2010-11-24T19:01:11.780 回答
0

我个人的意见是为 Mac 原生应用程序使用 ObjC。

使用 Ruby/Python,它们本来应该可以很好地工作,没有不可靠的接口和有问题的支持。

于 2010-11-24T13:24:19.533 回答
0

这就是为什么这不是浪费时间。在某些情况下,Ruby 和 Python 具有出色且开发良好的库,这些库在 Objective-C 中不可用,而且不太可能。这是最好的用例之一。

示例:您不想在 Objective-C 中重新实现 Rails,(有些人可能会)但您可以轻松地使用它,其中的一部分可以通过 MacRuby 为 Cocoa 应用程序提供动力。

好吧,MacRuby 已经死了。有商业的 RubyMotion。

还有 PyObjc、RubyCocoa 和 mruby。

其他有趣的用例之一是提供不像 AppleScript 和 OSA 那样臭的脚本功能。

有正当理由。

于 2013-04-05T12:32:34.630 回答