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套。ui
7,1993年,NeXT終止了硬件業務,轉爲專一於NeXTSTEP(OPENSTEP)軟件市場,並推出了一套網絡程序架構WebObjects用於進行動態頁面的生成。OPENSTEP實際上 是NeXT和SUN公司合做開發的一套系統,能夠運行在Soloris和Windows NT。spa
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 x8六、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使用