cocoa历史

来源:互联网 发布:搬家软件哪个便宜 编辑:程序博客网 时间:2024/04/30 09:25


 

  可以这么说,没有他可能就没有苹果,没有他也就可能没有Cocoa,没有他我们看不到今天的iphone,ipod, ipad等等一系列让人们感动的热泪盈眶的产品。这一节我们将从乔布斯开始,然后您将会了解到Cocoa产生的背景以及Cocoa的来源。

  1.1.1 背景

  我们将从一个故事说起,1972年, 年仅17岁的史蒂芬·乔布斯从Reeds学院缀学,从入学到缀学他总共在Reeds学院呆了短短一个学期。究竟是什么原因促使他缀学,我们不得而知,也不必去追究,天才大概分为两种,一种是读书极其厉害的,可以眼都不眨就一直读到博士,而另一种是只读一半的。

  由于在完成中学学业后,乔布斯就经常参加HP公司的讲座,所以同在这一年他以夏季职员的身份来到了HP公司,就在这里他找到了他的最佳拍档:史蒂芬·沃兹涅克,这为以后苹果公司的成立埋下了伏笔。值得一提的是史蒂芬·沃兹涅克也刚从加州大学缀学。此时的沃兹涅克由于销售用于免费远程呼叫的自制设备而小有名气,随后他们一起合作卖出了不少这样的设备。

  年轻的乔布斯渴望获得精神上的启迪,他把目光投到了印度,1974年初,他用在Atari公司担任视频设计师时节省下来的钱做了一次印度之旅。这次旅行使他获得了“一种那些没有踏上过相对文化根旅的人永远无法理解的思维方式”,并且他把这次旅行称为“两三件他做过最重要的事情之一”。

  印度归来,乔布斯参加了沃兹涅克的“国际计算机俱乐部”聚会,此时的沃兹涅克热衷于电子设备,而乔布斯则看上了个人计算机的市场前景,他开始劝说沃兹涅克与他共同开发个人计算机。1975年,在乔布斯的卧室中,他们两人开始开发Apple 11976年,开发完成,然后在乔布斯的车库里他们制造出了Apple 1的原型机。随后他们成立了苹果电脑公司。

  苹果公司发展非常快速,随着公司的日益庞大,人员的日益增多,乔布斯和他的团队意识到他们可能需要一位CEO来加强对整个公司的管理,就在19834月,JohnSculleyPepsiCo 的前总裁成为了苹果的总裁兼CEO

  Sculler的加盟并没有像预期那样让苹果公司如虎添翼,反之权利的分配导致了决策时引发的很多矛盾,乔布斯认为Sculley根本不懂计算机,而Sculley认为乔布斯不的善管理对于公司来说这是危险的,乔布斯决定夺取Sculley的管理权。

  机会来临了,1985523日,Sculley前往中国出席会议,乔布斯决定发动政变促使Sculley下台从而夺取公司的控制权,然而事发东窗,就在最后时刻,他的合伙人向Sculley高密,1985531日,Sculley返回公司并和乔布斯发生了激烈的争论,Sculley要求董事会在他和乔布斯之间作出选择,此后:

1985531日:Sculley解除乔布斯的一切权力,仅保留了他的苹果主席职务,但乔布斯已经不能对任何决策施加影响;

1985年夏:Sculley成为苹果电脑的新领导人。同时裁员1200人。

1985917日:史蒂芬·乔布斯正式从苹果辞职。他对苹果董事会表示他计划创建一家新的公司。他还通知他们5名苹果雇员将与他一起创建新的公司.

1985923日:苹果向史蒂芬·乔布斯提起诉讼。

19851024日:John Sculley签下苹果有史以来最坏的合同。他同意微软继续为苹果生产软件(如WordExcel)这样也就允许微软使用部份苹果图形界面技术了。如果Sculley没有与微软做下这笔交易,那么Windows也许永远不会介入,因为由于它与MacOS相似性,很明显苹果将会轻松的在任何反对微软的诉讼获胜。

