Objective-C发展历史

苹果图标由来:

被咬了一口苹果的LOGO是为了纪念计算机科学的创始人阿兰·
麦席森·
图灵。当年图灵由于身为同性恋者,被强行
“治疗”,在被迫注射大量雌性激素后,不堪屈辱,吃沾染氰化钾的苹果自尽,他死去的桌边还剩下半个苹果,时年42岁

1,1976,Apple创立。Steve Wonzniak史提夫 沃兹尼克 和 Steve Jobs史提夫
贾伯斯

2,1980年代初Brad Cox和Tom Love在公司Stepstone发明Objective-C。对Objective-C最主要的描述是他1986年出版的《Object-C
oriented Programming, An Evolutionary Appoach》。

3,Brad Cox一直专注软件工程,软件重用性,组建化,这也是ObjC里面的核心思想,Brad当时想打造一门流行的、可移植的C语言与优雅的Smalltalk的结合体。

4,1984,Apple推出第一台Macintosh(麦金塔)电脑,简称Mac。

5,1985年,John Sculley接管了苹果电脑,并把Steve Jobs赶出了苹果电脑。他离开后创立了NeXT电脑公司,并发展出NeXT电脑及NeXT
STEP操作系统。NeXT拥有最 先进的技术,但是不能成为最流行的电脑。John Sculley是百事可乐公司的主管,为Pepsi销售立下了汗马功劳。

6,1985年,被赶出苹果公司的Steve Jobs成立了NeXT公司,致力于开发强大且经济的工作站。NeXT获得了Stepstone公司的Objective-C语言授权和可以发布自己的
Objective-CCompiler和libraries。同时使用Objective-C开发了一套NeXTSTEP,并创建了NeXTSTEP
Toolkit软件包,这个工具包用于开发用户界面,功能强大。 NeXT Workstations销售仅仅5000套。

7,1993年,NeXT终止了硬件业务,转为专注于NeXTSTEP(OPENSTEP)软件市场,并推出了一套网络程序架构WebObjects用于进行动态页面的生成。OPENSTEP实际上
是NeXT和SUN公司合作开发的一套系统,可以运行在Soloris和Windows NT。

8,1994,NeXT与Sun共同制定OpenStep API标准,其中两个重要的部分是Foundation跟Application
kit,此时开始使用命名前缀NS。NeXT自己的实作成为 OPENSTEP,软件开发工具组当时大概叫做OpenStep developers toolkit;另外还有自由软体的实作,名为GNUstep。因为Mac OS X、iPhone SDK、Xcode可追 溯到NeXT、NeXTStep,所以是以Objective-C为主力开发语言,所以程式码中会出现NX与NS字样。

9,1996,Apple买下NeXT,主要用意就是要以NeXTStep作业系统取代老旧的Mac OS。

10,1997,Steve Jobs重回Apple。

分区 第一天(@传智如意大师) 的第
65
页

10,1997,Steve Jobs重回Apple。

11,2011,推出Mac OS X(X代表古罗马数字10)。而且OpenStep developers
toolkit被重命名为Cocoa。

12,NeXT Inc.NEXTSTEP,(官方写法很多多种,一开始叫做NextStep、NeXTstep、NeXTSTEP,最后才叫做

NEXTSTEP)是由NeXT.Inc所开发的操作系统。NeXT也是曾经苹果电脑 CEO,Steve Jobs在1985年离开苹果电脑后所创立的公司。这套系统是以Mach和BSD为基础,以Objective-C作为本地语言,具有很先进的GUI接口。1.0版推出时
间是在1989年9月18号。刚开始NEXTSTEP只能在NeXT电脑的Motorola68000上运行,1992年推出PC版的NEXTSTEP 486。3.1版和3.2版分别在1935年的5月及10月推 出,但是终究失败。最后版本3.3在1995释出,平台也以及不限于Motorola68000家族,亦可在IBM PC x86、Sun SPARC及HP PARISC等平台上运行。后来苹果电脑在 1997年2月将NeXT买下,成为Mac OS X。

13,NeXTSTEP

NeXTSTEP包含的内容非常多。主要有:1,操作系统,以Mach为kernel,加上BSD所打造出来的unix-like操作系统。2,以Objective-C为主力开发语言与运行环境3,面向对象的软件开发套件(library、framework),当时不叫framework,而叫kit。4,各种开发工具(Project
Builder, Interface Builder)。在NeXT公司被Apple收购后,这些也都被之后的Mac OS X 吸收继承。

14,1996年,苹果公司以4亿美金收购了NeXT,NeXTSTEP被重命名为Cocoa,WebObjects则集成到Mac
OS Server和Xcode中。Objective-C自然而然成为Mac平 台的首选开发语言,并受到Macintosh编程人员的广泛认可。Cocoa成为苹果免费提供的开发工具,提供Mac平台应用开发的环境。

