Swift 現在的語法穩定了嗎,之後會不會出現像從 Swift 1 到 Swift 2 這樣的大改動?

如題


Xcode 每次升級,我們這iOS開發就要花一整天的時間來改代碼。

哪像我們寫 Android 的,每次升級只要花一天時間下載更新就好了。


謝邀,然而不敢回答,Apple 太它喵的喜歡打臉了。當年我可是趁熱買過 45¥ 的 XCode 的人……


Swift 開源的是時候,包括一份 Swift Programming Language Evolution apple/swift-evolution · GitHub,描述了 Swift 的未來的規劃。

現在主要的目標是 Swift 3.0,裡面明確說了

Swift 3.0 will contain source-breaking changes from Swift 2.x where necessary to support these goals

Swift 3.0 will not provide full source compatibility. Rather, it can and will introduce source-breaking changes needed to support the main goals of Swift 3.0.

即為了實現 3.0 的目標,如果必要會有一些不向前兼容的改變。明確說了,不提供向前兼容。

其實並不用怕語言的變化,Swift 2.0 出的時候,一個純 Swift 的項目改了一天也就改完了。寫了一年 Swift,現在因為項目原因回來寫 OC,感覺語言上差的不止一點點。在用 Swift 的時候沒有察覺,一有對比就能明顯感覺差距來。

-----------------------------------------------

下面簡單翻譯一下目前規劃的內容:

Swift 3.0 預計發布日期是 2016 秋。主要目標是穩定語言和標準庫的二進位介面(binary interface),並且改善語言總體上的一致性:

  • 穩定的 ABI
  • Resilience(這個不知道怎麼翻譯)
  • 可移植性
  • 類型系統的整理和文檔化
  • 更完善的泛型
  • Focus and refine the language
  • API 設計準則
  • 明確在這個版本中不包括:

    • 完整的代碼兼容性

    • 語言本身支持並發

    • C++ 的兼容性
    • Major new library functionality(好吧 我又詞窮了)

      Swift 2.2 預計發布日期是 2016 年春。主要包括改 bug、改進實現質量、改善編譯時間和性能。


    改了還不好………看看當年的Swift 1.x的語法詭異的地方(Error handling, if let chain, static property. protocol…)。還有標準庫坑人的地方(String之類),早改早完善這個語言,一旦拖到越後面就越難改動,而開發者就得永遠忍受這個語法的詭異之處,畢竟他可是號稱:

    Objective-C without C

    Modern

    Secure

    的語言。作為最像的Rust的1.0大改版都沒有什麼抱怨的,這有什麼


    謝邀,目前來看,應該還會,但是從改動的情況來看,結合了許多語言的優點,改動語法其實是為了更方便開發者來使用它,從這點來講,我們應該擁抱變化吧,你說呢


    首先:不夠穩定。2016年3月21日蘋果發布會以後,Xcode升級為7.3,同時Swift升至2.2,一些基礎語法又發生了改變。但比起1到2的變化,已經小了很多。

    重要的是,Swift的進化方向已經是完全可以預知的了。蘋果官方維護的blog Swift.org - Blog 隨時通知各位開發者swift的最新動向。蘋果github上swift-evolution的項目 GitHub - apple/swift-evolution: This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. 把swift語言下一步改進的點非常詳盡地列了出來。甚至我們可以直接通過這個項目和蘋果溝通,影響下一代的swift。

    所以,我真心不認為swift發生語法改變是什麼大問題。更何況,那麼多框架,每次升級變化也不少。python3和python2現在還打架呢,可以預見的,這個問題不會發生在swift身上。互聯網時代,尤其是對於一個開發者來說,不就是要擁抱改變嘛。更何況是擁抱蘋果——全世界市值最大的科技公司帶來的新時代編程語言的改變,見證其進化的過程。想想就讓人激動啊!


    肯定會啊,這還用說。


    會,而且更大。比如 ++ -- 和 C 風格的 for 都沒了


    項目需要5人以上協作並維護的話,就慎用Swift,不是Swift不好或者變化快什麼的(官方文檔即便從頭看也就2天時間,不存在浪費精力的問題),而是總有人很容易在可選類型上寫出不嚴謹的玩意,工程和技術是兩碼事,人一多技術能力不容易齊整,也很難監督。

    我們後來就撤掉了那幾個用Swift的人,並改用OC重寫了。Swift是無辜的,是強大的,但3.0前我們是不會在產線上用Swift。


    穩個蛋啊……一個String就改了好多......


    我永遠無法忘記上個項目,swift1.2時完工,更新了swift2以後作死打開一次嚇的我以為打開姿勢不對==

    自此我每天上班的第一件事就是祈禱那個項目的二期不要來,親愛的客戶你就放棄你那個項目吧


    apple/swift-evolution · GitHub

    要改肯定是還要改的……


    今天的改動是為了將來的更好用

    我們總在瞻望遠方 而不是為了一個錯誤去增加十個不合理

    再者說 花一天時間去研究新特性 總歸比跟產品經理討論不靠譜的需求 有意思的多


    習慣就好了 自古cocoatouch都是一年一大變 每年總要有那麼一段時間是學它 不差那點時間看看語言


    感覺肯定會的,,


    從最近的幾個XCode版本也能看出蘋果對於開發者的體諒。

    自適應更改已經能完成大部分的修改任務。

    一些在老版本中養成的語法習慣,XCode也會提示你「這樣寫在下個版本不被支持,你可以使用XXX方法來寫」。

    3.0應該會更改很多。改也是不可避免的。

    不過如果能模塊化的比較好大概改起來也不會太費勁吧(個人觀點


    年底3.0 你可以關注http://swift.org


    明年會出3.0的


    我們一個項目從swift 1.0 玩到 swift 2.0, 中間已經經歷了兩次swift改版,每次改版都得改一堆代碼...

    swift 語言本身應該還是不錯,但是如果團隊人多,那就比較慘了。有喜歡oo的,有喜歡fp的,最後的代碼就是一坨。

    swift的編譯器也比較差,在做某些 type inference 的時間非常慢。文件一多,基本上編譯一次可以去睡一覺了,這在項目後期非常麻煩。


    謝邀。

    必須會,而且3.0應該還會變很多。題主可以看一下swift官網的Swift 3 API Design Guidelines,裡面就有關於swift3.0的API設計準則的內容,畢竟swift要形成自己的風格嘛。可以肯定的是作為一門新語言,未來幾年swift還會不斷變化,但肯定是越變越好,而且3.0應該是一次奠定自己語法風格的大升級(很多東西都會變,比如沿襲自Cocoa的NS之類的前綴也沒了,去掉++和--,去掉c風格循環語句,等等。。)

    Swift.org - Swift 3 API Design Guidelines

    https://github.com/apple/swift-evolution

    apple/swift at swift-3-api-guidelines · GitHub


    推薦閱讀:

    iOS開發包含哪些內容?
    windows下的服務和進程有什麼區別?
    哪些 C++ 項目的源代碼最值得閱讀?
    編譯器中都有哪些演算法?
    軟體崩潰(crash)之後的報告(report)究竟是個什麼流程?

    TAG:蘋果公司AppleInc | 編程語言 | 編程 | iOS開發 | Swift語言 |