Tagged Tags:

败亦伟大

说NeXT是乔布斯的滑铁卢,一点儿都不为过。如果不是被苹果收购,乔布斯在NeXT将败得血本无归。但失败和失败也不完全相同。有的失败轻于鸿毛,有的失败则重于泰山。

NeXT虽然失败了,但NeXT留给苹果和电脑产业的遗产,其价值无法估量。

NeXT留给这个世界的第一份重要遗产,是NeXT的操作系统。这当然要归功于操作系统研发大师阿维·特凡尼安。

虽然销售业绩不佳,但NeXTSTEP仍足以在操作系统发展史上,占据一个里程碑式的地位。强大的Mach内核让NeXTSTEP拥有了超凡的性能和近似UNIX系统的稳定性。设计优雅的OpenStep接口标准,让操作系统和应用程序之间的交互更加清晰、简洁。更重要的是,NeXTSTEP操作系统创造性地将面向对象的开发方法与操作系统的应用开发接口完美结合,大幅降低了软件开发和维护的难度。

面向对象的特性是乔布斯大为推崇的亮点,他说:「当我1979年到施乐访问,看到图形用户界面的时候,在短短10分钟里,我就清楚地知道,世界上每一台电脑都应该像这样工作。你可以质疑,这个变革究竟需要花多长时间。你也可以质疑,在这个过程里,到底谁会胜出,谁会失败。但没人可以否认,世界上所有电脑最终都将在图形用户界面下工作。面向对象技术也是一样。一旦你理解了面向对象技术,你就会知道,世界上所有软件最终都将使用面向对象技术开发。你可以质疑这个过程需要花多少年,可以质疑谁会胜出谁会失败,但这个转变必然发生。」

乔布斯返回苹果后,一直在推动NeXT操作系统与Mac
OS的整合工作,但因为技术上的困难,这项工作花了好几年的时间。其间,Copland项目研发的不少新技术被融入到了Mac
OS 7的升级版Mac OS 8中,后续的Mac OS 9则是这个系列的最后版本。

1999年,基于NeXT技术研发的全新操作系统Mac OS
X(最后这个X是罗马数字10的意思,表示Mac OS
9的后继,但事实上已经是全新的操作系统了)的服务器版。2001年3月24日,桌面版的Mac
OS
X正式发布。直到今天,所有苹果笔记本、台式机上运行的操作系统,都是NeXT当年打下的基础,就连iPhone手机和iPad平板电脑上使用的iOS操作系统,也是NeXT一脉传承的结果。

Mac OS
X和iOS操作系统在设计上将NeXT操作系统内核的稳定性,面向对象开发的便捷性和苹果Mac
OS天生就具有的超凡用户界面结合得天衣无缝。乔布斯回归后,苹果之所以能起死回生,又能在2007年后凭借iPhone和iPad等「神器」在消费电子领域横扫千军如卷席,NeXT操作系统留下的遗产可谓居功至伟。

顺便提一下,Mac OS
X的每个版本都有一个公开的代号,而且都是猫科动物的名字。即便是不懂软件原理的人,看到这些有趣的名字,也会一下子喜欢上苹果的操作系统。

Mac OS X版本 发布时间 猫科动物代号

10.0 2001年3月 猎豹(Cheetah)

10.1 2001年9月 美洲狮(Puma)

10.2 2002年8月 美洲豹(Jaguar)

10.3 2003年10月 黑豹(Panther)

10.4 2005年4月 虎(Tiger)

10.5 2007年10月 豹(Leopard)

10.6 2009年8月 雪豹(Snow Leopard)

10.7 2011年6月 狮(Lion)

NeXT留给这个世界的第二份重要遗产,是经过重重磨难后回归苹果的乔布斯乔帮主。

12年前,乔帮主愤然离开苹果时,还是一个在管理上极不成熟的小伙子。12年间,像奥德赛一样漂泊在外的乔帮主经历了太多的挫折和失败。在这12年里,虽然事业不顺,乔布斯的个人生活却有了着落。他终于放弃了嬉皮士一样放荡不羁的生活方式,娶妻生子,有了美满的家庭。

