蘋果要用 Swift 語言顛覆傳統程式設計

pythontab發表於2014-07-16

美國知名科技媒體《連線》日前對從市場前景、核心優勢和競爭對手等方面對蘋果最新推出的Swift程式語言進行了一番全面剖析。文章認為,雖然Swift作為後來者面臨著諸如Objective-C、C++這類語言以及谷歌、Facebook這些企業的前後夾擊,但Swift自身的巨大優勢以及蘋果裝置在開發者心目中的巨大影響力,還是為其賦予了能夠顛覆傳統程式設計模式的巨大潛力。

以下是文章主要內容:

知 名開發人克里斯-萊特納(Chris Lattner)此前花費了一年半的時間在一款全新程式語言的開發工作上。在這段時間內,他沒有將自己的工作內容向任何一個人透露過。這個專案是在 2010年的夏天正式展開的,當時的萊特納幾乎每個週末和晚上都撲在這個專案中,到2011年底這個全新程式語言的基本架構終於成形。

也 就是在那個時候,萊特納決定把這個秘密專案告訴公司高管。在深入瞭解了這一專案後,這些高管認為該專案非常有潛力,並特地為其指定了數名有經驗的工程師協 助開發。在18個月後,該專案已經成為了該公司最重要的專案之一,大量工程師都參與到了這一專案中,且公司認為這是一個有可能徹底顛覆傳統電腦程式設計流程的 全新語言。

眾所周知,這個專案就是Swift程式語言,而萊特納則是目前蘋果開發者工具部門總監。

今 年6月2日,蘋果首次針對廣大開發者放出了Swift程式語言的測試版本,並對外宣稱這是一個能讓開發者更快、更輕鬆為iOS裝置編寫軟體的工具。萊特納 就讀伊利諾伊大學厄巴納-香檳分校時的研究生導師維克拉姆-艾夫(Vikram Adve)曾經同萊特納一起開發了Swift語言的最基層軟體平臺,但就連他都不知道萊特納竟然獨自一人在這個程式設計專案上花費了如此巨大的心血。

“蘋果實在太保密了,萊特納也深受真傳。我當時只知道他正在負責一個專案,但我並不知道這個專案的具體內容。”艾夫笑著說道。

通 常來說,如果一款程式語言被剛剛編寫完成後,它通常需要多年的時間才能擁有足夠多的開發者使用者,即便該語言擁有像蘋果這樣巨型企業的支援也不例外。舉例來 說,谷歌曾在2009年推出了一個名為“Go”的全新程式語言,雖然這一語言的開發者包括了諸如Unix作業系統聯合開發者、同時也是C語言之父肯-湯普 遜(Ken Thompson)以及前貝爾實驗室研究員盧勃-帕克(Rob Pike)這些業內泰斗,但該語言直到目前還沒有得到全球大多數程式設計師的認可。

但我們 認為,Swift的命運將同Go截然不同,該語言甚至有可能在今秋正式釋出後迅速得到業內的認可,並超過當年Java和C#語言的發展速度。這主要是因為 該語言是一款面向普通開發者的程式語言,它擁有著無與倫比的易用性,即便是最初級的程式設計員都能夠很快掌握該語言。同時,目前有許多的程式設計師都專注於為 iOS平臺編寫應用,此前他們所使用的主要語言是Objective-C,但全新Swift顯然比前者擁有更多優勢,而這也就在一定程度上確保了該語言的 使用基數。

“谷歌Go沒有給予開發者足夠的理由去採用這一語言,而Swift卻並非如此。人們會爭先恐後的擁抱這一全新語言,因為它的程式設計流程相比Objective-C更為簡單。”專注於全球程式語言動態的Tiobe公司總經理保羅-詹森(Paul Jansen)說道。

目 前,儘管Swift還處於自己的測試階段,但程式碼託管網站GitHub上已經有超過2400個專案基於Swift程式碼開發。本月,Swift還登上了 Tiobe釋出的全球討論率最高程式語言第16名的位置。需要指出的是,當谷歌在2009年推出Go語言的時候也曾取得過類似的成績,但該語言隨後在 Tiobe上的排名便一落千丈。然而,詹森認為這樣的情況恐怕不會在Swift身上重演。

“因為Swift處於蘋果生態系統的最核心地位,而他們只要不將其搞砸就可以了。”C++語言領域的泰斗級人物安德烈-亞歷克斯德蘇(Andrei Alexandrescu)說道。

蘋果要用Swift語言顛覆傳統程式設計

未來前景

