蘋果在今年六月的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將在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等其他平臺,如果需求較多的話,至少在一開始蘋果將會依靠社區來提供支援。
“(對於Windows平臺的支持)在Swift開源的初版中,這並不是我們所首要考慮的問題,”
費德里希說,“我們認為對Linux和我們自家的平臺的支援才能夠為初版打下一個很好的基礎。但是實際上,我們已經具備了把Swift開源移植到其他平臺的能力,LLVM、Clang以及LLDB這些Swift的基礎技術其實已經完全可以移植到Windows平臺上。我認為這是可以預見的——社區中的某個人——無論是微軟的領導者還是其他的人,早晚都會這樣去做。“
為何開源?
Swift 開源蘋果公司主要有兩個目的。第一個目的就是讓 Swift 程式設計更加通用、更加多樣化——除了蘋果平臺的應用,開發者也可以在其他專案中使用這個程式設計語言。
另外蘋果也非常有遠見,很有野心。費德里希表示:“我們認為未來 20 年 Swift 將成為程式設計的標準語言。我們認為它將成為未來主要的程式設計語言之一。”
“一些開發者,包括 IBM 的企業開發者很早之前就開始在
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 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和Objective-C的使用情況時通常都會這麼說:有些人堅持使用Objective-C,因為他們已經熟悉該語言或是因為他們不希望混合使用Objective-C代碼和Swift代碼,但越來越多的消息顯示,無論是新專案還是老項目,新資料塊都在逐漸被Swift代碼所取代。
似乎蘋果未來將繼續為Objective-C提供支持,但蘋果何時會停止支援目前並沒有一個確切的消息。不過,沒有人會想被打個措手不及。Swift的日益成熟、Swift 3.0所承諾的原始程式碼相容性、開源版本更加廣泛的應用場景都旨在推動開發者更為舒服的過渡到Swift陣營。
Via arstechnica
沒有留言:
張貼留言