如何評價 Swift 4 的開發計劃?

Apple begins wrapping up Swift 3 and lays out plans for Swift 4

字數超標了,貼圖片:

更詳細的請參考 Chris Lattner的描述

[swift-evolution] Looking back on Swift 3 and ahead to Swift 4

雖然看到要加入這麼多亮眼的feature感到很高興,但是也感覺feature set 膨脹的有點要失控了。。。。

PS, 由於swift 4要仿效rust引入Memory ownership model,為了便於討論,
所以問題加上了rust的標籤


老實說以Swift 2 -&> 3的進展程度,我覺得這個表裡的東西能有1/3出現在Swift4里就不錯了。

不過在我看來這些目標每一個都非常有用,如果Swift的某一個版本真的達成了所有這些目標,它的流行程度一定會上一個大台階。

Reflection: 一個完整的實現可以讓Swift從功能上徹底替代掉Objective-C,現在OC依然在動態性上勝出Swift,最主要就是在這個領域。

First Class Concurrency: Swift想要走出手機和桌面,這個地方的強化是少不了的。作為一個能拿來寫後端的語言,在這個地方沒點拿得出手的東西都不好意思見人。

Generic Improvement: Swift從第一天起就走上這條路了,新一代的語言也很少有不做static/dynamic mixed generic的,比如Rust的trait,既然已經走了,目前看起來也不錯,沒理由不走下去。

.swiftmodule stability: 這個太必須了,總不能又走回到C/C++的老路上去。

New scripting features: 在我看來這個功能主要是吸引初學者,當然如果Swift的字元串處理功能足夠強大的話真拿來做web template也不是不可以,但實話說我覺得懸。

Property behaviors: 我感覺這一點還是在GUI上的加強,畢竟除開UI設計器之類的應用其它的地方對property需求其實有限。

最後兩點就是填坑了,一個語言設計出來總有些邊邊角角的地方不完善,一點一點填唄。

生命周期這東西現在只是有些想法,連個完整的提案還都沒有,估計不知道要到什麼時候去了。


swift從入門到重新入門


我的翻譯: 回顧Swift 3, 展望Swift 4

裡面的語言特性太多, 就懶得寫註解了, 我自己查維基查的想吐..., 但也能看得出Swift的野心是更寬泛的用途

Swift就像是個能幹的女朋友, 她美麗又強大, 你對她欲罷不能

但她又不滿足於現狀, iOS甚至Apple都不能容下她的野心, 她會不停地要求你提升自己去配合她, 過程會很痛苦, 但是適應了之後你自己也變得越來越強, 每一次痛苦的改變其實都是對於過去的一些遺憾和過錯的修正

在這個過程中, 也許你會發現自己變得不像自己, 你也許只想要老婆孩子熱炕頭, 而她卻覺得自己並不屬於你, 她渴望偉大, 你渴望平淡簡單, 那你大概不適合Swift

OC像是家裡人給自己安排好的妻子, 她比你大十幾歲, 很多事情都遷就著你, 但她也有很多她做不到的事情, 有很多不美麗的過去, 也能滿足你對於"老婆孩子熱炕頭"的願景, 但也僅限於此

---

總體感受就是, 寫起來越來越爽, 改起來越來越煩, 那個版本遷移的功能我在github上看了幾個庫, 包括自己嘗試的時候, 還是會出很多莫名其妙的bug (ABI不穩定的鍋?)

我覺得Swift之所以不能穩定下來主要還是因為野心很大, 想塞很多fancy的東西進去, 這是讓人又愛又恨的主要原因


評論很多都是只看了截圖就回答的。

Lattner 說了很重要的兩條:

  1. Swift 4 開始會實現向後兼容。不會再有 breaking changes 了。他並且承諾 Swift 4 的 compiler 可以同時編譯 Swift 4 和 Swift 3 的代碼。也就是說,到時候不需要等待上游更新,你就可以使用 Swift 4 了。我有些擔心 Swift 大更新造成的版本分裂問題,但是有 Cocoa Touch 的存在推動,應該影響不大(反正就要支持新 Xcode 和新 OS,Swift 一起就升級了)。

  2. 只是一個 wish list。肯定完成不了,寫出來只是給出一個大方向。並且他也明確說了,concurrency 只是在 Swift 4 開始討論,而不是在 Swift 4 中實現的,因為至少需要 12 個月的設計周期。


我覺得對於一門野心不小的語言來說,這很正常。

但是有些人不對社區做貢獻很正常但是連(認真)用都沒用過,就只會諷刺,這種心態做技術,真的沒問題么?

每次改動是大,ABI 是不穩定,但是說句實話,從 Swift 1 到 2,從 2 到 3,你並不會需要很多時間去改你的代碼。

而且每次升級,都是一次 review 的好機會,代碼越來越簡潔,而且寫的越來越爽越來越安全。這有什麼不好的?


Swift team 把 Rust team 吞併算了。對兩者都有好處。


想我當時買了本swift的書,還沒看完就swift2了


對這些大餅已經看淡了,看向 C++ 17 和 C# 7。


我真怕哪天醒過來Safari的腳本會變成&


swift剛出來的時候,寫了一個小demo練手,然後準備實際項目中使用,現在慶幸當初沒有犯傻。oc這麼久才2,swift就到4了。


別整這些沒用的東西,把oc加個命名空間,再(願意的話)區分一下虛方法和非虛方法。搞定這兩個你一輩子不更新語言都沒人說你


也來說幾句,應該是直接從swift開始學習iOS的吧,那時剛剛看了兩章oc,swift就出來了,作為c#、java程序員果斷要跟啊,從beta版本開始,直到自己的app做好,居然是beta2了,一路用下來還不錯,就是輪子不多,需要調用oc代碼,這個感覺真心不錯。也遇到了一些問題,不過後面更新、上國外的sof都能解決,一般app沒問題。現在有點時間,準備再看看iOS方面的,一看居然馬上都3了,4的計劃也出來了,感覺好快。看了一下官方的3,感覺變化是有,但是都能理解,不過以前的項目打開好多報錯,哈哈。說真的,語言有變化,但是學習要有方法,官方的編程書後面不是有更迭日誌嘛,照著學習就行,問題不大。


Reflection:就問一句,還是不是readonly了?


就說一點。

軟體升級大版本號會覺得增加牛叉功能了。會刺激大家升級。

但是,開發語言升級大

版本,第一想法肯定是

又要考慮兼容性了。雖然實際情況可能不是如此,卻會讓不少人望而卻步。


期待Swift能和js一樣被瀏覽器支持的那一天。


讓老婆P了個圖,正在升級xcode9,不過好像xcode9提供swift3和swift4兩種編譯模式


反正?口的對OC的支持開始減弱了,代碼各種不提示。賦個枚舉還要點進去複製!

倒是對斯威夫特的提示反應很快


1、swift語言的項目不需要打tag,反正你會滾回去也編譯不過

2、生產環境出重大bug了,趕緊從master打個分支修bug,怎麼還沒修好,我在改語法呢。。

3、對某員工語重心長地說:麻煩你每句話後面不要加分號好么,某員工:我不!

4、這段代碼誰寫的?這語法什麼鬼,麻煩請您打開《swift4入門到下崗》第435頁第二段,這是swift4的最新語法


這版本號飈的


推薦閱讀:

請求參數用string好還是數字好?
先開發 iOS 應用好,還是先開發 Android 應用好?
哪些程序在 App Store 里是被禁止的?
sdk和open api有什麼區別?

TAG:編程語言 | iOS開發 | 編譯器 | Swift語言 |