29
本文作者: 訾竣喆 | 2015-12-07 10:30 |
蘋果在今年六月的WWDC大會(huì)上推出了Swift2.0,并宣布將于今年年底前開放源代碼。而蘋果也在近日正式將Swift語言轉(zhuǎn)成了開源編程語言,并將其放到代碼托管網(wǎng)站GitHub中以供更多開發(fā)者共同開發(fā)。蘋果公司高級(jí)副總裁克雷格·費(fèi)德里希最近接受了外媒的采訪,對(duì) Swift 開源這一行為進(jìn)行了說明。
據(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模塊的早期項(xiàng)目。
雖然其中的絕大部分都符合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上開放?!?/p>
所以,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)有盡有。
蘋果官方聲稱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ì)依靠社區(qū)來提供支持。
“(對(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ù)見的——社區(qū)中的某個(gè)人——無論是微軟的領(lǐng)導(dǎo)者還是其他的人,早晚都會(huì)這樣去做?!?/p>
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)為要想在這方面給他們提供支持的話,最好的辦法就是開源?!?/p>
而蘋果的另外一個(gè)目的則與教育相關(guān):當(dāng)開發(fā)者花時(shí)間來學(xué)習(xí)Swift 時(shí)(或者教育工作者教授 Swift 使用方法時(shí)),蘋果希望這些技術(shù)能夠?yàn)楦嗳怂谩?/p>
“我們與教育工作者合作,很多教授都有意教授 Swift,因?yàn)樗且环N富有表現(xiàn)力的語言,能夠引入各種編程概念。Swift 開源能夠讓教育工作者盡快地將其整合,讓它成為核心課程的一部分?!?/p>
在今年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ā)生的事情,不再讓人感到頭疼?!?/p>
——iOS開發(fā)者,APP Camp教師 萊斯利·貝克
雖然開源后給開發(fā)者帶來了諸多便利,不過遺憾的是,根據(jù)Swift.org中的表述,開發(fā)者在把應(yīng)用程序提交給蘋果的應(yīng)用程序商店時(shí)仍需要在Mac上使用Xcode。
在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)一步深化交互。”
Swift雖然只是一個(gè)很“年輕”的語言,但是自問世以來卻一直廣受歡迎。而這也使得試圖開發(fā)和維護(hù)的代碼的開發(fā)人員產(chǎn)生了小小的挫敗感。Swift 1.x在半年甚至一年前所創(chuàng)建的代碼可能也不會(huì)在今天的Xcode的最新版本中編譯,所以如果有問題的話蘋果肯定是知道的。
“在為開發(fā)者提供源發(fā)展工具方面,我們是非常開放的。所以如果開發(fā)者選擇在Swift中編程的話,我們也會(huì)在不斷發(fā)展語言的過程中給他們提供適合的工具來幫他們發(fā)展源代碼。”
不過蘋果公司也在計(jì)劃解決更大的問題,如今有越來越多的開發(fā)者正在為該語言的發(fā)展做出著貢獻(xiàn),所以蘋果就更要去積極解決問題。蘋果計(jì)劃在 Swift 3.0 中進(jì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)他們的新項(xià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 ?!?/p>
開發(fā)者們?cè)谡劦絊wift和Objective-C的使用情況時(shí)通常都會(huì)這么說:有些人堅(jiān)持使用Objective-C,因?yàn)樗麄円呀?jīng)熟悉該語言或是因?yàn)樗麄儾幌M旌鲜褂肙bjective-C代碼和Swift代碼,但越來越多的消息顯示,無論是新項(xiàng)目還是老項(xiàng)目,新數(shù)據(jù)塊都在逐漸被Swift代碼所取代。
似乎蘋果未來將繼續(xù)為Objective-C提供支持,但蘋果何時(shí)會(huì)停止支持目前并沒有一個(gè)確切的消息。不過,沒有人會(huì)想被打個(gè)措手不及。Swift的日益成熟、Swift 3.0所承諾的源代碼兼容性、開源版本更加廣泛的應(yīng)用場(chǎng)景都旨在推動(dòng)開發(fā)者更為舒服的過渡到Swift陣營。
Via arstechnica
相關(guān)閱讀:
擁抱Swift吧,Objective-C已經(jīng)是過去時(shí)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。