|
5#
楼主 |
发表于 6-11-2008 23:51:11
|
只看该作者
Objective-C 学习(一)
关于Objective-C我以前一直有一个误解,老是以为这么有个性的玩意是Jobs捣鼓出来的,至少是在他的领导下找人弄出来的。其实大错特错!这里要提到一个不太为人所知的计算机科学家 Brad Cox,该老兄除了计算机科学家这个头衔外,还是生物数学博士,真是孤陋寡闻,头一次听说生物数学这个学科,如果你和我一样知识贫乏,赶紧点前面的链接去扫扫盲吧。
下面八卦下Objective-C的起源,下面这个有点像国企高工的照片就是Objective-C的发明人Cox博士。
file:///Users/bob/Library/Caches/TemporaryItems/moz-screenshot.jpgfile:///Users/bob/Library/Caches/TemporaryItems/moz-screenshot-1.jpg
从Cox博士的网页上可以看到很有趣的一段话:“Most of my recent work is in XML, Java, Ruby, Python and Perl. Before those, Imainly used a language I invented early in my career, Objective-C.” 看来Objective-C是Cox他老人家玩剩下的玩具,早就没兴趣了,却被Jobs当成宝一样捡了起来
其实Objective-C的历史相当悠久,上世纪80年代结构化编程大行其道的后悔,搞计算机科学的牛人们就已经看到了结构化编程的问题并感觉到OOP是解决之道。牛人中的极品Alan Key更是三下五除二搞了个Small Talk出来。SmallTalk把OOP发挥得淋漓尽致,像啥垃圾收集,虚拟机之类的都用在了Smalltalk上,不过Smalltalk在当时的硬件发展水平下有点太学院派了,太阳春而有点脱离现实。其他大牛们对Smalltalk一时之间爱恨交加,Cox博士当时在一个叫Stepstone的公司干活,不过Cox也是Smalltalk的粉丝,于是被介绍到了ITT公司搞Smalltalk的研究。牛人就是牛人,虽然是Smalltalk粉,可是一点不含糊,研究的结论是用Smalltalk来写NB的开发环境没戏! 虽然没戏,可是Cox老大爱死了Smalltalk的语法, 于是就在C语言的基础上添加了类似于Smalltalk的语法,一开始是个C语言前端的预处理器(和C++的CFroont发明思路很像),后来越玩越High,就写成了一个全新的C编译器扩展,当时叫OOPC (Object Oriented Programming in C)。就这样Cox老大玩到1986年的时候,觉得该为这个新语言著书立说了,于是第一本Objective-C书《Object Oriented Programming: An Evolutionary Approach》问世了。
2年后,被别人从苹果公司赶出来了Steve Jobs 发现了Objective-C,立即为其所倾倒,马上买下了Objective-C的License并作为自己的新系统 NeXT首选开发语言,并搞出了NeXTstep 。现在MacOSX的SDK里还到处有这个框架的影子(NS前缀, .nib扩展名等等)。 不过对当时的Jobs来说还真是人生不如意十之八九,他一心像卖NeXT电脑赚钱,不过市场根本不买账,不过却对NeXTstep产生的浓厚的兴趣。Jobs索性不再既希望于卖电脑,企图押宝在NeXTstep上专心做软件,把NeXTstep(为了在非NeXT机器上运行还发行了OpenStep)当成开发平台卖。这个平台很成功,后来还出现了符合OpenStep的Open Source版 GNUstep, 正是GNUStep正式把Objective-C编译器前端引入了gcc,现在连Mac自己都在用这个gnu编译器。
1996年Jobs重返苹果公司后,用Objective-C,OpenStep加苹果原来的技术整合打造了现在的Mac OS X。
reference:
1. http://zh.wikipedia.org/w/index.php?title=Objective-C&;variant=zh-hans
2. http://en.wikipedia.org/wiki/Objective-C
3. (1991) Object Oriented Programming: An Evolutionary Approach. Addison Wesley. ISBN 0-201-54834-8.
Objective-C圣经, Cox关于Objective-C的第一本书
4. (1996) Superdistribution: Objects as Property on the Electronic Frontier. Addison Wesley. ISBN 0-201-50208-9. |
|