无论遭遇过多少磨难,无论生活状态如何变化,乔布斯用技术改变世界的梦想始终都没有变。12年后,回到苹果的乔帮主是不是已经足够成熟,可以在他钟爱的苹果一展身手?他能不能再次创造奇迹,让苹果再次震撼世界呢?

这一次,乔帮主不是一个人在战斗。从NeXT跟随乔布斯来到苹果的,还有他身边的左膀右臂──软件研发大师阿维·特凡尼安和硬件研发大师乔恩·鲁宾斯坦,这些人都是NeXT留给乔布斯和苹果的无价之宝。

NeXT成长过,失败过。乔布斯迷茫过,沮丧过。但NeXT远没有完结。NeXT留下的人和技术正在苹果悄悄积淀和凝聚,等待着一飞冲天的时刻。

iOS

2007 年 1 月 9 日苹果公司在 Macworld 展览会上公布,随后于同年的 6
月发布第一版 iOS 操作系统,最初的名称为 “iPhone Runs OS X”。

2007 年 10 月 17 日,苹果公司发布了第一个本地化 iPhone
应用程序开发包(SDK),并且计划在 2 月发送到每个开发者以及开发商手中。

2008 年 3 月 6 日,苹果发布了第一个测试版开发包,并且将 “iPhone runs OS
X” 改名为 “iPhone OS”。

iOS 是由苹果公司开发的移动操作系统 。苹果公司最早于 2007 年 1 月 9 日的
Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到
iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X
操作系统一样,属于类 Unix 的商业操作系统。原本这个系统名为 iPhone
OS,因为 iPad,iPhone,iPod touch 都使用 iPhone OS,所以 2010WWDC
大会上宣布改名为 iOS。

来自苹果的邀请

造化弄人,就在NeXT艰难维持着软件业务,屡败屡战的时候,一份来自苹果公司的竞标邀请再次将乔布斯与他亲手创建的苹果联系了起来。这一次,苹果看上的不是乔布斯,而是NeXTSTEP操作系统。

当年离开苹果时,乔布斯就曾对董事会说,NeXT将来研发的新技术、新产品,完全有可能以收购或授权方式回归苹果。谁都知道,那时乔布斯说的不过是句气话,就像被恋人抛弃的痴情人赌气说「将来你一定会想起我的好处」一样。谁承想,在NeXT濒临崩溃的时候,看上NeXT技术的竟然真是苹果。

NeXT难以维继,苹果那边也同样风雨飘摇。1996年,火线上任的苹果新CEO阿梅里奥像个救火队员一样,马不停蹄地解决危机、填补漏洞。那时,苹果面临各种严峻挑战,但最重要的还是产品质量下降的问题。Macintosh系统运行缓慢,动不动就死机直接影响苹果产品的口碑和销量,阿梅里奥为此焦虑不已。

当时Macintosh使用的操作系统是Mac
OS第7版。实际上,自从Macintosh换用PowerPC芯片以来,操作系统就一直不大稳定,死机频繁出现,微软为苹果研发的IE浏览器和Office办公套件在Mac
OS上也远不如在Windows上稳定。用户的抱怨一浪高过一浪。

Mac
OS开发团队发现,自己陷入了一个可怕的死循环。每次用户报告的问题看上去都不难解决,可修好了这一批问题,又会有新的一批问题出现。工程师们精疲力竭。这似乎表明,Mac
OS第7版操作系统已经病入膏肓,无可救药了。

为了跳出这个恶性循环,Mac
OS团队决定,把大量人力投入到新版操作系统的研发。新版操作系统代号是Copland。与此同时,还有另一个更长远的操作系统开发计划,代号是Gershwin。

开发一款新的操作系统,谈何容易。当大部分工程师涌向新操作系统的开发,而又不能在短时间内取得突破时,苹果陷入了一个软件开发常见的两难境地,旧的系统缺人维护,新的系统屡屡延期。历史上,许多大型软件项目就是这么死掉的。

阿梅里奥发现,投入大量时间和资源后,Copland还只是几个无法连接到一起的功能模块,Gershwin则更是空中楼阁。阿梅里奥不得不强令开发团队把部分工作重心转移到修补Mac
OS 7故障的工作上来。

