Swift 3.0第1步,面向全部開發者開源

在移動開發中,Android開發一直比較受歡迎的緣由之一就是其是一個開源的,有不少開源項目、代碼能夠用,這也是不少iOS開發者羨慕不已的地方。但值得慶賀的是,隨着swift編程語言的發展,北京時間12月4日,蘋果正式宣佈Swift面向全部開發者開源,哇咔咔~~ios

對於iOS開發者而言,這意味着什麼呢?即日起,感興趣的開發者們能夠在Swift.org和GitHub下載源代碼和各類研發工具,全部開發人員均可以用能夠用swift語言作多版本遊戲研發,固然他們也一定將對swift將來的發展作出重要的貢獻和影響。編程

雖然蘋果公司不多開源本身家的東西,但Swift開源並不意外,今年年初的時候,該公司就開放了ResearchKit,而Safari瀏覽器引擎WebKit也早已經向開發者們開放。儘管開發者們能夠下載Swift並開始用它來打造新應用,但開源版本作的應用並不能直接在App Store發佈,你仍然須要蘋果的Xcode才能這麼作。不過,出於蘋果對安全性和穩定性的考慮,這一點也在乎料之中。swift

蘋果軟件工程高級副總裁Craig瀏覽器

Federighi在接受採訪時講述了Swift的開源、將來發展以及開發者們所關注的該語言的成熟和穩定問題,更多詳細信息請看Swift英文官網。如下是Gamelook根據歐美多家媒體的報道整理的詳細內容:安全

Swift將在Apache 2.0受權協議下開源,微軟去年開放.NET框架的時候也使用了該協議,該項目將於GitHub上線而且包含編譯器、LLDB debugger、REPL命令行環境、標準以及核心庫(library)以及支持項目的代碼。新增的Swift Package Manager也將開源,該工具將做爲‘初期的’Swift模塊庫而且會根據社區的修改而不斷改變。框架

其中,大多數都在標準Apache受權的協議之下,不過Federighi表示蘋果還加入了一個更爲寬容的運行例外,「這樣若是你用Swift寫了代碼,並且Swift庫中的一部分是用你本身的代碼生成,這種狀況下你就沒必要提供歸屬關係。」編程語言

蘋果的Swift工程師們將會開始使用GitHub社區帶來的貢獻,在開放環境下繼續研發該語言。Federighi說,「Swift團隊將在徹底在開放的GitHub社區進行開發,由於他們天天都在研發並修改這個語言,包括它們在Swift 3.0上的工做,全部都將在GitHub開放社區進行。」工具

因此,開發者們不用等到明年6月份的WWDC等待大量的Swift 3.0信息,由於他們已經能夠在Swift網站看到該語言的下一個主要版本的發展方向。雖然代碼自己能夠在GitHub得到,不過Swift社區則須要登陸Swift.org,開發者們能夠報告bug並得到-tracking系統、郵件列表、一個Swift工程師博客、社區指南、Swift教程和文檔以及開發者與API設計指南。換句話說,這些東西向任何編程語言開發者們開放。學習

平臺:官方OS X和Linux、爲其餘系統提供社區支持網站

目前官方支持的移植版本包括蘋果本身的平臺與Linux平臺,這也是該公司在6月份所承諾的,蘋果的Linux工具包括對package manager的支持、LLDB debugger和REPL命令行環境。至於其餘平臺,包括Windows在內,至少蘋果會根據需求在一開始主要依靠社區來提供支持。

Federighi說,「Windows支持並不在咱們的首發考慮範圍以內,咱們目前還不考慮直接作出來,咱們認爲Linux是不錯的開始,但咱們對於其餘平臺的貢獻者也是開放的,無論是核心項目仍是LLVM、Clang和LLDB,咱們都向開發者們開放,這些Swift的核心工具已經被移植到了Windows平臺,我認爲社區裏必定會有人作Windows版本的,無論是微軟仍是其餘公司。」

爲何要開放Swift

蘋果開放Swift主要有兩個目標,首要並且最爲明顯的意圖是,讓Swift代碼更爲便捷和多功能化,使得蘋果平臺以外的項目也可使用。該公司的長期規劃更具備野心,Federighi說,「咱們認爲Swift是人們將來20年應該使用的編程語言,是下一個最主要的編程語言。」

他接着說,「不少的開發商,包括像IBM同樣的企業級開發商在內,使用Swift研發本身的移動應用都還處於早期階段,他們但願充分利用研發人員的才能,甚至能夠把這些代碼運用到雲技術領域,咱們認爲最好的實現方式就是,咱們把Swift進行開源。」

第二個目標就是出於教育方面的目的,當開發者們投入時間學習Swift的時候,或者有教育者們開始Swift教學的時候,蘋果但願這些技術可以被更普遍地應用。Federighi說,「咱們在和教育家們合做,不少教授都願意教Swift課程,由於這是一種很是具備表達力的語言,用來介紹各類各樣的編程概念都很是不錯。把Swift進行開源可讓他們更好地使用,看成他們核心課程的一部分。」

在今年六月份和開發者們聊天的時候,Swift便於教學的特色是當時該語言主要的賣點之一,Swift不只能夠交流編程想法,並且能夠把這些知識用到多個平臺。

