歡迎加入QQ討論群258996829
月之殘骸 頭像
蘋果2袋
2
月之殘骸

一向搞“小圈圈”的蘋果為什么選擇將 Swift 開源?

發(fā)布時(shí)間:2015-12-13 14:28  回復(fù):0  查看:2867   最后回復(fù):2015-12-13 14:28  

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

開源的基礎(chǔ)

據(jù)悉,Swift 的程序語言將在 Apache 2.0 許可的基礎(chǔ)上推出,Apache 2.0 也是微軟去年在 .NET 框架開源時(shí)所使用的許可,軟件開發(fā)者將可以對(duì)這款新程序語言根據(jù)自己的需要進(jìn)行修改。該程序碼將被放在 GitHub 上托管,其中包括編譯器、LLDB 調(diào)試器以及 REPL 命令行環(huán)境、標(biāo)準(zhǔn)核心庫以及程序碼配套工程等。在 Swift(包括開源部份)中新加入了 Swift 軟件包管理器,該管理器將做為用于儲(chǔ)存 Swift 模組的早期專案。

雖然其中的絕大部份都符合 Apache 許可標(biāo)準(zhǔn),但費(fèi)德里希表示,蘋果還提供了一種更高的許可運(yùn)行機(jī)制——如果開發(fā)者在 Swift 上創(chuàng)建了程序碼,而且其中的部份程序碼是從 Swift 庫中調(diào)用的話,開發(fā)者將不必再提供該程序碼的來源。

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

“Swift 將在 GitHub 上完成開源工作,” 費(fèi)德里希說,“Swift 團(tuán)隊(duì)正在加緊修改的工作進(jìn)程,其中也包括對(duì) Swift 3.0 的開發(fā),所有的工作進(jìn)展都會(huì)在 GitHub 上開放?!?

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

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

將不僅限于支持 OS X 和 Linux 平臺(tái)

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

至于 Windows 等其他平臺(tái),如果需求較多的話,至少在一開始蘋果將會(huì)依靠社交來提供支持。

Swift_leiphone120702

“(對(duì)于 Windows 平臺(tái)的支持)在 Swift 開源的初版中,這并不是我們所首要考慮的問題,” 費(fèi)德里希說,“我們認(rèn)為對(duì) Linux 和我們自家平臺(tái)的支持才能夠?yàn)槌醢娲蛳乱粋€(gè)很好的基礎(chǔ)。但是實(shí)際上,我們已經(jīng)具備了把 Swift 開源移植到其他平臺(tái)的能力,LLVM、Clang 以及 LLDB 這些 Swift 的基礎(chǔ)技術(shù),其實(shí)已經(jīng)完全可以移植到 Windows 平臺(tái)上。我認(rèn)為這是可以預(yù)見的——社交中的某個(gè)人——無論是微軟的領(lǐng)導(dǎo)者還是其他的人,早晚都會(huì)這樣去做。”

為何開源?

Swift 開源蘋果公司主要有兩個(gè)目的。第一個(gè)目的就是讓 Swift 程序語言更加通用、更加多樣化——除了蘋果平臺(tái)的應(yīng)用,開發(fā)者也可以在其他項(xiàng)目中使用這個(gè)程序語言。

另外蘋果也非常有遠(yuǎn)見,很有野心。費(fèi)德里希表示:“我們認(rèn)為未來 20 年 Swift 將成為撰寫程序的標(biāo)準(zhǔn)語言。我們認(rèn)為它將成為未來主要的程序語言之一。”

“一些開發(fā)者,包括 IBM 的企業(yè)開發(fā)者很早之前就開始在 Swift 中開發(fā)他們的移動(dòng)應(yīng)用程序,他們就希望能夠?qū)㈤_發(fā)者開發(fā)的東西、還有一些程序碼等部署在云端中?!?費(fèi)德里希說,“而我們認(rèn)為要想在這方面給他們提供支持的話,最好的辦法就是開源?!?

Swift_leiphone120703

而蘋果的另一個(gè)目的則與教育相關(guān):當(dāng)開發(fā)者花時(shí)間來學(xué)習(xí) Swift 時(shí)(或者教育工作者教授 Swift 使用方法時(shí)),蘋果希望這些技術(shù)能夠?yàn)楦嗳怂谩?

“我們與教育工作者合作,很多教授都有意教授 Swift,因?yàn)樗且环N富有表現(xiàn)力的語言,能夠引入各種程序撰寫概念。Swift 開源能夠讓教育工作者盡快地將其整合,讓它成為核心課程的一部份?!?