面对乱糟糟的开发状况,在市场和用户压力煎熬下彻夜难眠的阿梅里奥觉得,自己只剩下了一个选择──外购成熟的操作系统。

该选择什么样的操作系统呢?

阿梅里奥和比尔·盖茨是生意场上不错的朋友。尽管IBM
PC和苹果电脑水火不容,但微软和苹果还是一直保持了磕磕绊绊、若即若离的伙伴关系。一方面,苹果起诉微软的知识产权官司迟迟不能定论;另一方面,微软一直为Mac
OS开发Office和IE。想到外购操作系统,阿梅里奥第一个想起的就是微软。

「嗨,比尔,如果微软基于NT为苹果开发一个Macintosh使用的操作系统,你觉得怎样?」阿梅里奥打电话里探寻盖茨的意见。

「操作系统?」盖茨在电话那一头沉默了一小下,突然高兴地说,「当然了,微软当然愿意为苹果电脑研发操作系统,这毫无疑问!我相信,微软是苹果最好的选择!」

「真的?」

「请放心,如果这个单子交给微软,我会投入几百人的开发团队。」盖茨大包大揽地说。

听得出,盖茨非常想拿下这个单子,他甚至都没有仔细考虑把Windows
NT移植到Macintosh平台究竟有多难。

阿梅里奥知道,苹果CEO去请微软帮忙开发操作系统,这事情怎么听怎么可笑。但阿梅里奥是个生意人,苹果和微软之间的恩怨情仇必须让位于从利益出发的理性分析。Windows是当时最流行、软件兼容性最好的操作系统,苹果这一次为什么不能「庸俗」一把呢?

当然,精明的盖茨在一口应承的背后,还是藏了更多的玄机。很快,盖茨就向阿梅里奥提出了交换条件。

盖茨说:「苹果特别擅长人机交互,如果新操作系统底层基于Windows
NT,上层基于苹果的人机交互技术,那必将是最完美的结果。而且,这样一来,你我之间的知识产权纠纷也迎刃而解了。」

言外之意,盖茨是要在合作中无偿获得苹果的优势技术,同时将苹果与微软间的官司一笔勾销。

盖茨积极推动这桩交易。微软的工程师也飞到硅谷,与苹果员工讨论技术细节。但很快大家就发现,操作系统移植和用户界面技术的整合工作量实在太大,连不大懂软件开发的阿梅里奥也不得不承认,这绝不是短时间可以完成的任务。

还有其他可选的操作系统吗?

阿梅里奥想起了法国人让-路易·卡西。还记得这个卡西吗?11年前,乔布斯被斯卡利赶出Macintosh团队时,就是这个卡西接管了Macintosh团队。当然,卡西的结局也并不比乔布斯好多少。卡西一开始做得还不坏,不久就升职并主管苹果的新产品研发和全球市场营销,苹果内部甚至有谣言说,卡西是斯卡利的接班人。但好景不长,因为缺乏执行力,卡西负责的许多产品又陷入了一再推迟上市的怪圈。1990年,斯卡利像当年赶走乔布斯那样,迫使卡西辞职。

辞职后的卡西创办了一家名为Be的公司,他选择的方向仍是电脑和操作系统研发。新开发的操作系统名为BeOS,用在电脑BeBox上。新操作系统在多任务并行处理方面有独到之处。当时,苹果正学着IBM的模样,授权其他厂商研发Macintosh兼容机。卡西看到了这个商机,就把BeOS也移植到了Macintosh平台上。他希望BeOS成为Macintosh兼容机的首选操作系统。但Be公司的生意还不如乔布斯的NeXT,
BeBox系统只卖了2000套就寿终正寝。

因为开发Macintosh兼容操作系统的关系,卡西辞职后仍和苹果保持着密切的联系。阿梅里奥知道,BeOS已经是一款能直接在Macintosh上运行,且与MacOS在很大程度上兼容的操作系统了。外购BeOS显然可以节约大量成本和时间。当然,BeOS刚研发出来,没经过大规模应用的考验,是不是真的比MacOS稳定,还是一个大大的问号。

卡西听说苹果要选操作系统,兴奋得难以入眠。他找到阿梅里奥说:「我们的操作系统是现成的,只要几个星期,就可以在Macintosh上发布。」

