我一直想玩Ruby或Python,同时我也想做一点Cocoa编程。在
因此,我认为实现这两个目标的最佳方法是使用Ruby或Python-to-Objective-C桥(PyObjc或rubycooa)开发一些东西。在
我知道为了获得最好的学习体验,我会独立学习每一门技术,但我没有时间。:)
所以我的问题是哪个平台更成熟,PyObc还是RubyCocoa,我主要在寻找:
关于第5点,我不希望整个cocoaapi可以通过任何一个桥使用,但是我需要有足够的cocoaapi来开发一个正常运行的应用程序。在
我认为两者大致相等。有的地方好,有的地方差。但我不建议用这两种方法来学习可可。就像克里斯说的,Cocoa需要对Objective-C有一定的了解,我更喜欢Ruby而不是Objective-C,但我还是不建议用它来学习Cocoa。一旦你有一个坚实的基础(没有双关打算)可可/ Objul-C,那么桥梁可能对你有用。在
当你说你“没有时间”独立学习技术时,学习Cocoa最快的途径仍然是用它的母语Objective-C学习它。一旦你理解了Objective-C,并且已经掌握了Cocoa框架的最初学习曲线,那么学习PyObjC或rubycoca的时间就会轻松得多。在
我将附和克里斯的评价,并将进一步说明为什么你应该学习Objective-C来学习可可。正如克里斯所说,Objto-C是可可的基础和本族语,它的许多范例与这一谱系密不可分。具体来说,实现Cocoa技术(如分布式对象和绑定)需要选择器和动态消息解析以及在运行时修改类的能力。尽管这些特性在其他动态语言(如Ruby和Python)中也可用,但是语言模型中存在的不匹配之处已经足够多了,您至少需要了解Objective-C才能理解Cocoa。我建议您看一下前面的问题进行进一步讨论:Do I have to learn Objective-C for professional Mac Development?
幸运的是,Objective-C很容易学习。我经常告诉人们,他们将花一天时间学习C/C++或java或LISP、方案或任何新的动态语言如Ruby和Python来实现ObjuleC。除了稍微扩展一下你的思维之外,你将至少学会阅读几乎所有Cocoa文档和示例中使用的代码。在
至于Ruby和Python,桥接功能非常相似。事实上,它们都使用苹果的BridgeSupport(Leopard附带)来提供桥的描述。两者都得到了苹果和豹子的支持。你喜欢哪种语言取决于个人品味。如果你选择Ruby,我建议你看看MacRuby。它无疑是Ruby on OS X的未来,因为它在Objective-C运行时之上重新实现了Ruby运行时。这提供了一些很好的性能和概念上的优势(包括与Objective-C垃圾收集系统的集成,这是使用本机pythongc的PyObjC目前缺少的特性)。MacRuby还包括一个自定义解析器,它使桥接的objective-c方法的语法更好一些。MacRuby的缺点是,在撰写本文时(2009年6月),它还没有完全准备好用于生产级的使用。因为听起来这是一个学习项目,这可能不是一个问题。在
相关问题 更多 >
编程相关推荐