如何評價 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 說了很重要的兩條:
- Swift 4 開始會實現向後兼容。不會再有 breaking changes 了。他並且承諾 Swift 4 的 compiler 可以同時編譯 Swift 4 和 Swift 3 的代碼。也就是說,到時候不需要等待上游更新,你就可以使用 Swift 4 了。我有些擔心 Swift 大更新造成的版本分裂問題,但是有 Cocoa Touch 的存在推動,應該影響不大(反正就要支持新 Xcode 和新 OS,Swift 一起就升級了)。
- 只是一個 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的腳本會變成&
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有什麼區別?