Windows
NT更流行也更稳定,但移植需要更多的时间。BeOS不一定成熟,但却是现成可用的。阿梅里奥需要在二者之间作一个抉择。也许是因为卡西是苹果的旧将,也许是对盖茨心有余悸,阿梅里奥心中的天平逐渐倒向了BeOS一边。

苹果和Be公司之间的商业谈判进入到了实质流程。卡西甚至承诺说:「我爱苹果。我希望看到苹果成功。如果达成协议,我可以加入苹果,帮助管理软件部门。」

但讨价还价的过程不大顺利。苹果想买下整个Be公司,且只打算出1.25亿美元。卡西则想把公司卖到2亿到4亿美元。阿梅里奥又一次犹豫起来。

乔布斯?阿梅里奥猛地想起,乔布斯不是正在研发和销售NeXTSTEP操作系统吗?

此前,阿梅里奥和乔布斯因为兼容Macintosh授权的事情,曾打过一次交道。虽然当时的会谈不欢而散,但阿梅里奥见识过NeXTSTEP操作系统的强大。有没有可能用NeXTSTEP替换苹果现有的操作系统呢?

无巧不成书。就在阿梅里奥想到了NeXTSTEP又没有拿定主意的时候,11月底,苹果公司首席技术官艾伦·汉考克(Ellen
Hancock)接到了一个陌生人的电话。当时,汉考克正在欧洲出差。

「我是NeXT软件公司的销售。」电话里的陌生人自我介绍说。

「NeXT?」

「对,NeXT。我们研发NeXTSTEP操作系统。我想知道,苹果公司有可能考虑使用NeXTSTEP作为下一代操作系统吗?」

汉考克是阿梅里奥加入苹果时从国家半导体公司带来的亲信之一。她第一时间把这个情况汇报给了阿梅里奥。阿梅里奥和汉考克都觉得,乔布斯一定知道了苹果正在选操作系统的情报,否则,不会让销售在这个节骨眼上打电话询问。既然两边想到了一起,那就谈一谈吧。

12月2日下午,刚从日本出差回来的乔布斯来到了苹果总部。面对阿梅里奥,乔布斯一开口就显示出超凡的推销技巧:

「我注意到,有一个潜在的机会可以让NeXT为苹果提供帮助。」乔布斯顿了顿继续说,「我不知道你们对此是否真的有兴趣,但请允许我讲一讲,这个计划里最吸引人的地方在哪里。也许,这完全是个疯狂的主意,我甚至不知道为什么我会在这里向你们推销这个计划。不过,还是让我们一起看一看,这主意究竟靠不靠谱。」

乔布斯首先断言,选择BeOS对苹果来说是一场灾难。看来,乔布斯来之前做了功课,对苹果正和Be公司谈判的进程了如指掌。他用激烈的言辞批评BeOS不成熟,不稳定。然后用鼓动人心的话大加称赞NeXT操作系统。

紧接着,乔布斯话锋一转:「如果你们觉得,NeXT能为苹果提供帮助,那么,我个人可以接受任何形式的协议。无论是软件授权,还是转让整个公司,无论什么形式我都没问题。」

有备而来的乔布斯在谈判伊始就抓住了关键。微软因为附加条件过多、技术难度大而提前出局,Be公司因为价格问题而与苹果争执不下。这时,乔布斯直接摆出了最好的的条件,这不能不让阿梅里奥动心。

想想也是,NeXT屡败屡战,就要关门大吉,苹果的邀约就像一根救命稻草。乔布斯必须背水一战,也许只有他的三寸不烂之舌可以拯救NeXT了。

12月10日,星期二。在帕洛阿尔托的花庭酒店(Garden Court
Hotel),BeOS和NeXT展开正式对决。乔布斯和他的NeXT团队先向苹果决策层介绍NeXTSTEP,然后再由卡西介绍他的BeOS。

一上来,乔布斯向大家强调NeXT是面向未来的操作系统,他的演讲征服了听众。紧接着,阿维·特凡尼安在便携电脑上演示了NeXTSTEP的强大之处,实机演示大大加深了听众对NeXT的印象。

