代码之家  ›  专栏  ›  技术社区  ›  Reto Meier

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

  •  8
  • Reto Meier  · 技术社区  · 15 年前

    我刚发现 MacRuby /我很喜欢他们的表演。

    是现在,还是在未来,我们可以在完全忽略Objective-C的情况下,单独使用MacRuby/HotCocoa来创建实质性的、一流的Cocoa GUI应用程序?

    6 回复  |  直到 15 年前
        1
  •  5
  •   Rob Napier    15 年前

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

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

        2
  •  13
  •   arbales    11 年前

    成熟的macosx的诞生 为了享受表演 使用Ruby的好处。” -MacRuby自述

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

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

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

        3
  •  1
  •   Fred    15 年前

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

        4
  •  1
  •   sal    15 年前

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

    但别相信我的话, look here 这类应用的例子。它们的外观和执行都足够原生,以至于普通用户无法区分原生Ruby和原生ObjC。

        5
  •  0
  •   Vojto    15 年前

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

        6
  •  -1
  •   Azeem.Butt    15 年前

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