99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

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

回顧Swift 3展望Swift 4

發(fā)布時(shí)間:2016-08-03 22:48  回復(fù):0  查看:2370   最后回復(fù):2016-08-03 22:48  

本文來自Swift作者克里斯-拉特納,小波翻譯加調(diào)侃


 

小伙伴們好

Swift 3發(fā)布即將臨近之際,是時(shí)候回顧此間種種來展望Swift社區(qū)的前路。這么來總結(jié),Swift 3這次正式版絕對(duì)是“屌爆了”,“誰在裝B好刺眼”的大新聞。感謝所有小伙伴們!面對(duì)無數(shù)大跨步的提案,我們守住當(dāng)下所成,從而才能著眼更大的目標(biāo)。

Swift 3 回顧 

每年Swift開發(fā)都跟上年完全不一樣(簡(jiǎn)直無情),我期待Swift 4能延續(xù)這一趨勢(shì)(心好累)。在逐年的更新和改善這一根本宗旨下,我想Swift 3有以下一些回首和展望之處:

-開源是王道!Swift社區(qū)活力四射,團(tuán)結(jié)一致,不舍晝夜;與這樣一群有才有激情的小伙伴一起玩耍,那畫面簡(jiǎn)直太美太夢(mèng)幻(基情洋溢,羞恥play)

-開源也是挑戰(zhàn)?!伴_放式設(shè)計(jì)”可能確實(shí)比“封閉式設(shè)計(jì)”要慢要更不可估,可結(jié)果確實(shí)不一般的好,值了。在Swift進(jìn)化過程中,我要給所有幫忙的朋友給一個(gè)大大的“贊”。

-具體實(shí)現(xiàn)的計(jì)劃日期(部分因?yàn)殚_源的關(guān)系)仍然是難以測(cè)算。我們給Swift 3設(shè)定的宏大目標(biāo)不得不部分延期。有遠(yuǎn)大目標(biāo)固然好,但“目標(biāo)”不等于“承諾”,希望我們能更好地溝通而不誤導(dǎo)大家。

-整個(gè)社區(qū)因?yàn)閷W⒂邢迋€(gè)主題的實(shí)現(xiàn)而順利向前推進(jìn),因?yàn)槿绻抖甲隹赡芫头嚵恕13趾诵膱F(tuán)隊(duì)只在關(guān)鍵點(diǎn)上的討論非常重要。Swift 3整個(gè)過程中,很多分支代碼直到審核完成我們都來不及關(guān)注確實(shí)煩惱。

-目標(biāo)清晰是一種解放。尤其是今年12月到明年1月的時(shí)間段,我們擴(kuò)展了要塞進(jìn)Swift 3里面新想法的范圍,還搞了一些目前還談不上能完成的工程。這次正式發(fā)布以后,我們有一些特定的目標(biāo)(比如“非附加性提案”)讓大家能更容易關(guān)注在更重要的目標(biāo)上。

-無法讓所有人滿意。尤其是討論新特性的優(yōu)先級(jí)-因?yàn)檫@樣無形降低了其他東西的優(yōu)先級(jí)。這是不可避免的,因?yàn)闆]辦法在一年的更新周期中把這些有意思的工作完成。還好,總有“下一個(gè)正式版”(套路好深,心太累),新版本總有大的改進(jìn)。

話不多說,計(jì)劃如下!

Swift發(fā)布計(jì)劃

2017年核心團(tuán)隊(duì)計(jì)劃發(fā)布2個(gè)主要版本:Swift 3.x(春)和Swift 4(秋)。除此之外還會(huì)發(fā)布一些小版本(如Swift 3.0.1)包含修復(fù)bug或corelibs的改進(jìn)或Swift.org上的其他工程。

即將的Swift 4 發(fā)布周期