也许卡西自以为胜券在握,居然没有为这次演示作精心的准备。卡西不但是一个人来的,而且没有幻灯片,没有产品彩页,没有演示用的电脑。他的演讲也索然无味,全无重点。

几乎所有人都把票投给了乔布斯和他的NeXT。

几天后,乔布斯又为苹果董事会做了一次演示。演示前,乔布斯在走廊里见到了12年前将自己从苹果赶走的马库拉。马库拉显得很尴尬,两个人只是简单握了握手,没有说更多的话。

协议很快达成,12月20日,苹果以4.29亿美元收购NeXT,收购对象既包括NeXT操作系统,也包括NeXT研发团队,乔布斯本人也因为这次并购而重回苹果。

关于回归后乔布斯的身份,阿梅里奥问他:「你想回来领导工程技术团队吗?」

「不。」乔布斯坚定地说。

「那,你想成为苹果公司的顾问吗?」

「不。」

「可是,既然你回归苹果,你的职位安排,我总要对董事会有个交代吧。」

乔布斯想了很久,终于松口道:「好吧,如果你非要对董事会有个交代,那不如说,我可以回来当董事会主席的顾问。」

一切都很顺利,阿梅里奥松了一口气。与马库拉不同,他和乔布斯此前并没有太大的过节,乔布斯以顾问身份回归苹果,帮自己尽快做好NeXT与苹果的整合,这计划看上去不错。不过,阿梅里奥的心底还是有一丝隐忧,他猜不透,苹果创始人的回归,对自己在苹果的前途到底意味着什么。

UNIX

UNIX,一种电脑操作系统,具有多任务、多用户的特征。于 1969 年,在美国
AT&T 公司的贝尔实验室开发出来,参与开发的人有肯 · 汤普逊、丹尼斯 ·
里奇等。

Linux

Linux 是一种自由和开放源代码的类 UNIX 操作系统。该操作系统的内核由林纳斯
· 托瓦兹在 1991 年 10 月 5
日首次发布。在加上用户空间的应用程序之后,成为 Linux 操作系统。Linux
也是自由软件和开放源代码软件发展中最著名的例子。只要遵循 GNU
通用公共许可证,任何个人和机构都可以自由地使用 Linux
的所有底层源代码,也可以自由地修改和再发布。

APP

应用程序(外语缩写:App;外语全称:Application)
。是指设计给智能手机、平板电脑和其他移动设备上运行的应用程序。

OOP

面向对象程序设计(英语:Object-oriented
programming,缩写:OOP)是一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。

Objective-C

Objective-C 是一种通用、高级、面向对象的编程语言。它扩展了标准的 ANSI C
编程语言,将 Smalltalk 式的消息传递机制加入到 ANSI C 中。

现在 Objective-C 是 OS X 和 iOS 操作系统、及与其相关的 API、Cocoa 和
Cocoa Touch 的主要编程语言。

Swift

Swift,一种支持多编程范式,编译式编程语言,由苹果公司在 2014
年推出,用来撰写 OS X 和 iOS 应用程序。2014 年,在 AppleWWDC
所发布,设计 Swift 时,苹果公司有意让 Swift 与 Objective-C
共存在苹果公司的操作系统上。

MVC 模式

MVC
模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

  • (模型 Model) –
    程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计
    (可以实现具体的功能)。

  • (视图 View) – 界面设计人员进行图形界面设计。

  • (控制器 Controller)- 负责转发请求,对请求进行处理。

框架 Framework

Framework
是一些类的集合,通常是一些可能一起使用的类集合。换句话说,这些类被一起编译成可复用的代码库(library
of code)。所有相关的资源和代码库一起放入一个带扩展名 “.framework”
的目录。框架的功能类似于动态库,即可以在运行时动态的载入应用程序的地址空间,但框架作为一个捆绑
(计算机)而非独立文件,其中除了可执行代码外,也包含了资源,头文件和文档。

库(英语:library)是用于开发软件的子程序集合。库和可执行文件的区别是,库不是独立程序,他们是向其他程序提供服务的代码。

库链接是指把一个或多个库包括到程序中,有两种链接形式:静态链接和动态链接,相应的,前者链接的库叫做静态库后者的叫做动态库。

类库

类库(Class library)是指一个类的集合。