在今年 6 月份,蘋果向開發(fā)者了解他們過去一年使用 Swift 的體驗(yàn)時(shí),他們就發(fā)現(xiàn) Swift 的可傳授性強(qiáng)是它最大的賣點(diǎn)。Swift 不僅能夠用于交流程序撰寫創(chuàng)意,而且還能夠?qū)⑺南嚓P(guān)知識(shí)利用到更多場(chǎng)合。

“當(dāng)你第一次學(xué)習(xí)時(shí),通常會(huì)出現(xiàn)的問題是:你的程序碼是否被編譯過。而我喜歡 Swift 的一點(diǎn)就是,在某些情況下,你根本不用去想這些事情,直接輸入程序碼就好。希望這將有助于更好地理解正在發(fā)生的事情,不再讓人感到頭疼?!薄猧OS 開發(fā)者,App Camp 教師萊斯利·貝克

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

開源會(huì)對(duì)程序語言帶來什么影響?

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

“如果你注意到我們的 Swift 2.0 的語言特性,你就會(huì)發(fā)現(xiàn)在錯(cuò)誤處理、保護(hù)資訊、可用性和控制等,均基于開發(fā)者使用 Swift 來開發(fā)應(yīng)用的對(duì)話上。我們認(rèn)為,Swift 開源后將獲得進(jìn)一步發(fā)展,這將有利于進(jìn)一步深化互動(dòng)?!?

Swift_leiphone120704

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

“在為開發(fā)者提供源發(fā)展工具方面,我們是非常開放的。所以如果開發(fā)者在 Swift 中撰寫程序,而我們?cè)诓粩喟l(fā)展語言的過程中,我們也會(huì)給他們提供適合的工具來幫他們發(fā)展程序碼?!?

不過蘋果公司也在計(jì)劃解決更大的問題,如今有越來越多的開發(fā)者直接貢獻(xiàn)于該語言的發(fā)展,蘋果就更需要解決這個(gè)問題。蘋果計(jì)劃在 Swift 3.0 中進(jìn)一步完善源相容特性。

Swift 會(huì)對(duì) Objective-C 產(chǎn)生什么影響?

對(duì)于 Objective-C,Swift 的開源并沒有改變其在蘋果的生態(tài)系統(tǒng)中的位置。它已經(jīng)存在好幾年了,它仍然被用來編寫蘋果的平臺(tái)上運(yùn)行的諸多應(yīng)用程序(包括蘋果自己的),這個(gè)數(shù)字截至目前仍在持續(xù)增加,因?yàn)檫@的確是有必要的。但 Swift 顯然是 Objective-C 未來的發(fā)展方向,所以蘋果仍然希望開發(fā)者可以用 Swift 來啟動(dòng)他們的新專案。

“Objective-C 將不會(huì)就此消失。我們還是非常喜歡 Objective-C 這種語言,我們還需要依賴 Objective-C,在蘋果公司有很多工作都需要透過 Objective-C來完成。我們會(huì)繼續(xù)支持 Objective-C,繼續(xù)完善這種語言,以適應(yīng)這個(gè)不斷變化的世界。不過對(duì)于即將進(jìn)入我們的平臺(tái),想要開發(fā)者應(yīng)用的開發(fā)者,我們認(rèn)為 Swift 更適合他們。我們覺得從 Swift 入手是非常正確的。但是在可預(yù)見的未來,我們會(huì)繼續(xù)維護(hù)、完善和支持 Objective-C ?!?

Swift_leiphone120705

開發(fā)者們?cè)谡劦?Swift 和 Objective-C 的使用情況時(shí)通常都會(huì)這么說。有些人堅(jiān)持使用 Objective-C,因?yàn)樗麄円呀?jīng)熟悉該語言,或是因?yàn)樗麄儾幌M旌鲜褂?Objective-C 程序碼和 Swift 程序碼,但越來越多的消息顯示,無論是新專案還是老專案,新數(shù)據(jù)塊都在逐漸被 Swift 程序碼所取代。

似乎蘋果未來將繼續(xù)為 Objective-C 提供支持,但蘋果何時(shí)會(huì)停止支持目前并沒有一個(gè)確切的消息,同樣也沒有人會(huì)想要被打個(gè)措手不及。Swift 的日益成熟、Swift 3.0 所承諾的程序碼相容性、開源版本更加廣泛的應(yīng)用場(chǎng)景都旨在推動(dòng)開發(fā)者更為舒服的過渡到 Swift 陣營(yíng)。

您還未登錄,請(qǐng)先登錄

熱門帖子

最新帖子

?