一向“圈地自萌”的蘋果為什么選擇將Swift開源?

jopen 10年前發布 | 14K 次閱讀 Swift

蘋果在今年六月的WWDC大會上推出了Swift2.0,并宣布將于今年年底前開放源代碼。而蘋果也在近日正式將Swift語言轉成了開源編程語言,并將其放到代碼托管網站Github中以供更多開發者共同開發。蘋果公司高級副總裁克雷格·費德里希最近接受了外媒的采訪,對 Swift 開源這一行為進行了說明。

開源的基礎

據 悉,Swift的編程語言將在Apache 2.0許可的基礎上推出,Apache 2.0也是微軟去年在.NET框架開源時所使用的許可,軟件開發者將可以對這款新編程語言根據自己的需要進行修改。該代碼將被放在GitHub上托管,其 中包括編譯器、LLDB調試器以及REPL命令行環境、標準核心庫以及代碼配套工程等。在Swift(包括開源部分)中新加入了Swift軟件包管理器, 該管理器將作為用于存儲Swift模塊的早期項目。

雖然其中的絕大部分都符合Apache許可標準,但費德里希表示,蘋果還提供了一種更高的許可運行機制——如果開發者在Swift上創建了代碼,而且其中的部分代碼是從Swift庫中調用的話,開發者將不必再提供該代碼的來源。

蘋果的工程師正在著手把Swift改為使用GitHub repos來以開源的方式開發語言。

一向“圈地自萌”的蘋果為什么選擇將Swift開源?

“Swift將在GitHub上完成開源工作,” 費德里希說,“Swift團隊正在加緊修改的工作進程,其中也包括對Swift 3.0的開發,所有的工作進展都會在GitHub上開放。”

所 以,Swift 3.0將不會再像今年6月公布Swift 2.0那樣在WWDC上得到大量關注,3.0將不會在WWDC 2016上出現,開發者更不會得到Xcode上的beta版。相對的,開發者能夠在WWDC之前就拿到最新版的Swift語言,體驗到下一代Swift的 新變化。

盡管代碼將在GitHub上提供,但Swift社區同樣也是Swift.org的家。在這里,開發者將能夠提交bug并使用bug 追蹤系統,也能夠使用郵件列表或是與Swift工程的博客(蘋果官方博客)進行交流,獲取社區指南、Swift教程文檔或是開發與API設計指南等。換句 話說,你所能想到的任何開源編程語言社區中所提供的服務這里應有盡有。

將不僅限于支持OS X和Linux平臺

蘋 果官方聲稱Swift將不僅能夠支持蘋果自家的平臺還能夠支持Linux,而這正像蘋果在6月份的時候所承諾的那樣。這已經涵蓋了大量的Swift開發者 (他們通常都會運行OS X系統)以及大部分的大眾開發者(他們使用Linux的頻率要遠高于一般用戶)。蘋果的Linux工具包括全新的封包管理器、LLDB調試器以及REPL 命令行環境。

至于Windows等其他平臺,如果需求較多的話,至少在一開始蘋果將會依靠社區來提供支持。

一向“圈地自萌”的蘋果為什么選擇將Swift開源?

“(對 于Windows平臺的支持)在Swift開源的初版中,這并不是我們所首要考慮的問題,” 費德里希說,“我們認為對Linux和我們自家的平臺的支持才能夠為初版打下一個很好的基礎。但是實際上,我們已經具備了把Swift開源移植到其他平臺 的能力,LLVM、Clang以及LLDB這些Swift的基礎技術其實已經完全可以移植到Windows平臺上。我認為這是可以預見的——社區中的某個 人——無論是微軟的領導者還是其他的人,早晚都會這樣去做。“

為何開源?

Swift 開源蘋果公司主要有兩個目的。第一個目的就是讓 Swift 編程更加通用、更加多樣化——除了蘋果平臺的應用,開發者也可以在其他項目中使用這個編程語言。

另外蘋果也非常有遠見,很有野心。費德里希表示:“我們認為未來 20 年 Swift 將成為編程的標準語言。我們認為它將成為未來主要的編程語言之一。”

“一些開發者,包括 IBM 的企業開發者很早之前就開始在 Swift 中開發他們的移動應用,他們就希望能夠將開發者開發的東西、還有一些代碼等部署在云中。” 費德里希說,“而我們認為要想在這方面給他們提供支持的話,最好的辦法就是開源。”

一向“圈地自萌”的蘋果為什么選擇將Swift開源?

而蘋果的另外一個目的則與教育相關:當開發者花時間來學習Swift 時(或者教育工作者教授 Swift 使用方法時),蘋果希望這些技術能夠為更多人所用。

