我刚刚发现MacRuby / HotCocoa,非常喜欢他们正在做的事情。
我基本上打消了自己制作Cocoa GUI应用程序的前景,因为我厌恶花费时间和时间。努力学习另一种基于C语言,Objective-C。我不是说这不好,只是不适合我。
现在或者在未来可能的情况下,人们可以单独使用MacRuby / HotCocoa制作具有实质性和一流性质的Cocoa GUI应用程序而完全忽略Objective-C吗?
(编辑:桌面Mac,而不是iPhone)
答案 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)
答案 5 :(得分:-1)
MacRuby是某人的宠物项目。如果有人把一个从Ruby代码中喷出原生二进制文件的编译器放在一起,那么它有可能在某一天获得一些支持。如果他们只是继续做他们现在正在做的事情,那么不,它将继续成为一个利基产品,直到有人退出或被解雇并将他们的工作与Java Cocoa绑定和WebObjects一起埋没。