MacRuby / HotCocoa能否取代了解Objective-C的需求?

时间:2010-04-19 00:59:46

标签: objective-c ruby macos macruby hotcocoa

我刚刚发现MacRuby / HotCocoa,非常喜欢他们正在做的事情。

我基本上打消了自己制作Cocoa GUI应用程序的前景,因为我厌恶花费时间和时间。努力学习另一种基于C语言,Objective-C。我不是说这不好,只是不适合我。

现在或者在未来可能的情况下,人们可以单独使用MacRuby / HotCocoa制作具有实质性和一流性质的Cocoa GUI应用程序而完全忽略Objective-C吗?

(编辑:桌面Mac,而不是iPhone)

6 个答案:

答案 0 :(得分:13)

  

“MacRuby的目标是启用   创建完整的Mac OS X.   不牺牲的应用程序   表演,以享受   使用Ruby的好处。“    - MacRuby README

正如罗布所说,MacRuby不是“翻译层”。它是与Cocoa使用的相同对象系统上的Ruby。您当然可以使用它构建“一流”应用程序,并且还可以完成Objective-C不方便的事情。

小心不要将MacRuby与RubyCocoa混淆。 Apple没有为MacRuby“提取所有模板”,因为它们从未默认发货。

此外,LLVM与Apple平台的集成随着每个版本的增长而增长。 XCode的下一个版本将依赖LLVM进行高级代码完成,检查和编译。如果Apple不重视任何事情,那就是海湾合作委员会。

有人可能还会注意到,MacRuby在API覆盖范围方面有类似的限制,例如,Objective-C可以:例如,创建经过身份验证的应用程序或访问钥匙串需要两种语言的包装类。

答案 1 :(得分:5)

通过翻译层构建一流的应用程序非常困难。要获得本机所需的性能和行为是很困难的。我对MacRuby的方法印象深刻,尤其令人印象深刻的是他们能够管理Core Animation(一流的Mac应用程序的关键部分)和Core Data(这是很难的东西)之类的东西。我对他们使用更惯用的Ruby而不是RubyCocoa的丑陋感到印象深刻。但有理由认为,苹果公司已经“非常强调”(因为他们称之为)他们在Java,Ruby,Python等方面的多语言设计。用一种语言写这些东西是很困难的。当你没有通过半支持的翻译层时,很难做到正确。实际上,您仍然需要学习ObjC语法来处理文档和所有现有代码。在实践中,你仍然需要学习ObjC模式来开发合适的Mac应用程序。

MacRuby很有意思。即使作为经验丰富的ObjC程序员,我也可能会考虑使用HotCocoa来破解原型并尝试接口。但是,正如你所说的那样,这不是我用来构建的那种“具有实质性和一流性质的Cocoa GUI应用程序。”

作为开发人员,我们的部分工作就是拥有一袋工具。就像一个好木匠有几个不同的锤子,加上撬棒,指甲套,几种方形和十几种其他工具,程序员应该熟悉各种语言,编程范例,平台和环境。然后,她应该能够为工作选择正确的工具并有效地使用它们。在Mac编程的情况下,正确的工作工具包括Xcode,IB,ObjC和Cocoa。避免它们就像一个木匠避免使用框架锤和速度方块。他们只是工作的一部分。

答案 2 :(得分:1)

我确实花了一些时间在RubyCocoa上,但是让我看看Obj-C的是最终Cocoa和其他框架的所有文档都是用Obj-C语法编写的。在其中自我Obj-C不是一个非常大的语言IMO,如果你有一些其他基于C语言和OOP的经验,不应该花很长时间去接受。什么是相当大的框架工作,Cocoa等,至少与rubyCocoa你仍然需要学习框架。除此之外,我很难相信像Ruby这样的脚本语言可以提供与编译C语言相同的性能。

答案 3 :(得分:1)

使用Apple的Frameworks编写一个Ruby应用程序是可能的,它看起来就像一个原生的ObjC应用程序。

但是请不要相信我,look here这类应用的例子。它们外观和执行本身足以让临时用户区分本机Ruby和本机ObjC。

答案 4 :(得分:0)

嘿,我试过了,然后放弃了,因为在看到它只是取代ObjC之后,ObjC在我看来突然变成了一种奇妙的语言。我学习ObjC,我喜欢它。

答案 5 :(得分:-1)

MacRuby是某人的宠物项目。如果有人把一个从Ruby代码中喷出原生二进制文件的编译器放在一起,那么它有可能在某一天获得一些支持。如果他们只是继续做他们现在正在做的事情,那么不,它将继续成为一个利基产品,直到有人退出或被解雇并将他们的工作与Java Cocoa绑定和WebObjects一起埋没。