@H_301_12@Mac OS X 10.6.3 的 Kernel 基本上就是 BSD,你可以类比成 linux。
众所皆知的,在 Unix 跟 linux 的世界里,程式大部份都是用 C 或是 C++ 开发的。两个 linux 上最多人使用的桌面环境,KDE 是用 C++ 写的,而 GNOME 是用 C 开发的。linux 的 Kernel 最主要是用 C 写的。
@H_301_12@那为何 Apple 却用 Object-C 作为主要程式的开发语言?即使用 C 语言开发,你还是可以把程式写成物件导向,GNOME 就是一个经典的例子。如果嫌用 C 写物件导向的程式太麻烦,C++ 可以把一切事情搞定。为何用 Object-C?
@H_301_12@先不回答这个问题,让我看看 MacOS 跟 linux 有多相似。
(1) MacOS 10.6.3 有 X window 系统,你只要执行 X11 这个 MacOS 内建的 X server,就可以了。
(2) 你也可以执行 Terminal 程式,内定的 shell,就是 bash。所有的 shell script,perl,python,Lua..... 通通不需要修改。
(3) MacOS 跟 linux 一样 case sensitive,也是用 "/" 来分隔目录名称。
(4) gcc 跟 GNU utility 装完 MacOS 通通就在了,不需要另外安装。
(5) linux 上 Open Source 的 project 大概重新编译一下就行,就算需要小修改,也早有 MacOS port 等在那里。
真正比较大的不同,是在系统目录的名称,及用户的的 home 目录,跟 linux 不太一样。可以这么说,如果你想,你可以把 MacOS 当 linux 来用。
@H_301_12@所以答案是,为 linux 开发的程式,很简单就可以被 MacOS 拿来用,反之为 MacOS 用 Object-C 开发的程式,却几乎不可能被 linux 拿来用。即使 linux 也有 Object-C 的编译器,你就算有 Source Code。可是在 linux 的环境里,没有 Cocoa Framework。
Steve Jobs 有先见之明,知道世界上有很多人跟他一样聪明,如果 Apple 用大家常用的 C 或 C++开发,很多高手,一定会把 Apple 上的软体 port 到 linux 上,只要模拟了 Cocoa 的界面,可以在 MacOS 上执行的程式,就可以在 linux 上执行。具体的证明,有很多 KDE 及 GNOME 及 X window 上执行的软体,也可以在 windows 上执行。
Apple 花非常大的人力,研发出一套非常屌,非常好的使用界面及视窗管理系统。就是因为使用 Object-C ,所以你喜欢,你就只能在 Mac 上用。Mac 的电脑卖得很贵(有时候是同级 PC 的两倍价钱),但是 Apple 就是吃定你,因为你只有这个选择,当然软体是无价的,贵有他的道理。
对了,我是要开发 iPhone 程式,又跑去搞 gcc 跟 GNU utility,这个太跳 tone 了,要赶快回去 K iPhone SDK。
总结以上是内存溢出为你收集整理的iPhone 程式設計入門(4)Apple 為何用 Object-C 開發軟件全部内容,希望文章能够帮你解决iPhone 程式設計入門(4)Apple 為何用 Object-C 開發軟件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)