有Swift 3的經(jīng)驗(yàn)伴身,取舍之道我們了然于心。Swift 4主要目標(biāo)是實(shí)現(xiàn)從3.0開始的源碼穩(wěn)定性這項(xiàng)承諾(終于不再大改語法了,淚奔),并且提供標(biāo)準(zhǔn)庫(kù)的ABI穩(wěn)定性。因此核心團(tuán)隊(duì)決定來年分2步走:

階段一:

關(guān)注源碼和ABI穩(wěn)定性的核心需求,而且是很嚴(yán)格限制在這兩點(diǎn)。因此任何不是顛覆標(biāo)準(zhǔn)庫(kù)ABI特性或ABI大幅變更的特性均不被考慮此階段之內(nèi)。

比如,泛型特性像是“條件遵從”是個(gè)附加特性,但此項(xiàng)是讓標(biāo)準(zhǔn)庫(kù)更犀利,會(huì)是第一階段要實(shí)現(xiàn)的。另一方面,語言層面對(duì)正則表達(dá)式的支持,因不影響既有ABI也不對(duì)既有標(biāo)準(zhǔn)庫(kù)特性產(chǎn)生大的變更,所以不在這一階段內(nèi)。

這些目標(biāo)限定在階段一而且關(guān)系重大(下面有詳細(xì)闡述),我們估計(jì)要忙一整個(gè)冬天了。

 

階段二:

隨著第一階段工作中的設(shè)計(jì)和實(shí)現(xiàn)的全部完成,我們?nèi)Χㄉ贁?shù)還未完成的重要特性,這個(gè)計(jì)劃基于我們余多少時(shí)間。對(duì)于下面一個(gè)長(zhǎng)長(zhǎng)的待實(shí)現(xiàn)特性列表,我還是持樂觀預(yù)期。不過(話不能說太滿)這取決于最終知道完成這些東西所需時(shí)間。

除了新特性以外,我們也需要重評(píng)估Swift 3中沒有實(shí)現(xiàn)的源碼級(jí)變更的提案。這些提案不一定會(huì)被重提-將之與Swift 4目標(biāo)進(jìn)行對(duì)比,逐個(gè)來確定。

最后,一些不是特別和Swift進(jìn)化相關(guān)的話題,我想歸之為“品質(zhì)與性能”。核心團(tuán)隊(duì)致力于持續(xù)提升品質(zhì),包括修復(fù)編譯器bug和提升錯(cuò)誤提示和警告信息的診斷信息可讀性。性能也是關(guān)鍵開發(fā)中持續(xù)改進(jìn)的一個(gè)領(lǐng)域,包含通用代碼的性能提示,標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)的提升,編譯時(shí)間加速等。這些工作在兩個(gè)階段都有。

### Swift 4 階段一目標(biāo) ###

因?yàn)橛辛岁P(guān)注源碼和ABI穩(wěn)定性這個(gè)目標(biāo),核心團(tuán)隊(duì)對(duì)此階段實(shí)現(xiàn)內(nèi)容初步討論了一次。以下是我們優(yōu)先要實(shí)現(xiàn)的特性:

– 源碼穩(wěn)定性: 這些相對(duì)優(yōu)先級(jí)低一點(diǎn),但很重要。比如,我們需要一個(gè)”-std=swift3″之類的編譯器標(biāo)記(flag)。可能還要加一種方式,用來?xiàng)l件性啟用開發(fā)中但還處于穩(wěn)定期的新特性,以便易于試用。

– 彈性: 提供一種使用不斷更新的公有API的機(jī)制,即便面臨ABI穩(wěn)定性的問題。比如,我們不想C++的“脆弱基類”問題在Swift中出現(xiàn)。雖然大多數(shù)設(shè)計(jì)和實(shí)現(xiàn)將在Swift 3的階段完成,但仍有數(shù)個(gè)缺失之處,包括model的用戶可見性(比如 新屬性)。

– ABI 細(xì)節(jié): 這里多如牛毛的細(xì)節(jié)需要仔細(xì)審查及提升代碼生成模型。這里大部分與“swift開發(fā)”相關(guān),不是一個(gè)很“swift進(jìn)化”的話題。