19861月:苹果停止对乔布斯的控告。乔布斯同意六个月内不雇用苹果职员,并且不建立与苹果电脑竞争的电脑公司。乔布斯创建NeXT公司。乔布斯从George Lucas购买了Pixar电脑动画工作室,耗资近1000万美元。

 

         乔布斯离开了苹果,但他并没有认输,自己又成立了一个公司,NeXT公司雇佣了一些有才华的工程师组建了一个小团队,这个团队开发了自己的电脑,打印机和一堆开发工具,可是不幸的是他们的硬件没有好的市场,1993年,工厂也关门了,NeXT Computer也变成了NextSoftware

                      

   操作系统和那些开发工具以NeXTSTEP为名继续在卖,可能一般的计算机用户都没有听过NeXTSTEP,但NeXTSTEP在某些领域很流行,并且有一些人一直在使用它来开发自己的应用程序。他们觉得NeXTSTEP能更快的让他们的想法能变成计算机实现。

  NeXT使用Unix作为NeXTSTEP的内核,为什么是Unix?可能是因为UnixWindowsMac OS更稳定,AppleDarwin就是基于Unix创建作为Mac OSX核心。

  NeXT给他们的操作系统编写了一个window serverwindowserver可以把用户输入的 事件转发个应用程序。而应用程序会给 window server发送drawing window server 来刷新UINeXTSTEP的一个优点是发给应用程序的绘制指令和发给打印机的一样,所以程序员只需要写一次控制代码,便可以用于显示在显示器上也可以用于打印机上。在NextStep的时代,程序员书写可以生成PostScript的代码,而在 Mac OSX 时代,程序员使用Core Graphics(通常所说的Quartz)框架的代码,Quartz可以在屏幕上合成这些图形或者把他们发送到打印机,或者生成PDF数据。PDF是一个由 Adobe 公司制定的开放的协议,主要用于矢量图形的存储。

  如果你以前使用过Unix,你可能会比较熟悉 X 窗口服务器,Mac OS Xwindow server X 窗口服务器完全不同,但是它完成了 X 窗口服务器相同的功能:从用户那里接受事件并将事件发给应用程序,然后将应用程序发来的数据显示在屏幕上。可是 X 协议对反锯齿字体和透明化支持不是很好,这就是 Mac OS X 窗口比 X-window 窗口看起来更加美观的一个原因。

  NeXTSTEP内置的许多库和工具,让程序员以一种优雅的方式与窗口管理器进行交互,这些libraries叫做Framework,在1993年这些frameworks和工具被重新修改并重命名为OpenStep,后来被重命名为Cocoa(大家应该知道为什么 Cocoa 的类都有着 NS 的前缀了 吧)

            

   我们使用的是一种叫做Objective-C的语言应用这个Frameworks来编程。就像 C++ 一样,Objective-C是在C语言上拓展,使得它基于对象。但是不像C++ Objective-C是一种弱类型语言,同时也是极其强大的语言。Objective-C 允许程序员犯一些可笑的小错误。Objective-CC语言的一个简单的扩充,你会觉得它很容易学。

   程序员喜欢OpenStepOpenStep可以让他们更容易的试验他们的新想法。事实上,Tim Berners-leeNexTSTEP上开发出了第一个网页浏览器和 web 服务器。证券分析员们可以很快的开发和测试新的金融模块。大学生们可以开发他们的研究程序。情报局也购买了数千份OpenStep的拷贝。 因为这些工具是如此的实用 OpenStep开发工具被移植到SolariesWindowsNT上,NextStep操作系统被移植到当时多数流行的CPU平台上包括:Intel, Motorola, Hewlett-Packard's PA-RISC, SPARC

   许多年以来,苹果公司致力于开发一个具有NextStep特性的操作系统。这就是所知的Copland计划。Copland计划逐渐的失控了,苹果公司最终决定放弃开发,转向从别的 公司购买下一个版本的Mac OS。在经过调查现存的操作系统之后,苹果公司选择了NextSTEP,因为NeXT很小,苹果 1996 年收购了Next 整个公司。

   NeXTSTEP变成Mac OS X,它是Unix的一个分支,你可以在Mac OS X上找到所有的标准Unix程序,比如Apache Web Server,在 Mac OS X 上,它比在 Windows Mac OS 9更加的稳定,用户界面也更加的漂亮,作为一名开发人员,你将会爱上Mac OS X,因为 Cocoa可以使你快捷、高效、优雅的开发出功能强大的应用程序。

原创粉丝点击