swift 3 只有說之後會有 ABI 相容1 。
但 swift 4 仍然保留了可能會 break change 的說法。
不過我覺得可以入坑了,之後改的會越來越少吧。而且你寫 iOS 的話一定要會用 swift,因為新的 library 可能都只有 swift 版了,不能再等。
然後處理 break change 是工作的一部份,躲也躲不掉的。回報給你上級,說這是 iOS 開發成本的一部份。說實在的,Apple 把語言設計錯誤的責任轉嫁給用戶 (開發者),實在是不可取。
如果不是寫 iOS 就不要碰 Swift 了,浪費生命。
這次改變1 重點真不是方法長短 :
-public func readLine(stripNewline stripNewline: Bool = true) -> String?
+public func readLine(strippingNewline strippingNewline: Bool = true) -> String?
no, they automatically convert Objective-C convention to Swift conventions. So when you use Swift, you write eloquent Swift code, and when you write Objective-C, you write eloquent ObjC code.
I think this is one of a kind and Apple is the first one did something like that, impressive feat. They even translate C based API to object like API: Import As Member1
safari 才能開。
Swift3 移掉了一些語言功能,不過 XCode8 可以自動轉換的 (但問題在 3rd party...)
最後,那些 Objective C 遺傳下來的超長變數/方法的命名終於要拿掉了。哎哎,Apple 終於承認那個鬼命名規則是錯的。