一组在多个工程中可能会被重复使用的类,可以作为一个类库共享给其他相关的开发者。

类库不等于框架(Framework),Framework 是比类库更高一级的概念。

封装

在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式界面的实作细节部分包装、隐藏起来的方法。同时,它也是一种防止外界呼叫端,去存取物件内部实作细节的手段,这个手段是由编程语言本身来提供的。这两个概念有一些不同,但通常被混合使用。封装被视为是面向对象的四项原则之一。(继承?多态?)

适当的封装,可以将物件使用界面的程式实作部分隐藏起来,不让使用者看到,同时确保使用者无法任意更改物件内部的重要资料。它可以让程式码更容易理解与维护,也加强了程式码的安全性。

SDK

软件开发工具包(Software Development
Kit,缩写:SDK)一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合。

它或许只是简单的为某个程序设计语言提供应用程序接口的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK
还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。

JDK

Java Development Kit(JDK)是太阳微系统针对 Java
开发人员发布的免费软件开发工具包(SDK,Software development kit)。

自从 Java 推出以来,JDK 已经成为使用最广泛的 Java SDK。由于 JDK
的一部分特性采用商业许可证,而非开源。因此,2006
年太阳微系统宣布将发布基于 GPL 协议的开源 JDK,使 JDK
成为自由软件。在去掉了少量闭源特性之后,太阳微系统最终促成了 GPL 协议的
OpenJDK 的发布。

IDE

集成开发环境(Integrated Development Environment,缩写:IDE)。IDE
集成开发环境软件是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。

XCode

Xcode 是苹果公司向开发人员提供的集成开发环境(IDE),用于开发 Mac OS X
和 iOS 的应用程序。

API