“我們與教育工作者合作,很多教授都有意教授 Swift,因為它是一種富有表現力的語言,能夠引入各種編程概念。Swift 開源能夠讓教育工作者盡快地將其整合,讓它成為核心課程的一部分。”

在今年6月份,蘋果向開發者了解他們過去一年使用 Swift 的體驗時,他們就發現 Swift 的可傳授性強是它最大的賣點。Swift 不僅能夠用于交流編程創意,而且還能夠將它的相關知識利用到更多場合。

“當你第一次學習時,通常會出現的問題是:你的代碼是否被編譯過。而我喜歡Swift的一點就是,在某些情況下,你根本不用去想這些事情,直接輸入代碼就好。希望這將有助于更好地理解正在發生的事情,不再讓人感到頭疼。”

——iOS開發者,APP Camp教師 萊斯利·貝克

雖然開源后給開發者帶來了諸多便利,不過遺憾的是,根據Swift.org中的表述,開發者在把應用程序提交給蘋果的應用程序商店時仍需要在Mac上使用Xcode。

開源會對編程語言帶來什么影響?

在 Swift開源并在此基礎上開發新版本的同時,不但能夠使開發人員更容易地看到蘋果公司在做什么,同樣也使他們能夠更容易直接對該項目作出貢獻。蘋果表 示,從Swift 1.0到2.0,開發者的反饋為開發工作做出了相當大的貢獻。但是同樣的,至少從理論上講,公司將不再成為Swift語言的唯一仲裁者——開發者可以提交 引入請求。Swift.org概述中也提到了當開發人員要提出修改時的工作流程。

“如果你注意到我們的 Swift 2.0 的語言特性的話,你就會發現在錯誤處理、保護信息、可用性和控制上,均是基于開發者使用 Swift 來開發應用的對話來完成的。我們認為,Swift 開源后將獲得進一步發展,這將有利于進一步深化交互。”

一向“圈地自萌”的蘋果為什么選擇將Swift開源?

Swift 雖然只是一個很“年輕”的語言,但是自問世以來卻一直廣受歡迎。而這也使得試圖開發和維護的代碼的開發人員產生了小小的挫敗感。Swift 1.x在半年甚至一年前所創建的代碼可能也不會在今天的Xcode的最新版本中編譯,所以如果有問題的話蘋果肯定是知道的。

“在為開發者提供源發展工具方面,我們是非常開放的。所以如果開發者選擇在Swift中編程的話,我們也會在不斷發展語言的過程中給他們提供適合的工具來幫他們發展源代碼。”

不過蘋果公司也在計劃解決更大的問題,如今有越來越多的開發者正在為該語言的發展做出著貢獻,所以蘋果就更要去積極解決問題。蘋果計劃在 Swift 3.0 中進一步完善源兼容特性。

Swift 會對 Objective-C 產生什么影響?

對于Objective-C,Swift的開源并沒有改變其在蘋果的生態系統中 的位置。它已經存在了好幾年了,它仍然被用來編寫蘋果的平臺上運行的諸多應用程序(包括蘋果自己的),這個數字截至目前仍在持續增加,因為這的確是有必要 的。但Swift顯然是Objective-C未來的發展方向,所以蘋果仍然希望開發者可以用Swift來啟動他們的新項目。

“Objective-C 將不會就此消失。我們還是非常喜歡 Objective-C 這種語言,我們還需要依賴 Objective-C,在蘋果公司有很多工作都需要通過Objective-C來完成。我們會繼續支持Objective-C,繼續完善這種語言,以適 應這個不斷變化的世界。不過對于即將進入我們的平臺,想要開發應用的開發者,我們認為Swift更適合他們。我們覺得從 Swift 入手是非常正確的。但是在可預見的未來,我們會繼續維護、完善和支持 Objective-C 。”

一向“圈地自萌”的蘋果為什么選擇將Swift開源?

開 發者們在談到Swift和Objective-C的使用情況時通常都會這么說:有些人堅持使用Objective-C,因為他們已經熟悉該語言或是因為他 們不希望混合使用Objective-C代碼和Swift代碼,但越來越多的消息顯示,無論是新項目還是老項目,新數據塊都在逐漸被Swift代碼所取 代。

似乎蘋果未來將繼續為Objective-C提供支持,但蘋果何時會停止支持目前并沒有一個確切的消息。不過,沒有人會想被打個措手不 及。Swift的日益成熟、Swift 3.0所承諾的源代碼兼容性、開源版本更加廣泛的應用場景都旨在推動開發者更為舒服的過渡到Swift陣營。

Via arstechnica

轉載自: 雷鋒網

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!