15,1998年5月6号iMac横空出世。iMac是一次本质的回归。独特的一体化设计完全符合最初的Macintosh设计思路,正是这样的设计挽救了当时苹果岌岌可危的声望和
品牌。iMac也是第一个用光驱完全取代3.5寸软驱的电脑。

16,2001年,和一摞扑克差不多大小的第一代iPod重6.5盎司,标价$399美金。

17,2007年1月9日iPhone。短短两年时间,苹果已卖出一千七百四十万台iPhone。苹果已经一跃成为世界第二大智能手机制造商。

18,iPhone和iPad操作系统更名为iOS系统。(iPhone iPad iOS是标准写法)目前iOS已经更新到iOS8.x

使用Objective-C 2.0为开发语言

分区 第一天(@传智如意大师) 的第
66
页

使用Objective-C
2.0为开发语言使用Xcode6作为集成开发环境

集成Interface Builder作为界面开发工具(不用这个工具)

19,Objective-C:

Objective-C,通常写作ObjC,有时候也写作Objective C或Obj-C,是在C的基础上,加入面

向对象特性扩充而成的编程语言。目前,Objective-C主要用于Mac
OS X和iOS这两个NEXTSTEP的衍生系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在任何gcc支持的平台上进行编译,因为gcc原生支持
Objective-C。

20,发明者:

Objective-C主要是Brad Cox 和Tom Love设计完成。两人都是在ITT技术中心工作,在那里

开始研究Smalltalk和面向对象编程。Cox认为Smalltalk对于应用开发者非 常方便,所以开始专注于Smalltalk的研究工作。Cox在1983年修改了C编译器可以编译面向对象的C也就是OOPC语言。C是个compiled, procedural programming language,在1970s早期由AT&T发展出来。Objective-C是后来Brad
J.Cox发展出来,把C语言再加上了面向对象object-oriented概念。将C语言混
合了面向对象语言Smalltalk。Smalltalk是早期其中一个知名的面向对象语言,在Palo Alto Research Center (Formerly Xerox PARC)发展出来的。Cox将Smalltalk 的object和message passing分层构造在C语言之上建立出新的语言。这点让程序设计师可以持续使用熟悉的C语言开发,又可以使用面向对象特性。Objective-C
加了64-bit支持,当然在Mac系统才有意义,在iPhone目前都是64位。

21,1980年代,Objective-C被主要当中开发语言应用在NeXTStep操作系统,也就是Steve
Job发起的电脑公司NeXT。NeXTStep不论精神上和始祖上,皆是OS X的前身。一直到现在iOS上用的Cocoa Touch class name是用NS为开头,像是NSString 和NSArray,这都是可以追溯回到NeXT。现在最新语言是Objective-C是2.0,在
2007年10月和OS X Leopard一起发布的。强调拥有“modern garbage collection, syntax enhancements, runtime performance”

22,为什么很多类是以NS开头的在iPhone/iPad开发中,很多类是以NS名字空间开头的。原因是这些类是源于Cocoa基础类,

而Cocoa基础类最初来源于NeXTStep。所以Cocoa很多类是以NS开 头命名。iOS使用了Cocoa基础类。

23,The Cocoa APICocoa是目前主要的架构。是Apple从NeXTSTEP向OPENSTEP开发出来。有一套预定义的类和类

型比如NSNumber,NSstring,NSdate等。NSObject是一个根类, 里面包含了比如alloc,retain, release等函数,用来关系对象的生命周期。

24,总括

Objective-C是面向对象的语言

遵从ANSI C标准C语法,同时使用了Smalltalk的方法

分区 第一天(@传智如意大师) 的第
67
页

遵从ANSI C标准C语法,同时使用了Smalltalk的方法在运行时可以灵活处理所以事情

运行时非常灵活:

Dynamic Binding动态绑定Dynamic
Typing动态检查Dynamic Linking动态链接

Objective-C可以认为是继承了C和Smalltalk优点

Development

Tom Love在Schlumberger中心获得了Smalltalk-80的一份商业版权拷贝,然后设计出了

Objective-C1986年他们发布通过Stepstone公司发布Objective-C产品

NeXT and NeXTSTEP

1988年Steve Jobs获得了Objective-C的使用版权用在NeXT使用Objective-C来编写NeXTSTEP操作系统Objective-C使得设计NeXTSTEP操作系统更加容易NeXTSTEP是从BSD
Unix系统演变而来在1995年,NeXT从Stepstone得到了Objective-C全部版权

Apple and Mac OS X

NeXT在1996年被Apple公司接管。Steve Jobs开始在Mac OS X中使用Objective-C重新设计了Mac
OS来使用Objective-C

