在2015蘋果WWDC上,最受歡迎和關(guān)注的不是iOS 9和OS X,也不是新的Apple Music,而是蘋果軟件工程副總裁 Craig Federighi 宣布,蘋果的編程語(yǔ)言 Swift 2.0 將會(huì)開(kāi)源。
為什么大家會(huì)如此激動(dòng)?在過(guò)去的15年間,開(kāi)發(fā)者已經(jīng)顯示了對(duì)開(kāi)源工具和平臺(tái)的偏愛(ài),然而蘋果一直讓開(kāi)發(fā)者適應(yīng)自己的技術(shù),遠(yuǎn)離第三方技術(shù)。蘋果這樣做有一定風(fēng)險(xiǎn),有可能會(huì)與開(kāi)發(fā)人員關(guān)系疏遠(yuǎn),也正是這些開(kāi)發(fā)人員一直在開(kāi)發(fā)第三方應(yīng)用或者服務(wù)。程序員想自由選擇自己想要的工作方式 ,要留住他們,蘋果不得不對(duì)外開(kāi)放。
Swift發(fā)展非常迅猛,但近幾年很多新出現(xiàn)的其他的編程語(yǔ)言都較著勁,想吸引開(kāi)發(fā)者的注意。Facebook在使用Hack和D語(yǔ)言;Google開(kāi)源了它的Go語(yǔ)言;Mozilla也推出自己的第一版編程語(yǔ)言Rust。這些編程語(yǔ)言都各有優(yōu)劣,其中會(huì)有一種或者幾種會(huì)成為下一個(gè)軟件開(kāi)發(fā)的標(biāo)準(zhǔn),并且每種編程語(yǔ)言都已經(jīng)開(kāi)源。
重要的是,去年微軟決定開(kāi)源它.NET框架。微軟允許所有的開(kāi)發(fā)人員有Windows以外的系統(tǒng)中使用自己的語(yǔ)言,包括OS X以及iOS ,并且還提供了代碼,使得開(kāi)發(fā)人員更便于根據(jù)自己的需要對(duì) .NET進(jìn)行修改或者延展。蘋果面臨這樣一個(gè)事實(shí),開(kāi)發(fā)者將用微軟的工具來(lái)為開(kāi)發(fā)蘋果產(chǎn)品,因此它只能開(kāi)源Swift。
蘋果的目的
蘋果在去年的WWDC上推出了Swift 1.0,替代Objective C。Objective C的歷史可追溯到1983年,一直是開(kāi)發(fā)iOS應(yīng)用的主要語(yǔ)言。Swift是一種更加現(xiàn)代化的語(yǔ)言,增加許多新的特性,既可以幫助新程序員學(xué)會(huì)編碼,也能使有經(jīng)驗(yàn)的程序員避免出現(xiàn)一些嚴(yán)重的錯(cuò)誤。
盡管蘋果已經(jīng)不是第一次開(kāi)源。蘋果開(kāi)源過(guò)Darwin(它是OS X的基礎(chǔ))和WebKit(Safari 瀏覽器的基礎(chǔ)),但是蘋果不會(huì)開(kāi)源Objective C。理論上似乎可以將Objective C應(yīng)用于其它操作系統(tǒng),但如果沒(méi)有蘋果的幫助,跨平臺(tái)代碼很難。
Xamarin公司開(kāi)發(fā)的工具,能讓開(kāi)發(fā)者用微軟的編程語(yǔ)言,開(kāi)發(fā)運(yùn)行在Windows,Linux,iOS和Android上的軟件。這就意味著開(kāi)發(fā)者不需要用Java為Android開(kāi)發(fā),再用Objective C為iOS開(kāi)發(fā)。他們甚至可以使用同樣的代碼,作為桌面或者服務(wù)器端應(yīng)用的基礎(chǔ)。
盡管大多 iOS 和 OS X 開(kāi)發(fā)人員仍然在使用Objective C 或者Swift,蘋果可以通過(guò)使得Swift用于其它操作系統(tǒng),阻擊微軟。最終的結(jié)果可能是,蘋果的語(yǔ)言用于為其競(jìng)爭(zhēng)對(duì)手開(kāi)發(fā)應(yīng)用。
開(kāi)源到底要多開(kāi)放?
在一份聲明中,蘋果寫道開(kāi)源會(huì)包括Swift系統(tǒng)的核心部分,包括編譯器和標(biāo)準(zhǔn)庫(kù),但在開(kāi)源的程度上細(xì)節(jié)還不是特別清楚。
蘋果很可能會(huì)保留關(guān)鍵產(chǎn)權(quán),就像當(dāng)初的Java那樣。蘋果也可能最終收回Swift的開(kāi)源,就像當(dāng)初蘋果一度承諾將FaceTime作為一個(gè)視頻通信的公開(kāi)標(biāo)準(zhǔn)一樣。不管怎么說(shuō),這對(duì)于作為蘋果的Swift而言都是一個(gè)巨大的轉(zhuǎn)變。
蘋果本身也在協(xié)助將Swift應(yīng)用于Linux中,并且能夠接觸到蘋果用于開(kāi)發(fā)軟件的代碼,其他公司也將能夠支持Swift。然而,蘋果卻沒(méi)有提到要開(kāi)源Cocoa界面,這也是大多數(shù)iOS 和OS X應(yīng)用的一個(gè)核心部分。
不管怎么說(shuō),Swift的開(kāi)源至少給開(kāi)發(fā)人員吃了一顆定心丸,保證他們不會(huì)陷入訴訟當(dāng)中,就像當(dāng)初Google與Oracle關(guān)于Java上漫長(zhǎng)的版權(quán)之爭(zhēng)一樣。Oracle聲稱Google為Android開(kāi)發(fā)了一個(gè)類似于Java的編程平臺(tái),這侵犯了知識(shí)產(chǎn)權(quán)。
將編程語(yǔ)言以及其他的一些開(kāi)發(fā)技術(shù)開(kāi)源之后,像蘋果這樣的公司能夠保證開(kāi)發(fā)人員合法使用技術(shù)。做開(kāi)發(fā)已經(jīng)夠麻煩了,就不要用其它的事來(lái)打擾程序猿了。