– 標(biāo)準(zhǔn)庫(kù)所需的泛型類型的改進(jìn):

-我期待“條件遵從”成為頭個(gè)優(yōu)先項(xiàng),和遞歸協(xié)議約束及更強(qiáng)大的關(guān)聯(lián)類型約束的實(shí)現(xiàn)。不過,標(biāo)準(zhǔn)庫(kù)的權(quán)威就要被打破,即最終清除所有殘余的”_”協(xié)議類型的絕對(duì)必要性,以顯示標(biāo)準(zhǔn)庫(kù)的公共API未來一直在正確路線上。

– 字符串重評(píng)估:字符串是語言中一個(gè)極其重要的基礎(chǔ)類型。標(biāo)準(zhǔn)庫(kù)的大佬們有大量對(duì)編程模型的改進(jìn)建議,同時(shí)不影響提供一個(gè)基于unicode默認(rèn)模型的字符串的目標(biāo)。我們的目標(biāo)是(沒有蛀牙)-比Perl的字符串處理更強(qiáng)!

– 內(nèi)存擁有者模型: 添加一個(gè)(可選的)Cyclone/Rust啟發(fā)式內(nèi)存擁有者模型到Swift中,是系統(tǒng)開發(fā)者急切需求的,此功能用以實(shí)現(xiàn)可預(yù)測(cè)和可確定的性能指標(biāo)(比如在實(shí)時(shí)音頻處理代碼中)。Swift 4很多特性與此相關(guān),因此非常重要因?yàn)樗梢愿拘愿纳艫BI。它通知“inout”這樣的高級(jí)代碼,(ABI中的)用低級(jí)別的“addressor”如何運(yùn)作的。不僅影響Swift運(yùn)行時(shí),而且會(huì)對(duì)類型系統(tǒng)和命名粉碎系統(tǒng)(name mangling)產(chǎn)生重大影響。

以上每一個(gè)領(lǐng)域都已實(shí)現(xiàn)了一部分,不過成為正式提案還有很長(zhǎng)的路要走。我期待能在Swift 4周期的早期階段能列為主要討論對(duì)象。還有,因?yàn)槲覀冞€沒有完成確定影響ABI穩(wěn)定性的范圍,可能還有其他特定的額外部分需要學(xué)習(xí)。最后,我們可能會(huì)縮小范圍,尤其對(duì)SwiftPM(Swift包管理器)或其他Swift.org項(xiàng)目有高價(jià)值的特定小特性。

### 可能的 Swift 4 階段 2 努力目標(biāo) ###

就像我上面提到的,在這個(gè)點(diǎn)是沒辦法知道確切的階段2時(shí)間表的,因?yàn)槲覀儾恢罆r(shí)間表到底是多久。核心團(tuán)隊(duì)也想盡早比Swift 3同期更早地開始這一階段的開發(fā),如此便能在發(fā)布前修復(fù)更多bug和提供更多測(cè)試時(shí)間。

也就是說,對(duì)我們有能力重拾和處理一些已經(jīng)是嗷嗷待哺的痛點(diǎn)。為了讓你有個(gè)初步印象,這里列了一下。請(qǐng)注意這個(gè)表不是已確定的計(jì)劃和義務(wù),只是一些待實(shí)現(xiàn)的常規(guī)特性:

– 反射(Reflection): 核心團(tuán)隊(duì)致力于給Swift添加強(qiáng)大的動(dòng)態(tài)特性。比如,Swift 3已經(jīng)給數(shù)據(jù)反射添加了幾乎所有所需的基礎(chǔ)設(shè)施(Xcode內(nèi)存調(diào)試器已經(jīng)在使用)。我們可以用這些基礎(chǔ)設(shè)施構(gòu)建強(qiáng)大的面向用戶API。類似地,我們也想設(shè)計(jì)和實(shí)現(xiàn)出動(dòng)態(tài)方法反射運(yùn)行時(shí)及相關(guān)API支持。

