做者:Erica Sadun,原文連接,原文日期:2016-02-29
譯者:Crystal Sun;校對:numbbbbb;定稿:shankshtml
當咱們提到代碼崩壞(code breaking)時,通常是指下面這兩種狀況。swift
語音語義發生了變化。這時你須要重構代碼,典型例子就是 Swift 從 (..., $NSError) -> Result?
格式改成錯誤拋出。併發
語言語法發生了變化。這時只需進行遷移,而後大部分代碼或多或少都能自動修復(還有一小部分須要微調)。框架
後者確實會帶來一些麻煩,但更具破壞性的是前者。若是我猜的沒錯,Swift 3 的目標是進行最後一次內部調整,等到 Swift 4 時就不會再從新設計語言了,而是增長新的特性。函數
Chris Lattener 寫道,工具
贊同 —— Swift 3 的源碼調整已經完成了,因此咱們會提供很是棒的遷移工具,幫助人們可以迅速完成遷移工做。除了 Swift 3 外,Swift 社區將會成爲多元化社區,支持多個平臺系統,創造出更多不一樣的工具和 IDE 供開發者使用。佈局
正因如此,在 Swift 3 發佈以後,源碼崩壞修復(source breaking changes)會更加困難,咱們傾向於儘量地把改動放到 Swift 3 中。性能
更多內容:ui
雖然 Swift 4 可能也有一些崩壞改動,不過咱們更但願可以減小崩壞的狀況翻譯
這也是爲何咱們要努力完善 Swift 3 的緣由,在目前的時間限制下,即便這意味着要推掉一些有趣的工做……
……
我認爲如今沒有必要討論 Swift 3 以後的特性,也不會帶來什麼好處。沒有足夠的資源讓核心團隊成員參與討論,咱們更但願可以讓社區和開源貢獻者將主要的精力集中在 Swift 3 上,力爭讓 Swift 3 功能更增強悍。
Swift 3 的特性可以預示 Swift 4 的走向。儘管有一些特性咱們可以預知(例如併發會成爲 Swift 的一個特性),仍然有不少徹底不一樣的設計方向值得咱們探討和嘗試。雖然如今不太可能來一場討論,權衡決定哪一種是最好的解決方案,不過大量的討論一定會浪費時間。
如今須要全部相關的人等到合適的時間再來討論,雖然這須要足夠的耐心和剋制,不過對每一個人來講,這是最好的。今年秋天(北半球)很快就要到了,咱們還有太多重要的工做須要完成。
將 Swift 3 的各類目標固定下來列出時間表這件事可不太容易,尤爲是 Swift 開源以後。
預測 Swift 3 最終結果(好比:「Swift 3 會實現咱們的目的嗎?」),自己就是一件危險的事情,也不可能作到完美預測。在語言設計和增長特性上有太多的未知了(好比:咱們連一個具體的設計稿都沒有,你如何知道要花費多少時間來執行呢?),隨着新的問題不斷出現,咱們的工做量又在不斷增長,固然了,須要開源社區來確認有哪些新問題。更不可能預測開源的貢獻者能提供多少時間和工做量。
咱們對一些好的想法說「不」的部分緣由就是咱們設計和執行的受限。咱們對 Swift 3 有較高的目標要求,可是咱們也不能百分百肯定咱們能徹底實現咱們的目標(這也是「目標」的緣由了,而不是「肯定性」)。我以爲咱們在 Swift 3 上要行動一致,集中解決語言裏的核心缺陷,修復各類問題,設計影響 ABI 穩定性的 resilience 特性,同時呈現小範圍的擴展。不一樣於以前討論的大的擴展,小範圍擴展不會影響核心模塊( 例如成員初始化改造 the menberwise init revamp ),我但願能在 Swift 3 裏實現部分擴展。
總而言之,關於 Swift 3 是什麼的問題,已經上升到更高的層次,Swift 3 可以讓更多的人接受 Swift 語言,人們在 Linux 上運行 Corelibs + Swift 變成現實,無疑可以吸引更多的人來使用 Swift ,SwiftPM 已經逐漸完善,造成了本身的體系,Swift 語言和 stdlib 標準庫函數更加成熟。
這意味着什麼?恩,首先,從 Swift 2 過渡到 Swift 3 不可避免地將是懸崖式的過渡,大量的代碼須要重寫,Cocoa 的重命名工做也要落地了,咱們將再次建立使人矚目的科技成果。一樣地,咱們應該嘗試將 「 從新佈局式的 」 改變放到 Swift 3 中,若是可能的話,Swift 3 到 Swift 4 的過渡儘量平緩一些。如今人們理解接受 Swift 的進化改變的種種不便,不過咱們不能一直這樣。我認爲咱們不能百分之百地保證從 Swift 3 到 Swift 4 的代碼兼容性,我但願從 Swift 2 到 Swift 3 的代碼升級可以簡單一些。
最後一點,留意 Cocoa 的重命名工做,這將是一項使人矚目的成就。
本文由 SwiftGG 翻譯組翻譯,已經得到做者翻譯受權,最新文章請訪問 http://swift.gg。