研究Objective-C,Ruby OR Python?

时间:2009-02-15 07:28:16

标签: python objective-c ruby programming-languages

我从事过去4到5年的C ++工作。最近我买了iphone和macbook,想要为iphone做一些编程。

所以我开始阅读一本关于Objective-C的书。我还了解到我们可以在MAC上用Ruby和Python编程。

所以我的问题是要研究哪一个?你们用哪种语言看待未来???

我们可以在其他平台上使用这些语言进行编程吗?或者这些只限于MAC?

我只是目标C的初学者。需要一些专家的想法。

AC

12 个答案:

答案 0 :(得分:10)

如果您想为iphone编程,那么您应该使用objective-C。整个iphone API基于objective-C,您可以使用Xcode的界面构建器和IDE支持。

答案 1 :(得分:8)

我使用所有语言C ++,Ruby,Python和Objective-C。我以不同的方式喜欢每个人。如果你想像其他人一样进入Mac和iPhone开发,我推荐Objective-C。

未提及的好处之一是Objective-C是C的正确超集(C ++几乎是一个超集),这意味着您可以将所有C编程知识从C ++转移到Objective-C编程。实际上,您还可以在Objective-C代码中混合使用C ++代码。

你无法在Python和Ruby中以无缝方式实现这一点。你可以这样做的原因是Objective-C实际上是一种非常简单的语言。

最初它只是带有定制预处理器的C,它采用了这样的语句:

[rectangle setX: 10 y: 10 width: 20 height: 20];

并在编译前将其转换为此内容:

  objc_msgSend(rectangle, "setX:y:width:height:", 10, 10, 20, 20);

除了Ruby之外,Python和Objective-C在对象模型中至少与C ++相比非常相似。在C ++中,类是在编译时创建的。在Objective-C中,Ruby和Python类是在运行时创建的。

我在why Obj-C is cool here

上写了一些东西

答案 2 :(得分:7)

如果您想制作可以在App Store中销售的本机程序,Objective-C是对iPhone进行编程的唯一方法。

Objective-C中的一些更高级的概念现在被添加到C#等语言中(例如:C#v3.0中的扩展方法)。学习Objective-C中的思考将非常有用,您学习的OO模型将适用于大多数其他语言和环境,作为您的C ++体验的补充。

Ruby的对象模型比Objective-C更接近于Python,所以我建议学习Ruby,但直到你的Objective-C技能稳固下来。

请注意,您可以使用Objective-C ++并在您的GUI代码中使用C ++,在文件上加上.mm后缀 - 这适用于iPhone和Mac。鉴于您的C ++经验,这可以帮助您提高工作效率。

如果你想对iPhone进行编程,不要费心学习新的Objective-C 2.0内存管理,但你仍然可以使用Properties模型(iPhone实际上有一个Objective-C 2.0运行时的子集)。

答案 3 :(得分:7)

你们哪种语言看到了未来???

未来的是什么? iPhone开发? Objective-C的。

网络服务? Python / Ruby并行了一段时间。至少在人们开始尝试对大型Ruby应用程序进行维护之前,并对它的不透明性感到沮丧。

实时游戏引擎开发?嵌入式应用?什么是未来?

“我们可以在其他平台上使用这些语言编程吗?或者这些只限于MAC?”

Ruby和Python:是的。这些设计用于在任何支持C的平台上运行。

Objective-C:是的。它是开源的,它在GCC中,应该几乎可以在任何地方工作。

学习一门新语言一场零和游戏。你可以学习多种语言;学习Objective-C现在不会阻止你将来学习Python或Ruby。

答案 4 :(得分:4)

作为Perlite,我只想指出OS X有Perl以及Python或Ruby。

就Perl / Python / Ruby而言,程序几乎完全是跨平台的。在任何平台上运行Perl / Python / Ruby程序都相当容易,它的工作方式大致相同。可能存在一些细微差别,但它们并不重要。

