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