分享到:

Apple 的技术乱弹

[来源:] 2011-12-04 23:18:00 编辑:Sean Pu 点击:

 如果让我评价我见过的最差的编程语言的话,这个答案很唯一:<I>Object</I>ive C
(那种江湖上一直传说的中文编程不计入进去)
也就是大家正在使用的iPhone,iPad 的最主要编程语言
Jobs 在离开Apple 后投资成功了,因为“皮
 如果让我评价我见过的最差的编程语言的话,这个答案很唯一:<I>Object</I>ive C 
(那种江湖上一直传说的中文编程不计入进去)
也就是大家正在使用的iPhone,iPad 的最主要编程语言
Jobs 在离开Apple 后投资成功了,因为“皮克斯动画”
而创业失败了,这个失败其实就是NeXTSTEP ,而在NeXT 的时候,固执和顽固的Jobs 们以早起的<I>Object</I>ive C 为原型扩展了Cocoa 语言库和相应的NEXTSTEP 环境。

这个<I>Object</I>ive C 可以说成是乱得一塌糊涂。不是驴,不是马,连骡子都不是。虽然国外很多人在介绍这门语言的时候都说这是一门优雅的语言。这个优雅就如同无数的新人不会使用Itunes 一样!
(我不排斥<I>Object</I>ive C 中的一些比较不错的方面)

但是当Jobs 回归苹果的时候,同时也也把了NeXTSTEP 带入了苹果,一直延续使用到现在,而且成功的完成了IOS 系统。
由于IOS 其实还是UNIX 原型模式,其实用C 也好,用C++也好,都可以完成今日的IOS 和OS X.这两个系统更重要的是在于工业设计上的成功。语言无关性
Jobs 只是选择了一个熟悉和可控的方式来“进行"他的革命,他需要NeXTSTEP 来控制那个时代的苹果
由于历史的原因,<I>Object</I>ive C 基本上成了今日开发iOS 和 MAC 的最主要语言,最重要的语言;不论这门语言的语法,对象命名,属性名称和结构是多么的混乱。多么的鸡肋

从某种角度来看,苹果家的产品少,同<I>Object</I>ive C 是有关系的,而不只是Jobs 为了专注砍掉了其他产品。

但是由于<I>Object</I>ive C 本身是兼容C 的,所以让国外很多以C 语言为主要编程语言的游戏可以快速移植到iOS 平台,这极大的丰富了IOS 平台的应用和娱乐性
而C 或者C++ 语言的程序员们由于接触的语言太少(他们接触的太纯粹),从某种角度来讲并不会对于<I>Object</I>ive C 的很多内容过于排斥

<I>Object</I>ive C 和Cocoa从某种角度削弱了指针以及指向指针的指针的概念,同时又提供了@SEL 这种方式;但是基于代理和Message 方式的结构又降低了性能和增加了消耗。
引用和计数存在的混乱导致APP 的莫名Crash成为一种常态,要想让一个APP 稳定真的不容易啊!

虽然个人对于OC 带着强烈的个人情绪,但是在另外一个方面,作为开发的另外一个载体IDE,苹果的XCode 却是一个非常不错的编程工具,特别是在于MVC 模式的开发的时候。这是一个相当方便的工具,它从模式上让代码和UI 进行了分离:可以真正进一步完成分工协作。传统意义上的MVC 协作模式在Xcode 面前其实就是一个幻觉

Xcode是一个高效的工具,我指性能。
对比Android 平台和IOS 来讲,如果在代码熟悉程度同一水平线上的化,可以这么说:apple 的开发效率要远高于Android .
(从IDE 上来讲最好的IDE 是VS.NET)

要想玩Apple 家的开发你需要熟悉<I>Object</I>ive C,你可以使用1994年那个延续出来的方案:GNU Step 来熟悉这个<I>Object</I>ive C,但是依据个人建议是你还是老老实实在OS 系统上来进行。GNU Step 虽然是一个硬件低成本,但是确是一个时间高成本的事情。不推荐

如果黑苹果能够稳定和高效的运行的化,你赢了。(Apple 的技术支持曾经给过一个说法:他们也尝试在PC上安装成功过MAC,但是用到后来崩溃了)
而在虚拟机中虚拟MAC OS 的方案个人还是建议你放弃,因为你老是要在Win 和MAC 之间切换。不只是系统的切换,而是思维的切换,太累!大脑细胞死太多。
早衰,早衰,早衰

而你们可能不知道的是,Flex 是可以开发IOS 应用,也就是说你公司懂Flash编程的 员工,也可以轻松的完成APP 的开发(虽然是基于AIR 的),而这条路比<I>Object</I>ive C 更方便,更快捷,界面更友好。
分享到: