成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS為什么選擇了Object-C?

開發 開發工具
Object-C 深受 Smalltalk的影響, 開發iOS的同學應該知道,調用方法其實就是給對象發送消息, iOS應用的框架就是MVC, 這些其實都來源于SmallTalk的思想。

地球人都知道,iOS 最初的開發語言是Object-C (當然現在Swift流行起來了), 這個Object-C是從哪里來的呢?

時間得回到上個世紀80年代初。

Brad Cox and Tom Love 兩個人在ITT(國際電報電話公司, 不是更加著名的AT&T)工作, 他們倆接觸到了SmallTalk 這門偉大的語言。

SmallTalk 可以說是世界上***個真正的面向對象的語言,***個具備垃圾回收的語言, ***個擁有真正的集成開發環境的語言, ***次引入了MVC的概念來開發軟件的語言。

SmallTalk 對后來的語言產生了極大的影響, 尤其是對Java 和Ruby , 當然還有Object-C。

兩個人被徹底的震撼了, 他們覺得這才是開發復雜軟件的不二之選, 他們迫不及待的想在自己的公司用起來, 但是公司已經有很多基于C的產品了, 不能直接用Smalltalk。

那為什么不增強一下C, 添加一點像SmallTalk那樣的面向對象特性呢?

Cox說干就干 ,很快就搞出一個C的面向對象擴展, 他把它稱為Object-Oriented Pre-Compiler (面向對象的預編譯器), 實際上它就是個預編譯器, 它產生的代碼恰恰可以作為C編譯器的輸入, 最終被C編譯器變成機器碼。

1983 ,兩人成立了一個叫PPI ,后來叫StepStone的公司來商業化他們的產品。

1986年, Cox 出版了一本書《Object-Oriented Programming, An Evolutionary Approach》來描述Object-C 這門新的語言。

Object-C 深受 Smalltalk的影響, 開發iOS的同學應該知道,調用方法其實就是給對象發送消息, iOS應用的框架就是MVC, 這些其實都來源于SmallTalk的思想。

Object-C 看起來不錯, 但沒有引發像Java 那樣引發轟動,只能說生不逢時, 造化弄人啊。

1985, 救世主終于出現了。 喬布斯被自己親手創辦的蘋果公司掃地出門, 建立了一個叫NeXT的公司,這家公司的目的就是建立軟件硬件于一體的計算機。

1988年,NeXT選擇了Object-C作為應用程序的開發語言, 并且擴展了著名的開源編譯器GCC 使之支持 Objective-C 的編譯。

使用 Objective-C 開發了 AppKit 與 Foundation Kit 等庫,這些庫成為了NeXTSTEP 這個操作系統的UI基礎 。 另外大名鼎鼎的interface builder 也是基于這些庫建立的。

看過《Android為什么選擇了Java》的同學可能會問, 喬布斯為啥不選Java 呢?

拜托,這是1988年, Java還沒有誕生呢!

看看NeXT的界面, 這是1988年, 絕對甩幾年后才出世的Windows 3.1 好幾條街, 充分展示出了基于Object-C的圖形界面的優勢。

但是NeXT計算機沒有取得預料中的成功,估計只賣了5萬臺左右。

其中有一臺NeXT非常著名, Tim Berners-Lee 在歐洲核子研究中心(CERN) 使用它發明了互聯網, 世界上***個Web服務器和瀏覽器就運行于此, 欣賞一下:

[[184255]]

雖然硬件不成功, 但是NeXT的軟件尤其是AppKit, Foundation Kit卻獲得了廣泛的贊譽。

1996年, 喬布斯的NeXT被Apple收購, 喬幫主王者歸來, 他承諾一定要把NeXT的軟件和Apple的硬件結合到一起, 這就是后來的MAC OS, iOS。

Object-C 作為原來NeXTSTEP的***等公民, 肯定要被移植過去了。

所以當iPhone 2007年橫空出世, 重新定義手機的時候 , Object-C 也就活了, 全世界的程序員就開始了學習Object-C的狂潮。

但是后來iOS為什么還不支持Java呢? 理論上只要在iOS上搞個虛擬機就行。

2007年,喬布斯在接受《紐約時報》記者約翰·馬爾科夫(John Markoff)采訪時說,“Java不值得我們嵌入到自家產品。人們不會再去使用Java,它就是一個巨大的累贅。”

讓喬布斯遺憾的是,Java并未消失,相反,這個由Sun開發、甲骨文繼承的編程語言,給蘋果制造了巨大的麻煩, 尤其是Android。

我想本質原因還是由于蘋果公司的基因, 一直以來都以軟硬一體,封閉的系統而傲然站立于IT界, 從最早的Mactonish到后來的Mac, iPhone都是如此。

所以讓心高氣傲的喬布斯去用一個開源的東西, 還可能會牽扯到別人的專利, 那是萬萬不行的。

【本文為51CTO專欄作者“劉欣”的原創稿件,轉載請通過作者微信公眾號coderising獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2017-08-04 17:44:02

2020-06-10 09:06:48

MongoDB架構高可用

2017-02-27 15:19:04

2016-09-27 21:25:08

Go語言Ken Thompso

2015-04-17 16:07:11

swiftOC

2015-06-11 11:10:02

Object-C省略參數

2018-12-21 11:26:49

MySQLMongoDB數據庫

2021-08-23 13:25:25

Vue3CSS前端

2024-02-05 21:48:25

VueReactHooks

2021-01-20 14:25:53

Vue3CSS前端

2011-11-28 10:21:52

Nginx特性

2020-02-13 17:49:55

SpringBoot放棄選擇

2022-06-14 11:01:48

SpringBootTomcatUndertow

2021-12-14 07:40:07

企業內部開源

2019-11-20 10:39:35

iPhone緩存清理

2020-09-28 15:45:23

數據

2012-02-28 09:11:51

語言Lua

2009-12-21 17:11:38

Linux認證

2009-06-25 15:09:34

選擇JSFESRI

2012-07-13 13:51:57

AndroidiOS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费看的黄网站 | 99国产视频| 91在线播 | 精品国产乱码久久久久久牛牛 | 99久久久无码国产精品 | 久久福利电影 | 特黄特色大片免费视频观看 | 国产精品日韩高清伦字幕搜索 | 精品福利在线视频 | 日韩在线精品强乱中文字幕 | 久久久久黄 | 久草视频网站 | 四虎影音 | 放个毛片看看 | 亚洲视频一区在线 | 国产美女免费视频 | 成人午夜免费网站 | 国产精品久久久久久久久久 | 密室大逃脱第六季大神版在线观看 | 成人网av| 亚洲不卡在线观看 | 欧美日韩视频在线播放 | 精品免费国产一区二区三区 | 国产成人精品免费视频大全最热 | 一级中国毛片 | 亚洲精品99| 插插插干干干 | 综合精品久久久 | 九九九久久国产免费 | 日本精品久久 | 欧美一区二区三区大片 | 一区二区在线观看av | 久草.com | 91视频一88av | 国产免费一区 | 国产一区二区三区在线看 | 99精品99| 欧美人妖网站 | 亚洲一区中文字幕 | 日韩欧美亚洲 | 综合久久av |