这对初学者来说更容易:RubyCocoa或ObjC / Cocoa

时间:2009-02-04 01:45:19

标签: objective-c ruby cocoa ruby-cocoa

过去我曾经听过一些关于哪个更成熟的辩论:RubyCocoa或Obj-C / Cocoa ......但是我觉得这些答案正好赶上了“新手”,这真的很有回答。

所以问题是:对于一个初学者来说,几乎没有编程经验,是否更容易学习Ruby并通过桥接探索Cocoa(然后可能解决Obj-C)或直接跳到Objective -C和可可。

两个社区都很强大,拥有大量资源,但是很多人都指出Obj-C的语法只是令人生畏。也许对于一个真正的初学者来说,学习Ruby然后解决Objective-C会更容易吗?

更新:我道歉,但是当我说“学习Ruby并探索Cocoa”时,我并不是要通过RubyCocoa学习编程,而是学习Ruby(一旦有足够的信心)开始探索可可,并有可能利用他们不断增长的技能来解决Obj-C。

9 个答案:

答案 0 :(得分:11)

我不建议学习使用RubyCocoa进行编程。

我喜欢Ruby并且认为它是学习编程的一种很好的语言,但RubyCocoa桥的编写得不够好,我推荐它作为学习环境。您将同时学习通用编程概念,Cocoa框架和RubyCocoa的怪癖。这是很多东西要推到你的头上。

如果你受到约束并决定从Cocoa开始,那么首先要学习Objective-C。否则,你可以开始学习Ruby,然后一旦你觉得作为程序员感觉更舒服就转换到Objective-C。一旦你完成了所有这些,你就可以使用RubyCocoa,但是你会知道它不会让你变得疯狂。

答案 1 :(得分:5)

我将从Apple宣讲的内容开始:Objective-C / Cocoa

答案 2 :(得分:3)

Writing Code is the Easy Part

真的没有意义:

  1. 试着看看哪个很容易,如果你选择了简单的方法,你总是会弄错...不要害怕什么是难的,不要害怕不要。

  2. 尝试比较那种方式的语言/方法,根据我添加的帖子,在这种情况下思考什么是简单/好/硬是语法问题,最终归结为解释,美在眼中旁观者。

  3. 根据他们最终会尝试使用这项技术,您会发现某些方法或其他方法比其他方法“更容易”......很难定义

  4. 只有一个问题很重要:在接触这两种方法之前,人们知道什么? - 你说:

    总初学者,几乎没有编程经验

  5. 我的回答:

    经常在我居住的地方附近游客问:

    “我怎么从这里到达地名X?”

    这里的人通常回答:

    “如果我是你,我试图到达地名X,我不会从这里开始......”

    所以..你的问题的答案是:

    <强>既不

    总的初学者应该总是按照@Tafkas所说的那样学习编程的基础知识...(不一定需要学习OOP语言......但是编程......)然后才能做出任何关于学习和/或实现的内容的决定。 (此+要求收集)

    ..否则,学习这些语言/技术技能的人将成为另一组脚本小子,成为复制粘贴代码猴子的方式

答案 3 :(得分:2)

从RubyCocoa开始的问题是你最终同时学习ruby和cocoa以及两者之间的交互。我会说学习ruby,或者学习Objective-C / Cocoa。跳进RubyCocoa会让你失望。

答案 4 :(得分:2)

听起来你的目标是学习用Cocoa编程,使用Ruby或Objective-C作为语言。

虽然我从未使用过Ruby(或RubyCocoa),但我的理解是Cocoa是用Objective-C作为主要语言编写的,而桥接(Python和Ruby)则排在第二位。虽然它们通常运行良好,但是当使用Objective-C中的Cocoa时,存在一些不存在的粗糙边缘。

我会说你应该去Objective-C / Cocoa路线。首先从另一种语言开始可能并不坏 - 如果你想要学习它(这将是有用的,因为Objective-C是C的超集),或者如果你想要去OO路线那么类似于Java。 / p>

这并不是说RubyCocoa不起作用或没用。它的功能非常棒,但我不认为它是从Cocoa编程开始的地方。

答案 5 :(得分:2)

我建议如果您认真考虑为OSX和/或iPhone编写应用程序,我强烈建议您放弃使用Objective-C和Cocoa。

原因很简单:

  • 来自Apple的Objective-C文档非常出色。
  • 您将从Stack Overflow社区获得更多帮助,因为ObjectiveC / Cocoa开发人员比RubyCocoa更多。 (据我目前所见)。
  • Objective-C开发人员非常擅长互相帮助,我找不到更好的开发人员,他们会向新人学习这门语言。
  • 如果您需要,可以使用Great Developer书籍以及外部培训。
  • 我看到的最重要的一点就是你无法使用RubyCocoa为iPhone开发。但是如果你学习Objective-C / Cocoa,你几乎可以直接进入Cocoa Touch。

无法保证Apple会像使用Cocoa一样更新RubyCocoa。

不要误解我的意思,学习Ruby是一门很棒的语言,我认为学习它并不会出错。但是现在,如果您现在可以选择学习,或者使用Objective-C / Cocoa。

答案 6 :(得分:1)

如果你想为OS X或者后来的iPhone构建严肃的应用程序,我认为你可以通过RubyCocoa来实现更艰难的道路。

主要原因是能够找到您可能遇到的常见编程问题的答案。 Objective-C / Cocoa周围有一个新兴的社区,有大量的论坛支持,代码片段,样本等。如果您了解Objective-C,您将可以更快地学习如何使用Cocoa。您的同行也可以更轻松地对代码进行故障排除,并在遇到问题时帮助您解决问题。 Objective-C真的不是那么难学,特别是如果你有一些OO概念的基础。

答案 7 :(得分:0)

我建议从一个oo语言开始,比如c ++或java。在理解了oo的基本概念之后,不应该难以学习目标-c。

ruby​​ cocoa的问题在于,无法保证苹果将来会支持这一点。他们过去放弃了cocoa-java桥。

答案 8 :(得分:0)

我认为这取决于初学者已经了解多少。如果您已经了解面向对象编程,那么您一定要学习objective-c。在消息传递,委托和类别等范式中思考将有助于理解Cocoa系统。如果你有几种语言,但没有面向对象的编程,那么你可能也有足够的经验通过Cocoa学习OOP,但要明白它处理的东西与C ++这样的语言不同。如果您的编程经验很少,那么ruby在短期内可能会更好。

要记住objective-c的另一个优点是手动引用计数内存管理范例。它可以比malloc / free更容易处理,但它不允许Java和脚本语言产生的懒惰。