Objective-C虽然没有严格限制在OS X中,但实际上只在基于OpenStep的环境中使用,这通常意味着OS X和iPhone。我所知道的唯一的Objective-C编译器是gcc,我想你可以在Linux上编写Objective-C,但我不知道Windows支持是否非常好(如果存在)。

至于哪个是“未来”的语言,所有3种(或4种)语言将来会被广泛使用。没有人能够真正预测到这种事情,并且没有一种语言真的会死掉(除非Apple将一种新语言作为制作Mac程序的“标准”),所以你对任何一种语言都很安全。它们。

我的建议:全力以赴,看看哪一个你认为最适合自己的风格,并了解一下。

答案 5 :(得分:3)

正如其他人所指出的,如果你想对iPhone进行编程,可以选择Objective-C。

Objective-C非常适合Mac;当然,Gnu Objective-C编译器也适用于其他平台,并且还有GnuStep,但我认为Objective-C的主要适用性是用于编程Mac和iPhone。

另一方面,Python和Ruby可用于大量平台(包括Windows和许多Unix方言)。就个人而言,我更喜欢Python,但我想说这两种语言都非常实用,很容易接近。

另请注意,PythonRuby都有Objective-C桥接器,这使您可以用任何一种语言编写非常精美的Cococa应用程序。

答案 6 :(得分:2)

如果使用Objective-C编程,那么您的主要目标应该是在Mac上编写Cocoa应用程序。除此之外,它几乎没用。 Ruby和Python是有用的脚本语言,还有编写Cocoa应用程序的桥梁。

如果你想在Mac上编写应用程序,我会从Objective-C开始。有更多的支持。

就未来而言,似乎很多人目前正在加入Ruby潮流。祝你好运。

答案 7 :(得分:2)

要在Mac OS X上进行编程,您确实需要在Objective-C中有一个良好的基础。绝大多数文档都将采用Objective-C。即使您选择使用其他语言编写某些应用程序,最好还是对它有一个很好的理解。

答案 8 :(得分:2)

红宝石。使用Ruby,您将能够通过Macruby项目进行Web开发(Rails / Sinatra /等)以及很快在MAC / Iphone平台上进行编程。为什么不充分利用两个世界?

托米

答案 9 :(得分:2)

只是我的两分钱......我相信你已经知道了,Apple和其他各个社区的其他人正在使用Ruby和Python做很多工作,用于Mac和iPhone开发。 Objective-C几乎只会让你进入Apple竞技场这些天(虽然这可能不是坏事;)但是,如果你只是在可预见的未来学习一种语言,那么考虑你将在哪里使用它,以及做什么的。如果您不仅仅关注Mac桌面和iPhone,那么Ruby和Python将为您提供更多帮助。

答案 10 :(得分:2)

我在Ruby中编写了小游戏,翻译和大量的东西。我不建议它编写密集的AI程序,但它对于大多数应用程序而言学习和功能很有趣。即使我在C ++中完成大部分工作,Ruby也是出于主观原因最喜欢的语言。

目标C正如大多数人所说的那样在iPhone开发中是必须的,如果你热衷于学习语言,那就很有趣。

我没有尝试过Python,但我听到的只有好消息,PyGames非常受欢迎。

我会学到三个(好吧......我会跳过目标C,除非你对进入iPhone开发感到好奇),你知道的语言最多,你将是最好的专业。作为一名优秀的教授,我总是说......这不是要用一种语言成为主人,而是要知道每个人根据你想要解决的特定问题选择合适的人的利弊。

干杯!

答案 11 :(得分:1)

Objective-C只是Mac / iPhone,我建议您了解是否要为Mac / iPhone开发应用程序。 Python是一切,它是未来,但python更适合Web开发。 Python是谷歌:) Python是网络,游戏,科学,图形,桌面等。如果你是C / C ++开发人员,它也是非常好的选择。

不确定我是否可以推荐你学习Ruby ......