Xcode是如何誕生的?
大家都知道,Xcode是iOS、macOS程序的唯一開發(fā)工具,其強大的功能讓人嘆為觀止。那么,大家知道Xcode是如何誕生的呢?
1981年, 一個名叫Jean-Marie Hullot的人獲得巴黎第十一大學的計算機科學博士學位后,開始了在法國國家信息與自動化研究所(INRIA)的研究生活。
早在Jean-Marie Hullot還在學校的時候,Xerox PARC(施樂帕洛阿爾托研究中心)的 Alan Kay、Dan Ingalls、Ted Kaehler和Adele Goldberg等人,從1969年就開始研發(fā)一款面向對象的編程語言Smalltalk,并于1980年正式公布。雖然當時的機器跑得非常的慢,但Smalltalk先進的思想對其他眾多的程序設計語言的產生起到了極大的推動作用,對計算機工業(yè)界的發(fā)展也產生了非常深遠的影響。
Smalltalk的發(fā)布給Jean-Marie Hullot的心靈帶來了巨大的震撼,他毫不猶豫地成為了面向對象編程模式的早期粉絲。那時,Jean-Marie Hullot使用早期的Macintosh電腦進行開發(fā),但他很快發(fā)現(xiàn),雖然Mac的用戶界面做得不錯,但開發(fā)程序實在是很糟糕。因為每次開發(fā)人員需要一個窗口或者菜單,都要從零開始構建。
于是乎,Jean-Marie Hullot開始動腦筋改進Mac編寫用戶程序難的現(xiàn)狀。他開發(fā)了一個這樣的程序:一側的工具條是類似菜單這樣的大量可重用的對象,而另一側則是程序員想構建的用戶程序界面。只要把工具條上的工具拖放到程序界面中,那么類似“打開”、“打印”等相關的功能,就可以被添加到用戶界面中。實際上,這個程序是最早的一批能通過鼠標把控件拖入界面設計窗口實現(xiàn)相應功能的商業(yè)程序,是用戶界面設計軟件的先驅。這個跨時代的發(fā)明被稱作SOS,用 Lisp語言編寫的。
有了這么厲害的東西,Hullot意識到如果他只在研究所窩著,那只能很少的人享受這一成果,而如果他把這個工具公開,那對所有的開發(fā)人員來說,都是一大福音。
經過不斷努力,Hullot找到了一個值得推銷自己發(fā)明的好地方——劍橋的蘋果大學聯(lián)盟(Apple University Consortium)。這個蘋果和大學合作的組織看到 Hullot的創(chuàng)作后反響很好,就推薦他去見時任蘋果開發(fā)研究院主任Jean-Louis Gassee。后者見到SOS后也認為這是個好東西,便說服他去美國闖一闖。
不過當Jean-Marie Hullot來到美國加州蘋果總部時,他并沒有留在那兒,而是找到他用來寫SOS的Lisp解釋器的生產商,也就是軟件公司ExperTelligence,來推銷他的SOS。很巧的是,當時的ExperTelligence正在尋找合作商賣自已的 Lisp,而Hullot也在找合作商賣自已的SOS,兩者一拍即合,隨即打電話給NeXT,共同推銷自家的產品。
絕頂聰明的NeXT的創(chuàng)始人Steve Jobs早就看中了SOS,但卻對ExperTelligence的Lisp一點興趣都沒有。他以三顧茅廬般的熱情,將Jean-Marie Hullot招致麾下。Jean-Marie最終在 NeXT 整整待了十年。在NeXT工作期間,他使用Objective-C和NeXTSTEP框架重寫了SOS,命名為Interface Builder。由此,Interface Builder成為NeXT集成開發(fā)環(huán)境Project Builder的標準套件之一。
Interface Builder和SOS一樣,提供了一個工具箱,包含一系列用戶控件對象。工具箱并不是官方定死的,而是可以任意擴展的。開發(fā)者只要把控件拖入項目文件就能完成用戶界面設計,節(jié)省了幾乎所有和控件放置有關的代碼。同時,開發(fā)者拖拽鼠標,將控件可提供的動作(IBAction)和另一個對象的接口(IBOutlet)連在一起,則建立了一個綁定。這樣,一旦動作被激發(fā),接口中相應的方法則會被執(zhí)行。所以,大量對象關聯(lián)的代碼也能被省去。
NeXT被Apple收購后,蘋果把下一代操作系統(tǒng)建立在NeXTSTEP的基礎上。Objective-C和Cocoa被作為主要框架,而Interface Builder和Project Builder也因此受到重用。值得一提得是,蘋果發(fā)布的***iPhone SDK的Cocoa Touch界面,是用Interface Builder設計的。
Jean-Marie Hullot是在NeXT被收購時進入蘋果的,Steve Jobs令他率領在法國的一個小團隊,秘密為Mac OS X 10.2開發(fā)一個辦公軟件iCal。***,在iCal小組功成名就的Jean-Marie Hullot榮升蘋果軟件開發(fā)部***技術官。
Project Builder在Mac OS X 10.3時被重命名為現(xiàn)在大家所熟知的Xcode。長期以來,Xcode環(huán)境和Interface Builder是兩個獨立工作但相互有聯(lián)系的程序,而2010年發(fā)布的Xcode 4預覽版中,Xcode和Interface Builder合二為一,成為一個一體化的編程環(huán)境。
“千里馬常有,而伯樂不常有”,Jean-Marie Hullot的經歷驗證了這句古話。正是在“千里馬”和“伯樂”的共同努力之下,才有了今天的Xcode。感謝喬幫主和大神Hullot為我們弄出了這樣一個卓越的開發(fā)工具。
【本文是51CTO專欄作者周兆熊的原創(chuàng)文章,作者微信公眾號:周氏邏輯(logiczhou)】