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