使用Objective-C开发了一套Cocoa
GUI库

重新发布了Mac OS X(10)

Dynamic Language几乎所有的工作都可以在运行时处理使用动态链接,动态绑定,动态检查最大的灵活性

最小化RAM和CPU使用

版权声明:本文为博主原创文章,未经博主允许不得转载。

Objective-C发展历史的更多相关文章

  1. Web开发技术发展历史

    Web开发技术发展历史   来自:天码营 原文:http://www.tianmaying.com/tutorial/web-history Web的诞生 提到Web,不得不提一个词就是"互 ...

  2. CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系

    CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...

  3. .net版本发展历史

    最近装上了VS2013,发现好多新特性.新功能,公司办公还在使用VS2005.VS2008,不过用着也很顺手,在最新版Visual Studio中,微软加入了git源码管理工具,和之前的TFS大体上类 ...

  4. 软件项目发展历史<人月神话>这本书好

    几乎是计算机软件开发的发展历史     人月神话,增加人手并不一定能提高开发速度. 原因在于,有些任务是无法分解的,存在先后顺序.无法同步进行. 增加人手,增加的是沟通成本,相互牵制.可以分解的任务就 ...

  5. [No00002A]26个英语字母的原始象形意义、含义、产生及发展历史

    我们都知道汉字是象形文字,但如果说英语也是象形文字,你一定会以为纯是无稽之谈.其实,追根溯源,英语的26个字母确实来自于象形文字.这26个字母最初起源于埃及象形文字,后由腓尼基人改进发明了腓尼基字母, ...

  6. FPGA技术的发展历史和动向

    本文关键字:fpga技术,fpga发展, fpga培训,FPGA应用开发入门与典型实例 一.FPGA技术的发展历史 纵观数字集成电路的发展历史,经历了从电子管.晶体管.小规模集成电路到大规模以及超大规 ...

  7. python 学习之电脑的发展历史

    电脑的发展历史 电脑的学名叫计算机,电脑是用来做计算的.在古时候,人们最早使用的计算工具可能是手指,英文单词“digit”既有“数字”的意思,又有“手指“的意思.古人用石头打猎,所以还有可能是石头来辅 ...

  8. Hadoop发展历史简介

    简介 本篇文章主要介绍了Hadoop系统的发展历史以及商业化现状, 科普文. 如果你喜欢本博客,请点此查看本博客所有文章:http://www.cnblogs.com/xuanku/p/index.h ...

  9. Linux发展历史大事编年表(截止2013年)

    这篇文章主要介绍了Linux发展历史大事编年表(截止2013年),Linux现在已经无处不在,是一个伟大的开原项目,让我一起来看看23年来它的发展历程吧   我们周围到处都有Linux的身影,在家中. ...

随机推荐

  1. 最佳化常用测试函数 Optimization Test functions

    http://www.sfu.ca/~ssurjano/optimization.html The functions listed below are some of the common func ...

  2. EF-查看生成的SQL语句

    老版本中:EF 4和EF 3.5 SP1 using (var context = new TestDBEntities()) { var query = from p in context.Pare ...

  3. cuda(2) 矩阵乘法优化过程

    Created on 2013-8-5URL : http://blog.sina.com.cn/s/blog_a502f1a30101mjch.html@author: zhxfl转载请说明出处 # ...

  4. HDU 4749 Parade Show 2013 ACM/ICPC Asia Regional Nanjing Online

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4749 题目大意:给一个原序列N,再给出一个序列M,问从N中一共可以找出多少个长度为m的序列,序列中的数 ...

  5. 【Caffe 测试】Training LeNet on MNIST with Caffe

    Training LeNet on MNIST with Caffe We will assume that you have Caffe successfully compiled. If not, ...

  6. asp.net将本地Excel上传到服务器并把数据导入到数据库

    前台代码: <td class="formLabel"> 批量修改: </td> <td class="formInput"> ...

  7. select * from table where 1=1让您茅塞顿开(转)

    在很多网站上,都经常看到select * from table where 1=1这样的一种查询语句: 这是一种怎样的查询语句呢?首先说明,1=1不是查询语句中的任何关键词,所以,请您放心,不管你会不 ...

  8. pathmunge /etc/profile

    pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "a ...

  9. Area - POJ 1654(求多边形面积)

    题目大意:从原点开始,1-4分别代表,向右下走,向右走,向右上走,向下走,5代表回到原点,6-9代表,向上走,向左下走,向左走,向左上走.求出最后的多边形面积. 分析:这个多边形面积很明显是不规则的, ...

  10. eclipse+tomcat+httpServlet初学

    1.在eclipse中配置tomcat,参考上一边文章,建立的web项目tomcatWeb目录结构 2.添加Servlet处理类 3. 实现doGet()与doPost()方法: <span s ...