Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MacRuby/HotCocoa能否取代了解Objective-C的需求?_Objective C_Ruby_Macos_Macruby_Hotcocoa - Fatal编程技术网

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

MacRuby/HotCocoa能否取代了解Objective-C的需求?,objective-c,ruby,macos,macruby,hotcocoa,Objective C,Ruby,Macos,Macruby,Hotcocoa,我刚刚发现了/热可可,真的很喜欢他们正在做的事情的声音 我基本上没有考虑自己开发Cocoa GUI应用程序的前景,因为我不愿意花时间和精力学习另一种基于C的语言Objective-C。我不是说它不好,只是对我来说不好 是现在,还是将来,一个人能够在完全忽略Objective-C的情况下,单独使用MacRuby/HotCocoa来开发实质性的、一流的Cocoa GUI应用程序 (编辑:台式机Mac,而不是iPhone)MacRuby是某人最喜欢的项目。如果有人组装了一个从Ruby代码中输出本机二进

我刚刚发现了/热可可,真的很喜欢他们正在做的事情的声音

我基本上没有考虑自己开发Cocoa GUI应用程序的前景,因为我不愿意花时间和精力学习另一种基于C的语言Objective-C。我不是说它不好,只是对我来说不好

是现在,还是将来,一个人能够在完全忽略Objective-C的情况下,单独使用MacRuby/HotCocoa来开发实质性的、一流的Cocoa GUI应用程序


(编辑:台式机Mac,而不是iPhone)

MacRuby是某人最喜欢的项目。如果有人组装了一个从Ruby代码中输出本机二进制文件的编译器,那么很有可能有一天它会获得一些进展。如果他们继续做他们现在正在做的事情,那么不,它将一直是一个利基产品,直到有人辞职或被解雇,并将他们的工作与Java Cocoa绑定和WebObjects一起埋葬

我确实花了一些时间在RubyCocoa上,但让我研究Obj-C的是,Cocoa和其他框架的所有文档最终都是用Obj-C语法编写的。在it中,self-Obj-C在我看来并不是一门很大的语言,如果您对其他基于C的语言和面向对象编程有一定的经验,那么学习它应该不会花太长时间。不过,框架的作用非常大,Cocoa等。至少在使用rubyCocoa时,您还需要学习框架。除此之外,我很难相信像Ruby这样的脚本语言能够提供与编译C语言相同的性能

通过翻译层构建一流的应用程序将非常困难。要获得您天生所需的性能和行为已经足够困难了。MacRuby的方法给我留下了深刻的印象,尤其是他们能够管理核心动画(一流Mac应用程序的关键部分)和核心数据(这是非常困难的事情)等。他们使用更地道的Ruby而不是RubyCocoa的丑陋给我留下了深刻的印象。但有一些原因是苹果“不强调”(他们称之为)他们在Java、Ruby、Python等方面的多语言玩乐。用一种语言编写这些东西已经够难了。当您不经过半支持的转换层时,很难正确地进行转换。实际上,您仍然需要学习ObjC语法来处理文档和所有现有代码。在实践中,你仍然需要学习ObjC模式来开发像样的Mac应用程序

麦克鲁比很有趣。即使是一个经验丰富的Objc程序员,我也可以考虑HoCOCOA来破解原型和尝试接口。但是,正如您所说,我不会用它来构建“实质性的、一流的Cocoa GUI应用程序”


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

可以使用苹果的框架编写一个Ruby应用程序,它看起来就像一个原生的ObjC应用程序


但不要相信我的话,比如说这类应用。它们看起来和执行起来都非常原生,以至于普通用户无法区分原生Ruby和原生ObjC

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

“MacRuby的目标是实现 创建成熟的MacOSX 不牺牲性能的应用程序 为了享受演出的乐趣 使用Ruby的好处。” -MacRuby自述

MacRuby不是Rob所说的“翻译层”。它是在Cocoa使用的同一个对象系统上的Ruby。您当然可以使用它构建“一流”的应用程序,也可以完成Objective-C带来的不便

小心不要把MacRuby和RubyCocoa混淆。苹果没有为MacRuby“提取所有模板”,因为默认情况下它们从未发布过

此外,LLVM与苹果平台的集成随着每次发布而增长。XCode的下一个版本将依赖LLVM完成高级代码的完成、检查和编译。如果说苹果没有强调什么,那就是GCC


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

当您区分“普通用户”会注意到什么与frou提出的“一流”Mac应用程序的问题时,您一针见血。十个次要的应用程序(大多数是停滞的或死气沉沉的)不能证明框架交付主要应用程序的能力。ObjC确实是制造优秀Mac应用程序的最低障碍。真正的障碍是深入“获取”Mac体验以及应用程序应该如何工作和集成。这是一个“看起来”像Mac应用程序的应用程序和一个像Mac应用程序的应用程序之间的区别。@mckeed“由苹果支持”可能是一个强有力的说法。在《豹》中,苹果公司无疑陷入了困境,但从那以后,他们一直在后退。10.6删除了所有的Ruby模板,MacRuby更像是一个可以容忍的辅助项目,而不是一个有苹果全力支持的项目。它甚至是根据GPL而不是APSL授权的。你为什么说有编译器?MacRuby将所有的.rb文件转储到资源中,并在运行时解释它们。有吗