– 語言級(jí)的并發(fā):

Actor, async/await, 原子性, 內(nèi)存模型和相關(guān)話題.

這個(gè)領(lǐng)域已經(jīng)是剛性需求,同時(shí)可以打開通向c/s架構(gòu)之類新玩意的大門。我們計(jì)劃在階段二中開啟正式“討論”,但可惜能確定的是,這個(gè)新并發(fā)模型不會(huì)在Swift 4正式版中完成。原因非常簡(jiǎn)單,這個(gè)東西的設(shè)計(jì)和實(shí)現(xiàn)已經(jīng)超過12個(gè)月(的版本周期)了,而且我們想花時(shí)間把它做做好。在開始之前,更好地把內(nèi)存擁有者模型理解也是有用的。

– 泛型改進(jìn): 泛型主題包含很多對(duì)泛型系統(tǒng)令人激動(dòng)的改進(jìn),其中不少并不會(huì)需要標(biāo)準(zhǔn)庫(kù)的ABI穩(wěn)定性,但能讓Swift泛型更強(qiáng)大和炫酷。

– .swiftmodule 穩(wěn)定性: 在某個(gè)時(shí)間點(diǎn)上需要穩(wěn)定“.swiftmodule”二進(jìn)制文件格式(或者用一個(gè)不同的機(jī)制替換)從而允許第三方二進(jìn)制框架。這其中需要海量工作而且基于標(biāo)準(zhǔn)庫(kù)的ABI穩(wěn)定性。

– 新腳本特性: 正則表達(dá)式,多行字符串等。這些特性會(huì)讓對(duì)熟悉腳本處理和web技術(shù)的人群更有吸引力。也有助于完善字符串(String)模型。

– 屬性行為: 此項(xiàng)特性承諾提供對(duì)已有出現(xiàn)模型更強(qiáng)大的抽象化。延期的SE-0030提案中有詳細(xì)的描述。

– 雜項(xiàng): 子模塊、數(shù)字類型的隱式提升、C++ API導(dǎo)入、簡(jiǎn)潔的宏系統(tǒng)、保證的尾部調(diào)用、枚舉數(shù)字化、類型化的’throws’,用戶定義屬性,抽象方法/類,更好的SIMD支持、非objc的‘動(dòng)態(tài)化’,數(shù)據(jù)并行支持,高階類型,…

– 語法糖: 我不會(huì)全列出來了,但經(jīng)常有多如牛毛的瑣碎的小提案冒出來,通常這些東西在其他語言中解決特定的問題。這些對(duì)于Swift 4來說是低優(yōu)先級(jí)。(其他語言的粉絲表示心碎)

至此,我這封啰嗦的郵件列出對(duì)于我們明年要做的事情的一些想法。有一點(diǎn)要指出的是,Swift 3還沒最終完成。此時(shí)代碼(相對(duì)于Swift 2.2)的大幅變更已經(jīng)(接近)完成,但仍需時(shí)間修復(fù)bug和品質(zhì)化工作,這對(duì)發(fā)布至關(guān)重要。

如何處理來年的版本發(fā)布,現(xiàn)在立即討論這些相關(guān)的基本要求,我認(rèn)為是很有用的,以便能在第一階段能概念性的落實(shí)這些特性。我們應(yīng)該只開始撰寫那些能充分理解的設(shè)計(jì)。Swift核心團(tuán)隊(duì)“不想”陷入無數(shù)滿天飛卻抓不住的提案的境地,這是重大、高優(yōu)先級(jí)的工程的攔路虎。

再次感謝!如果你想就特定主題深入請(qǐng)多開新帖。

-Chris


轉(zhuǎn)自:http://www.xiaoboswift.com/archives/126

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

熱門帖子

最新帖子

?