Mac上只能运行用Objective-C编写的程序吗?

小明 发布于 2013年08月23日
无人欣赏。

为什么苹果会把Objective-C作为Mac的官方开发语言?

在Mac OS X上,用Objective-C写的程序运行效率会更高吗?

共5条回复
BarryWey 回复于 2013年08月23日

当然不是这样的,还有很多跨平台的语言编写的程序也能跑起来。比如:Java

tinyfool 回复于 2013年08月23日

苹果选Objective-C做开发语言是有很长历史的,回头我整理下详细聊,这个事情可以追溯到很久以前,而且对苹果的发展也有很大的好处。Cocoa库的历史也很悠久。

至于效率其实都差不多,没有说Objective-C在Mac上面格外高,只是除了GNUStep以外,目前也基本上只有Mac/iOS在用Objective-C。

nickel 回复于 2013年08月24日

Obj-C和C++语言都只是在C上面的面向对象封装而已,都是通过转换为C再编译成机器码的,所以没有本质上的性能优势。当然,要说和编译成中间代码的Java以及其他脚本语言来比较,当然运行效率更高啦。 Mac/iOS的核心不是还是用C写的嘛,你看Core的部分很多函数都是C函数来的,所以理论上说Obj-C只是让你写代码写起来比较方便而已。

Tinyfool之前不也说过Obj-C和C++的性能比较吗?http://tiny4cocoa.com/thread/show/124/

Obj-C相对C++有更好的“动态特性”,就是通过消息机制实现的,但这必然多少会有一定性能影响。

其次,所有采用垃圾回收机制的语言内存消耗量都会比手工管理内存的消耗量大很多,这也一定程度上影响性能和效率。所以采用Java这类语言作为某一操作系统的核心开发语言,其实是很不明智的。

而对于面向应用的上层语言,如果是直接能访问操作系统底层语言接口的是最高效的,所以C++和Obj-C很明显就是最高效的方式。而另外一种例子就是Android中的Java,但其实那个和普通的Java基本上就不是一种相同的语言,只是利用了原来Java的语法和关键特征,关键是可以比较直接得访问操作系统核心语言的接口(JNI),所以才能相对比较高效。反面例子就是BB OS了(直接采用标准的JVM和Java基础库),用过的人都知道黑莓系统有多慢(虽然我还曾算是半个黑莓粉也不能否定这样的现实)。

akunamotata 回复于 2013年08月25日

python的效率应该也蛮高,MAC默认安装的语言...

登录 或者 注册