过去我曾经听过一些关于哪个更成熟的辩论:RubyCocoa或Obj-C / Cocoa ......但是我觉得这些答案正好赶上了“新手”,这真的很有回答。
所以问题是:对于一个初学者来说,几乎没有编程经验,是否更容易学习Ruby并通过桥接探索Cocoa(然后可能解决Obj-C)或直接跳到Objective -C和可可。
两个社区都很强大,拥有大量资源,但是很多人都指出Obj-C的语法只是令人生畏。也许对于一个真正的初学者来说,学习Ruby然后解决Objective-C会更容易吗?
更新:我道歉,但是当我说“学习Ruby并探索Cocoa”时,我并不是要通过RubyCocoa学习编程,而是学习Ruby(一旦有足够的信心)开始探索可可,并有可能利用他们不断增长的技能来解决Obj-C。
答案 0 :(得分:11)
我不建议学习使用RubyCocoa进行编程。
我喜欢Ruby并且认为它是学习编程的一种很好的语言,但RubyCocoa桥的编写得不够好,我推荐它作为学习环境。您将同时学习通用编程概念,Cocoa框架和RubyCocoa的怪癖。这是很多东西要推到你的头上。
如果你受到约束并决定从Cocoa开始,那么首先要学习Objective-C。否则,你可以开始学习Ruby,然后一旦你觉得作为程序员感觉更舒服就转换到Objective-C。一旦你完成了所有这些,你就可以使用RubyCocoa,但是你会知道它不会让你变得疯狂。
答案 1 :(得分:5)
我将从Apple宣讲的内容开始:Objective-C / Cocoa
答案 2 :(得分:3)
真的没有意义:
试着看看哪个很容易,如果你选择了简单的方法,你总是会弄错...不要害怕什么是难的,不要害怕不要。
尝试比较那种方式的语言/方法,根据我添加的帖子,在这种情况下思考什么是简单/好/硬是语法问题,最终归结为解释,美在眼中旁观者。
根据他们最终会尝试使用这项技术,您会发现某些方法或其他方法比其他方法“更容易”......很难定义
只有一个问题很重要:在接触这两种方法之前,人们知道什么? - 你说:
总初学者,几乎没有编程经验
我的回答:
经常在我居住的地方附近游客问:
“我怎么从这里到达地名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会像使用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和脚本语言产生的懒惰。