一名iOS開發者兼App Camp for Girls教師Lesley Baker說,「當你開始學的時候,一般的問題是你要不要些編譯器,我最喜歡Swift的一點是,在某些狀況下,不用考慮這些事情就能夠進行編譯,但願這會讓學生們更好地理解,不讓他們對編程語言太過於沮喪。」

據Swift.org的信息顯示,儘管開發者們能夠得到Swift開源代碼,但用它作出來的應用想要登上蘋果的應用商店仍然須要在Mac上使用Xcode實現。

開源會對Swift帶來什麼改變?Swift語言何時能夠變得穩定化?

經過對Swift語言開源並公開研發新版本進度,可讓開發者們更容易知道蘋果在作什麼,也可讓開發者們更容易直接爲該項目帶來貢獻。蘋果公司表示,開發者們的反饋已經給新功能的研發帶來了指導意義,因此該語言才從1.0發展到了2.0,但從理論上來說,該公司將再也不是惟一決定Swift發展方向和功能取捨的一方,開發者們能夠提交投票請求,當開發者們但願帶來變化的時候,Swift.org將會公開這個投票過程。

Federighi說,「若是你仔細看咱們在Swift 2.0裏推出的不少新功能,包括錯誤處理以及guard statements、可用性以及控制等等,這些都是基於咱們和Swift開發者們的談話而來的,隨着Swift的開源,咱們認爲能夠和開發者們進一步交流。」

Swift仍然是一門新語言,雖然大多數開發者的接受度都不錯,但它仍然給開發者們研發和維護代碼帶來了問題。六個月或者一年前寫的Swift 1.x代碼可能就已經不能和當前版本的Xcode兼容了,這個問題很明顯蘋果公司是意識到了的。Federighi說,「咱們過去一直很是坦誠地說,將會給咱們的開發者們提供資源升級工具,因此,若是它們寫了本身的Swift代碼,隨後咱們更新了語言,那麼咱們就會提供工具幫助他們把這些源代碼進行升級。」

可是,該公司還計劃解決更大的問題,這個問題就是讓更多的開發者們直接地爲Swift語言作出貢獻。蘋果公司對於Swift

3.0的一個主要目標是讓資源兼容性更進一步,這樣用Swift寫出的代碼能夠隨着該語言的進化而升級,但開發者們須要重寫或者改變的地方就會更少甚至根本不須要改變。

這和Objective-C有什麼關係?

至於Objective-C語言,目前Swift的開源對其影響幾乎是沒有的,這並不會改變它在蘋果生態系統中的地位。畢竟這個語言已經存在了數年,蘋果平臺上不少用該語言作的應用還在運行,包括蘋果本身的一些Objective-C應用也在運行,在須要的狀況下,蘋果還會給該語言增長新東西。但Swift很明顯是蘋果公司最專一投入的語言,該公司更願意開發者們儘量使用Swift語言作研發。

Federighi說,「Objective-C不會消失,咱們仍然熱愛這個語言,咱們對它的依賴性依然很大,而且蘋果內部也用Objective-C作了大量的工做,咱們將會繼續支持Objective-C,並且將繼續在須要的狀況下爲之進行升級。咱們推薦新開發者們使用Swift語言,咱們以爲Swift纔是正確的開始,但咱們在能夠預見的將來,仍將維護、更新和支持Objective-C。」

這個聲明其實開發者們已經很熟悉了,有些開發者表示它們習慣了Objective-C或者是不但願把兩種語言混起來用,因此沒有使用新語言,但也常常有開發者們表示,它們的新項目和大量的老項目都在用Swift編寫。

蘋果彷佛在可預見的將來仍會繼續支持Objective-C,但若是該公司決定再也不支持了呢?沒有人但願到時候措手不及。Swift在不斷地成熟,無論是Swift 3.0的資源兼容性仍是這次宣佈的開源版本,相信都會給開發商們更多轉換語言的理由。

雖然蘋果公司短時間內沒有作其餘開源版本的想法,但開源Swift就意味着其餘開發者們能夠用它爲Windows和Android平臺研發應用,蘋果公司以前曾經公開表示,但願Swift成爲將來20年最主要的編程語言之一,若是這是真的,那麼它就必須支持全部主要的PC和移動平臺,這對於蘋果公司也是有利的,使用該語言的人越多,能夠爲蘋果設備研發應用和遊戲的開發者也就越多。

開源還可讓開發者們對這種語言更有信心,理論上來講,即便有一天蘋果公司決定放棄這個語言,開發者們仍然能夠繼續推進Swift的發展,現有的代碼也能夠繼續得到支持,固然,目前沒有任何跡象代表蘋果會放棄本身的新語言。有了開發者們的參與,蘋果可讓社區幫助Swift變得更好,直接爲該語言作出貢獻。

無論怎麼說,swift開源了,對iOS開發者而言都是極好的消息。固然對於蘋果公司而言也是利益遠遠大於弊端,咱們也期待之後蘋果公司能有更多面向iOS開發者開源的東西。

相關文章:《Swift 代碼規範



文/小麥麥子(簡書做者) 原文連接:http://www.jianshu.com/p/94b9b5ac4551 著做權歸做者全部,轉載請聯繫做者得到受權,並標註「簡書做者」。
相關文章
相關標籤/搜索