苹果的需要
最近连续被问到学习Objective-C的问题,比如我原来学的是C或C++,学Objective-C行吗?这门语言语法怎么那么古怪呢?现在学Objective-C有前途吗?好吧,今天简单说说苹果的当家语言Objective-C。
首先说明一下,技术这种东西很难说学哪个更有前途,而且以前有一期也说过,如果你准备以技术手段谋生或实现你的理想,基本不可能只懂一门语言。就目前来看,Objective-C似乎是薪酬较高的语言,但是这个阶段迟早会过去的,就像当年的Java一样。一门语言只有掌握得足够深入,才有机会探讨它的前途和钱途。想要看得远,必须站得足够高。吐槽完毕!
[插图]
Objective-C是C语言的扩展,设计思路上借鉴了Smalltalk的面向对象和消息机制的思想。从我个人使用过的面向对象语言来看,Objective-C是对消息传递支持得最彻底的,也是最显式的。Objective-C的类中定义的方法都是消息传递,而且类和消息之间是运行时绑定的,运行时编译器把消息发送转换成对objc_msgSend方法的调用。其他的C+问题,说明一下,其实不是苹果采用了Objective-C,而是乔布斯创建的Next公司的操作系统NextStep采用了Objective-C作为原生语言。
Objective-C在计算机编程语言中有着不短的历史,20世纪80年代初Brad Cox和Tom Love发明了Objective-C,1988年乔布斯的Next公司获得了这门编程语言的授权,并开发出了Objective-C的语言库和NextStep的开发环境。NextStep以Mach和BSD为基础,Objective-C是其语言和运行库。后来的事大家都比较清楚了,苹果买了NextStep,乔布斯回归苹果,NextStep也成了Mac OS X的基础。以后发展越来越好,Objective-C反而成了苹果的当家语言,现在基本上是苹果在维护这门语言的发展。
随着苹果的App帝国不断壮大,这门语言也得到了长足的发展,从1.0到2.0,从面向对象的C语言扩展,到内存引用计数管理、属性管理、引入块的概念、实现自动引用计数、优化编译器、简化语法等。Objective-C在2011年和2012年分别获得了TIOBE评选的年度语言,目前排名第四。苹果CEO库克在2012年的WWDC大会上宣布,苹果已经为全球开发者支付了超过50亿美元的分成收入,时至今日,估计已经远远超过50亿美元了,对于开发者来说,这是一门能够独立创富的编程语言。
还有一点不能不提,第一台万维网的Server就是一个叫蒂姆·伯纳斯-李的大牛在NextStep上写的,包括浏览器。所以,咱们得感谢Objective-C,要不然还不知道互联网会发展成啥样呢……