Swift難以主導Android平臺的四個理由
譯文【51CTO.com快譯】谷歌是否會將蘋果的Swift語言視為Android平臺上的“一等公民”? 讓Swift成為Android平臺上的主流開發(fā)選項無疑困難重重。在今天的文章中,我們將一同探討谷歌為何仍然需要倚重Java。
要找到答案,我們不妨考慮另一個更為具體的問題:谷歌需要投入多大力量才能讓Swift成為Android開發(fā)者與用戶的***?另外,谷歌為什么要費力選擇這樣一條坎坷而漫長的道路?
難題:Android部分
從Android轉(zhuǎn)移至Swift就如同我們舉家移民一樣困難。首先,谷歌需要為Android開發(fā)Swift運行時,并保證其功能與現(xiàn)有Java運行時一一對應。谷歌在這方面已經(jīng)做出了一些嘗試——包括將Dalvik VM替換為速度更快的ART運行時,但二者仍以Java為基礎。
更困難的是,Swift幾乎無法成為Android平臺上的***語言。投入Swift懷抱的工作必須逐步完成——即首先同時使用Swift與Java VM,而后慢慢只保留Swift選項。這種過渡需要耗時數(shù)年,特別是在Android這樣廣泛普及的生態(tài)系統(tǒng)當中。
蘋果也面臨著類似的難題,因為其在過去兩年中同樣需要在生態(tài)系統(tǒng)中同時維護Swift與objective-c。在這一系統(tǒng)當中,蘋果擁有著絕對的主導權(quán)。但Android相對來說麻煩更多,因為其擁有大量運營商、手機制造商再加上谷歌自身這三股重要力量需要平衡。
最終,這一舉措還需要Android開發(fā)者的積極加入——而大多數(shù)人對Swift并不太感興趣。
難題:開發(fā)者部分
除了谷歌制定決策外,開發(fā)者也需要加入進來才能保證Swift順利過渡至Android。
當初Android之所以選擇了Java,是因為其擁有豐富的開發(fā)資源以及從業(yè)者基礎。但更年輕且測試工作還不夠完善的Swift則缺少同樣的發(fā)展動力。
不過Swift確實勢頭強勁,各開發(fā)商的認同已經(jīng)讓其在今年4月的Tiobe編程語言排行中位列前二十(目前為第十五名)。
當然,開發(fā)者也需要耗費相當長的時間來了解并徹底掌握新的語言——這意味著Swift將與Java繼續(xù)共存下去。
由甲骨文轉(zhuǎn)向蘋果
就目前來講,Android計劃使用OpenJDK而非甲骨文的Java,這主要是由于后者總是在拿后者的知識產(chǎn)權(quán)騷擾谷歌的開發(fā)工作。但毫無疑問,甲骨文在未來仍將繼續(xù)主導Java的發(fā)展方向。
同樣的,Swift則是蘋果的寵兒。即使已經(jīng)被轉(zhuǎn)為開源,這也只是Swift為了長久發(fā)展并在跨平臺應用中得到肯定的途徑。如果其能夠降低平臺與運行時對專有技術(shù)的高度依賴性,相信谷歌也將不斷且積極地推動Swift轉(zhuǎn)型。
但需要再次強調(diào),Swift的前進方向由蘋果所掌握。谷歌當然不可能希望自己被關(guān)鍵性競爭對手所控制——即使相關(guān)技術(shù)方案屬于開源項目。從理論角度講,谷歌確實可以為Swift打造fork并借此取得主動,但對完整語言的維護與管理工作將帶來高昂的成本。
按谷歌的思路,轉(zhuǎn)向Go也許更為靠譜
如果谷歌方面真的希望擺脫第三方語言與運行時的束縛,那么由Java轉(zhuǎn)向Swift可能并非***的選擇。內(nèi)部建立語言、運行時及工作鏈才是理想途徑:Go,或者說Golang,正是谷歌的救世主。
Go目前已經(jīng)被應用于移動開發(fā)領域。其1.5及更高版本能夠同時支持Android與iOS,且具備“app”軟件包,意味著開發(fā)者能夠為這兩套平臺編寫全Go應用。當然需要指出,移動設備對Go的支持能力尚處于實驗性階段。
如果谷歌公司將Go或者Swift作為Java之外的Android平臺補充方案,那么還有大量工作需要逐步完成。就目前來看,Android生態(tài)系統(tǒng)在相當長的周期內(nèi)仍將以Java為核心。
【51CTO.com獨家譯稿,合作站點轉(zhuǎn)載請注明來源】