文/水哥
谷歌從特斯拉挖來了一位重量級(jí)人物——蘋果Swift語言之父克里斯拉特納,此人實(shí)力和在開發(fā)者世界的影響不亞于安卓之父安迪魯賓。
據(jù)國(guó)外科技媒體AppleInsider報(bào)道,曾在蘋果公司主導(dǎo)編程語言Swift開發(fā)的全球著名程序員克里斯拉特納在6個(gè)月前從蘋果跳槽到特斯拉后,又于今年8月下旬入職谷歌參與Google Brain項(xiàng)目,該消息在拉特納的個(gè)人推特上得到證實(shí)。
蘋果、Swift和拉特納的那些事
說起編程語言Swift,我們不由去挖掘一下蘋果公司的歷史文本。開發(fā)者世界眾所周知的是,Swift是一門年輕的編程語言,誕生于2014年蘋果公司開發(fā)者工具部。而在那之前蘋果操作系統(tǒng)家族包括mac OS、iOS以及后來的watchOS的御用編程語言都是Objective-C。
Objective-C是C語言的嚴(yán)格超集,所以它的起源較早。1988年,離開蘋果公司的喬布斯創(chuàng)建了NeXT公司并購(gòu)買了Objective-C的授權(quán),擴(kuò)展了知名的開源編譯器GCC,然后基于此開發(fā)了一些庫,這樣一來形成了一套開發(fā)環(huán)境,這套工具在1996年喬布斯回歸后成了神一樣的利器,它奠定了至今為止蘋果操作系統(tǒng)家族的基礎(chǔ)。
GCC既是Objective-C的編譯器,也是GNU項(xiàng)目的一部分,重要的是后者,這意味著GCC注定在自由軟件勢(shì)力的約束之下(比開源社區(qū)更嚴(yán)格的一股勢(shì)力)。而鑒于蘋果封閉商業(yè)化的操作系統(tǒng)屬性與自由軟件精神相悖,必然導(dǎo)致Objective-C在GCC編譯器處理的優(yōu)先級(jí)低下且支持度不高。因此蘋果公司一直想尋找GCC的開源替代品,他們注意到了克里斯拉特納和他的LLVM項(xiàng)目。
LLVM是一套用于開發(fā)編譯器的工具庫,采用開源協(xié)議BSD,相比GCC的GPL協(xié)議對(duì)商業(yè)軟件更加友好和寬松。蘋果資助了LLVM項(xiàng)目并直接雇傭了拉特納,在拉特納的幫助下,蘋果逐漸建立起用于取代GCC的LLVM編譯器架構(gòu)。2005年拉特納發(fā)起了以LLVM為后端的編譯器前端項(xiàng)目Clang,旨在完全取代GCC。那一刻起蘋果真正獲得了操作系統(tǒng)層級(jí)的核心競(jìng)爭(zhēng)力,邁出了與微軟分庭抗禮的起點(diǎn)。
有了上述優(yōu)勢(shì)之后,蘋果開始著手優(yōu)化自己的核心競(jìng)爭(zhēng)力,首先要從御用編程語言開始。Objective-C跟隨蘋果多年,甚至商標(biāo)權(quán)也屬于蘋果,但是作為一個(gè)傳統(tǒng)的面向?qū)ο蟾呒?jí)編程語言,Objective-C在某些方面跟不上時(shí)代趨勢(shì)。移動(dòng)時(shí)代不僅僅做大了業(yè)界的產(chǎn)值蛋糕,也擴(kuò)大了開發(fā)者群體,這些年開發(fā)者的數(shù)量在增加,他們有的來自于PC端,有的則是直接專注移動(dòng)開發(fā)的新手,所以整體素質(zhì)良莠不齊,整個(gè)領(lǐng)域出現(xiàn)了更多呼吁編程思想變革的趨向,那就是高內(nèi)低耦、模塊化、細(xì)分化和流水線化。更多的程序員更擅長(zhǎng)用現(xiàn)成的庫、框架、工具來快速搭建一個(gè)應(yīng)用,所以開發(fā)者世界也不時(shí)傳出了“人生苦短,我用Python”這類詼諧的聲音。因此傳統(tǒng)的編程語言將退居幕后,服務(wù)于底層和中間件,把應(yīng)用層的開發(fā)交給新的編程語言是一種趨勢(shì)。
蘋果公司在看清這種趨勢(shì)上趕了個(gè)早集,2010年時(shí)任開發(fā)者軟件部門總監(jiān)的拉特納著手設(shè)計(jì)新的編程語言Swift,從而盡早過渡、逐步取代Objective-C。Swift是第一個(gè)既滿足軟件工程標(biāo)準(zhǔn)又像腳本語言一樣富有表現(xiàn)力的編程語言,它的特點(diǎn)是敏捷、超前又不失嚴(yán)謹(jǐn),對(duì)初學(xué)者更加友好,這對(duì)蘋果OS平臺(tái)能否吸引更多開發(fā)者至關(guān)重要。從WWDC2014上線到2015年宣布開源再到今日,Swift已經(jīng)吸引了數(shù)量龐大的開發(fā)者,加上蘋果對(duì)編譯器的優(yōu)化、在開發(fā)環(huán)境Xcode中優(yōu)化集成并力推Swift,以及對(duì)現(xiàn)有框架Cocoa和Cocoa Touch較好繼承,這使得Swift在整個(gè)iOS/Mac工程中的代碼占比越來越大。Swift這兩年發(fā)展迅速,在Tiobe排行榜上的位置逐年攀升,現(xiàn)已成為業(yè)界公認(rèn)的語言新秀Python的強(qiáng)勁對(duì)手。
拉特納為什么從特斯拉辭職
回顧了Swift和拉特納的故事后,幾個(gè)問題值得分析。首先是拉特納為什么從特斯拉辭職。經(jīng)媒體了解,拉特納在特斯拉自動(dòng)駕駛軟件開發(fā)副總裁的崗位上工作了6個(gè)月,他委婉地表示這一崗位對(duì)他并不合適。拉特納的職業(yè)生涯不同于安迪魯賓或者托尼法德爾這類產(chǎn)品經(jīng)理,前者自入職蘋果公司以來一直從事開發(fā)者工具設(shè)計(jì),拉特納在開發(fā)者群體中有很高的聲譽(yù),但在職業(yè)經(jīng)理人的圈子里卻鮮有見聞。自動(dòng)駕駛汽車屬于跨界產(chǎn)品,整個(gè)項(xiàng)目是龐大的系統(tǒng)工程,模塊間并非低耦,千絲萬縷的需求難以被單領(lǐng)域的項(xiàng)目管理者掌控,這對(duì)于拉特納來說是個(gè)極大的難題。而Google Brain對(duì)他而言是個(gè)較好的選擇,比如給AI系統(tǒng)TensorFlow做做庫的優(yōu)化,正是拉特納所擅長(zhǎng)的。
拉特納跳槽谷歌是個(gè)大事件
其次是拉特納投身谷歌,對(duì)安卓和蘋果陣營(yíng)的商業(yè)格局有什么影響,以及谷歌未來的布局會(huì)對(duì)業(yè)界風(fēng)向產(chǎn)生什么變化。今年年初拉特納從蘋果公司離職出走的原因其實(shí)很簡(jiǎn)單,其任職11年給蘋果帶來了不少開源風(fēng)格,也一直致力于推動(dòng)組織與開源社區(qū)的關(guān)系實(shí)現(xiàn)成果和知識(shí)的共享,但蘋果的保密文化始終讓他感到疲憊。拉特納的離去或許對(duì)蘋果的核心競(jìng)爭(zhēng)價(jià)值造成影響,但只要蘋果是一個(gè)在軟件領(lǐng)域善于保存組織知識(shí)資產(chǎn)的高科技公司,就不會(huì)太大問題。據(jù)悉,蘋果已任命另一位開發(fā)者項(xiàng)目經(jīng)理特德克里梅內(nèi)克接收拉特納的工作。
拉特納的投奔對(duì)于谷歌而言絕對(duì)是久逢甘露,事實(shí)上谷歌對(duì)Swift早有覬覦。眾所周知的是,谷歌因卷入與甲骨文的Java版權(quán)案由來已久,目前Java案定格在2016年5月美國(guó)舊金山聯(lián)邦法庭陪審團(tuán)做出的裁決暫時(shí)對(duì)谷歌有利,但是甲骨文并未善罷甘休,今年2月甲骨文向美國(guó)聯(lián)邦巡回法院上訴法庭上訴,開啟了雙方六年來的第四輪的較量。假如將來Java案落定對(duì)甲骨文有利,那么其結(jié)果對(duì)于谷歌、對(duì)于整個(gè)安卓平臺(tái)生態(tài)包括安卓開發(fā)者群體的影響是巨大的。Java對(duì)于安卓而言,是牽一發(fā)而動(dòng)全身的存在。
這些年,因?yàn)閷@傅年P(guān)系谷歌一直試圖削弱Java對(duì)安卓的影響,比如改用OpenJDK來重塑系統(tǒng)的部分代碼。但是谷歌對(duì)此并不滿意,要想完全擺脫掣肘必須尋求新的開發(fā)工具對(duì)平臺(tái)生態(tài)徹底改造。在這方面谷歌曾做過一些努力,比如考慮用Kotlin語言過渡,但仍不盡人意。當(dāng)2015年底蘋果宣布Swift語言開源時(shí),谷歌終于把目標(biāo)落在了Swift上。在2016年4月的倫敦會(huì)議上,谷歌、Facebook、Uber三家共同討論了Swift語言的實(shí)用性,谷歌甚至向外媒透露考慮將來用Swift作為安卓軟件開發(fā)的“一級(jí)語言”。
安卓的底層是C,部分中間件是C++,UI和應(yīng)用層是Java(如今還有很多Python的代碼),對(duì)系統(tǒng)和APP生態(tài)的重塑恐怕是個(gè)漫長(zhǎng)的過程。但Swift有較好的兼容性和易用性,同時(shí)擁有龐大的開發(fā)者群體,加之用Swift語言來開發(fā)安卓應(yīng)用的可行性早已被證實(shí),由此看來這條路徑愈加趨向現(xiàn)實(shí)。現(xiàn)在Swift之父直接加盟谷歌,由此人主導(dǎo)開啟安卓平臺(tái)生態(tài)的重塑,可能性非常之大。