应用程序接口(Application Programming
Interface,缩写:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。

UI

用户界面(User Interface,缩写:UI)。UI
设计则是指对软件的人机交互、操作逻辑、界面美观的整体设计。

GUI

图形用户界面(Graphical User
Interface,缩写:GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。

Cocoa

Cocoa 是苹果公司为 Mac OS X 所创建的原生面向对象的编程环境,是 Mac OS X
上五大 API 之一(其它四个是 Carbon、POSIX、X11 和 Java)。

对最终用户来说,使用 Cocoa 编程环境开发的应用程序即为 Cocoa
应用程序。这类应用有独特的外观,因为 Cocoa
编程环境让程序在多方面自动遵循苹果公司的人机界面守则。

Cocoa 是从 1980 年代由 NeXT 开发的编程环境 NeXTSTEP 和 OPENSTEP
演变而来,这点可由其类之名皆以 NS 前缀(代表
NeXTSTEP)看出端倪。苹果电脑公司在 1996 年 12 月收购了 NeXT。开发
NeXTSTEP 和 OPENSTEP 的大量工作都转化到了 Mac OS X
中,最显而易见的部分当属 Cocoa。但差异也存在。

Cocoa 包含两个主要的 Objective-C 对象库,称为
“框架”。框架的功能类似于动态库,即可以在运行时动态的载入应用程序的地址空间,但框架作为一个捆绑
(计算机)
而非独立文件,其中除了可执行代码外,也包含了资源,头文件和文档。

  • Foundation:“Foundation 工具包” 的简称,首先出现在 OpenStep 中。在
    Mac OS X 中,它是基于 Core Foundation
    的。作为通用的面向对象的函数库,Foundation
    提供了字符串,数值的管理,容器及其枚举,分布式计算,事件循环,以及一些其它的与图形用户界面没有直接关系的功能。其中用于类和常数的
    “NS” 前缀来自于 Cocoa 的来源,NeXTSTEP。它可以在 Mac OS X 和 iOS
    中使用。

  • AppKit:(Application Kit)“应用程序工具包” 的简称。AppKit
    是直接派生自 NeXTSTEP 的 AppKit
    的。它包含了程序与图形用户界面交互所需的代码。它是基于 Foundation
    创建的,也使用 “NS” 前缀。它只能在 Mac OS X 中使用。

NeXTSTEP

NeXTSTEP(又写作 NeXTstep、NeXTStep、NEXTSTEP[1]) 是由 NeXT.Inc
所开发的操作系统。这套系统是以 Mach 和 BSD 为基础,以 Objective-C
作为原生语言,具有很先进的 GUI 接口。

OpenStep

OpenStep 是一组面向对象的 API,大部分是由 NeXT 与 Sun Microsystems
开发。作为一种面向对象的操作系统的规范,有一些现代操作系统用它作为核心。对于
OpenStep 一个重要的认识是,它只是一组 API 规范,而
OPENSTEP(一定要大写)是由 NeXT 开发的一个 OpenStep
的特殊实现。尽管它构建于 Mach-即基于 Unix(也是 NEXTSTEP
的核心),OPENSTEP 的同样有在 Solaris 和 Windows NT
上的版本。此外,OPENSTEP 库(由 OPENSTEP
操作系统提供的库)实际上已经成为了原始 OpenStep 规范的超集。

Cocoa Touch

Cocoa Touch 是苹果电脑公司的用户界面软件框架,用于在 iOS
操作系统上开发应用软件来运行在 iPhone, iPad 和 iPod Touch 上。

Cocoa Touch 主要提供以下两个 “框架”,用于开发运行在 iOS 上的应用系统:

  • Foundation:“Foundation 工具包” 的简称。

  • UIKit:(User Interface Kit)“用户界面工具包” 的简称,是用于 iOS
    的图形用户界面工具包。与 AppKit 不同,它使用 “UI” 的前缀。

Interface Builder

Interface Builder(缩写:IB),是用于苹果公司 Mac OS X
操作系统的软件开发程序,是 Xcode 套件的一部分。

Cocoa 和 Carbon 开发者可以使用 Interface Builder
来创建和修改应用程序的图形用户界面。其数据以 XML 的形式被储存在. xib
文件中,xib 是 “eXtensible Interface Builder”
的缩写。在过去,其数据则是储存在. nib 文件中的,nib 是 “NeXT Interface
Builder” 的缩写。

Interface Builder 是继承自 NeXTSTEP 的开发套件的。OpenStep
的开发也使用了 IB 的一个版本,而 GNUStep 则使用一个非常类似的,称为 Gorm
的工具。

2008 年 3 月 27 日,随着 iPhone SDK Beta 2 的发布,IB 开始提供对 iPhone
程序开发的支持,允许开发者使用 IB 设计 iOS 应用程序的界面。

XML

可扩展标记语言(英语:extensible Markup Language,简称:
XML),是一种标记语言。

标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。

如何定义这些标记,既可以选择国际通用的标记语言,比如 HTML,也可以使用像
XML 这样由相关人士自由决定的标记语言,这就是语言的可扩展性。

XML
是从标准通用标记语言(SGML)中简化修改出来的。它主要用到的有可扩展标记语言、可扩展样式语言(XSL)、XBRL
和 XPath 等。

DLL

动态链接库(英语:Dynamic-link library,缩写为
DLL)是微软公司在微软视窗操作系统中实现共享函数库概念的一种实作方式。这些库函数的扩展名是.
DLL、.OCX(包含 ActiveX 控制的库)或者. DRV(旧式的系统驱动程序)。

所谓动态链接,就是把一些经常会共用的代码(静态链接的 OBJ 程序库)制作成
DLL 文件,当可执行文件调用到 DLL 文件内的函数时,Windows 操作系统才会把
DLL 文件加载存储器内,DLL
文件本身的结构就是可执行文件,当程序需求函数才进行链接。通过动态链接方式,存储器浪费的情形将可大幅降低。静态链接库则是直接链接到可执行文件。

DLL 的文档格式与视窗 EXE 文档一样——也就是说,等同于 32
位视窗的可移植执行文档(PE)和 16 位视窗的 New Executable(NE)。作为
EXE 格式,DLL 可以包括源代码、数据和资源的多种组合。

在更广泛的意义上说,任何同样文档格式的电脑文件都可以称作资源 DLL。这样的
DLL 的例子有扩展名为 ICL 的图标库、扩展名为 FON 和 FOT 的字体文档。
<br /> <br />
补充资料:http://blog.163.com/lyzaily@126/blog/static/42438837200932565132635/

发表评论

电子邮件地址不会被公开。 必填项已用*标注