目前,萊特納是蘋果開發者工具部門總監,他的主要工作是負責管理所有可以讓蘋果工程師和開發者為公司裝置編寫程式的工具。在此之前,萊特納曾主持開展了構架編譯器框架系統LLVM的開發工作,而LLVM也恰恰是目前蘋果開發工具Xcode的基礎架構平臺。

2005 年,萊特納加盟蘋果,並開始致力於LLVM在蘋果開發體系中的應用。同時,蘋果也一直是LLVM計劃的主要資助方之一。我們曾在撰寫這篇文章時向萊特納提 出了採訪邀請,但後者表示只有得到蘋果公關部門的批准才能接受採訪。不過,萊特納還是在自己的部落格中簡單談到了這個專案的開展初衷,那就是他希望 Swift能夠同蘋果現有開發工具相容,甚至可以讓開發者在使用Objective-C的同時使用Swift。

平息而論,蘋果仍然需要提供更加充足的理由來鼓勵開發者從Objective-C轉投Swift平臺。畢竟,現有開發者大都從未接觸過Swift。

“我是第一個、也是目前唯一一個擁有四年Swift使用經驗的開發者。”萊特納在Twitter上這樣說道。

對此,已經為蘋果各類硬體產品編寫了15年程式的資深開發人員麥克-阿什(Mike Ash)也承認:“大多數全新程式語言都會止步不前,少數獲得開發者青睞的語言通常也需要經歷許多年的過渡時期。”

但 話雖如此,阿什目前已經開始利用這一全新語言編寫應用了。因為雖然Swift並見得比諸如C#、Ruby、Python優秀多少,但它還是相較於上世紀 80年代問世的Objective-C有著太多的優勢。當下,許多程式設計師都認為Objective-C句法規則太過怪異,而Swift的設計則更加貼心, 並內建了許多可以幫助開發人員的實用糾錯工具。

核心優勢

在Swift語言中,最為出彩的功能或許就Playgrounds了。該功能提供了不可思議的互動效果,能讓Swift程式碼在編寫過程中實時進行編譯和效果顯示。最為重要的是,這一服務能夠使開發者的程式設計變得更具效率,同時幫助Swift和其他程式語言展開差異化競爭。

蘋果要用Swift語言顛覆傳統程式設計

目 前,諸如Objective-C、C++這類語言通常要求開發者首先編寫好程式碼,等待編撰器將程式碼轉換為可執行的軟體程式,然後開發者才能夠操作這一可執 行軟體。而諸如Python、Ruby和PHP這些語言則允許開發者在編寫程式碼的同時測試自己的軟體,但該軟體的實際執行速度卻會大打折扣。

然而,Swift的出現就徹底解決了上述兩者的不足,該語言可以在不犧牲程式執行速度的前提下使開發者更為高效的編寫程式碼。

“Swift是一個對開發者和裝置都非常友好的語言,雖然這一語言的實際表現還有待測試,但蘋果到目前為止的工作成果看起來相當了不起。”麥克-阿什這樣說道。

市場競爭

需 要指出的是,蘋果並非是唯一一家試圖在程式設計領域掀起波瀾的企業,包括谷歌、Facebook、Mozilla這些公司也都在研發自己的程式語言平臺,且其 中部分語言甚至已經比Swift取得了更大的成就。比如,谷歌已經利用Go語言重新定義了自己的內部工作流程,而Facebook則利用旗下開源程式語言 “Hack”重新打造了自己的大量線上服務。

更為重要的是,以上這些企業所推出的程式設計 語言大多是開源的,這就意味著它們或將可以更容易面向全球開發者進行推廣。然而,Swift並不是一個開源程式語言(至少目前還不是)。同時,考慮到蘋果 一貫的軟硬體高度控制的做法,外界對於該公司政策是否會對Swift的未來推廣構成負面影響也持有保留意見。

“目前業內對於蘋果是否會限制該語言的前進方向存在著一定的擔憂,就比如該公司是否會允許開發者利用其編寫跨平臺程式碼等。”阿什解釋道。

不 過,阿什相信Swift的開源化將只是時間問題而已,因為克里斯-萊特納從來都是程式設計開源理念的支持者,他此前所開發的輕量級編譯器Clang就是一個最 好的例子。當然,即便Swift始終處於蘋果的嚴格管控之下,我們也認為該語言的開發者採用率也將超越近年來所推出的任何一個程式語言,因為這就是諸如 iPhone、iPad和Mac這些裝置施加在開發者身上的魔力所在。(湯姆)


相關文章