天天看點

Xcode是如何誕生的?

大家都知道,Xcode是iOS、macOS程式的唯一開發工具,其強大的功能讓人歎為觀止。那麼,大家知道Xcode是如何誕生的呢?

1981年, 一個名叫Jean-Marie Hullot的人獲得巴黎第十一大學的計算機科學博士學位後,開始了在法國國家資訊與自動化研究所(INRIA)的研究所學生活。

早在Jean-Marie Hullot還在學校的時候,Xerox PARC(施樂帕洛阿爾托研究中心)的 Alan Kay、Dan Ingalls、Ted Kaehler和Adele Goldberg等人,從1969年就開始研發一款面向對象的程式設計語言Smalltalk,并于1980年正式公布。雖然當時的機器跑得非常的慢,但Smalltalk先進的思想對其他衆多的程式設計語言的産生起到了極大的推動作用,對計算機工業界的發展也産生了非常深遠的影響。

Smalltalk的釋出給Jean-Marie Hullot的心靈帶來了巨大的震撼,他毫不猶豫地成為了面向對象程式設計模式的早期粉絲。那時,Jean-Marie Hullot使用早期的Macintosh電腦進行開發,但他很快發現,雖然Mac的使用者界面做得不錯,但開發程式實在是很糟糕。因為每次開發人員需要一個視窗或者菜單,都要從零開始建構。

于是乎,Jean-Marie Hullot開始動腦筋改進Mac編寫使用者程式難的現狀。他開發了一個這樣的程式:一側的工具條是類似菜單這樣的大量可重用的對象,而另一側則是程式員想建構的使用者程式界面。隻要把工具條上的工具拖放到程式界面中,那麼類似“打開”、“列印”等相關的功能,就可以被添加到使用者界面中。實際上,這個程式是最早的一批能通過滑鼠把控件拖入界面設計視窗實作相應功能的商業程式,是使用者界面設計軟體的先驅。這個跨時代的發明被稱作SOS,用 Lisp語言編寫的。

有了這麼厲害的東西,Hullot意識到如果他隻在研究所窩着,那隻能很少的人享受這一成果,而如果他把這個工具公開,那對所有的開發人員來說,都是一大福音。

經過不斷努力,Hullot找到了一個值得推銷自己發明的好地方——劍橋的蘋果大學聯盟(Apple University Consortium)。這個蘋果和大學合作的組織看到 Hullot的創作後反響很好,就推薦他去見時任蘋果開發研究院主任Jean-Louis Gassee。後者見到SOS後也認為這是個好東西,便說服他去美國闖一闖。

不過當Jean-Marie Hullot來到美國加州蘋果總部時,他并沒有留在那兒,而是找到他用來寫SOS的Lisp解釋器的生産商,也就是軟體公司ExperTelligence,來推銷他的SOS。很巧的是,當時的ExperTelligence正在尋找合作商賣自已的 Lisp,而Hullot也在找合作商賣自已的SOS,兩者一拍即合,随即打電話給NeXT,共同推銷自家的産品。

絕頂聰明的NeXT的創始人Steve Jobs早就看中了SOS,但卻對ExperTelligence的Lisp一點興趣都沒有。他以三顧茅廬般的熱情,将Jean-Marie Hullot招緻麾下。Jean-Marie最終在 NeXT 整整待了十年。在NeXT工作期間,他使用Objective-C和NeXTSTEP架構重寫了SOS,命名為Interface Builder。由此,Interface Builder成為NeXT內建開發環境Project Builder的标準套件之一。

Interface Builder和SOS一樣,提供了一個工具箱,包含一系列使用者控件對象。工具箱并不是官方定死的,而是可以任意擴充的。開發者隻要把控件拖入項目檔案就能完成使用者界面設計,節省了幾乎所有和控件放置有關的代碼。同時,開發者拖拽滑鼠,将控件可提供的動作(IBAction)和另一個對象的接口(IBOutlet)連在一起,則建立了一個綁定。這樣,一旦動作被激發,接口中相應的方法則會被執行。是以,大量對象關聯的代碼也能被省去。

NeXT被Apple收購後,蘋果把下一代作業系統建立在NeXTSTEP的基礎上。Objective-C和Cocoa被作為主要架構,而Interface Builder和Project Builder也是以受到重用。值得一提得是,蘋果釋出的首個iPhone SDK的Cocoa Touch界面,是用Interface Builder設計的。

Jean-Marie Hullot是在NeXT被收購時進入蘋果的,Steve Jobs令他率領在法國的一個小團隊,秘密為Mac OS X 10.2開發一個辦公軟體iCal。最後,在iCal小組功成名就的Jean-Marie Hullot榮升蘋果軟體開發部首席技術官。

Project Builder在Mac OS X 10.3時被重命名為現在大家所熟知的Xcode。長期以來,Xcode環境和Interface Builder是兩個獨立工作但互相有聯系的程式,而2010年釋出的Xcode 4預覽版中,Xcode和Interface Builder合二為一,成為一個一體化的程式設計環境。

“千裡馬常有,而伯樂不常有”,Jean-Marie Hullot的經曆驗證了這句古話。正是在“千裡馬”和“伯樂”的共同努力之下,才有了今天的Xcode。感謝喬幫主和大神Hullot為我們弄出了這樣一個卓越的開發工具。