Swift 再等等?我的答案是:快上車

沒故事的卓同學發表於2017-03-05
11225849-2bec0c52bfcd0b48

本文談下 iOS 開發要不要選擇 Swift 的問題,純主觀無資料支撐,拒絕反駁,歡迎打賞。利益相關:實際專案中使用 Swift 一年半,從此 OC 是路人。

Swift 現狀:與 OC 共存

如果你想彎道超車,以為只要學會 Swift ,就可以不用管 OC ,iOS 開發回到一條起跑線上,我只能說:

12225849-f9a777440c36afc4

因為這個想法很不現實。iOS 的核心 UIKit 是 OC 寫的,其實 iOS 大部分的 framework 都是 OC 寫的。喬幫主留給我們的珍貴歷史遺產,能說扔就扔?

13225849-ae684c6fada64dae
管不住我這雙配圖的手

如果你完全不懂 OC ,在目前的形勢下,你甚至無法成為一個合格的 iOS 的工程師。
Server side 雖然是完全脫離了 OC ,但是服務端的開發環境和工具鏈離真正的商業應用還為時尚早,除非你想寫出別人無法維護的服務端程式碼。

開發者對 Swift 接受程度

那 Swift 到底有沒有人用呢?
我們看TIOBE的2月程式語言排行榜:

14225849-c43677fb934876fe

Swift 排在 12 名,OC 排在 19 名。其實在一年前,兩個的關注度還是五五開,到了現在已經拉開差距。

Swift 從國際的角度來看,接納程度已經超過 OC(歐美地區)。也可以去 Quora 上搜搜類似的問題。Swift 2.0 的時候還有很多質疑的聲音,到現在開發者已經接受的非常自然了。使用 Swift 開發是顯而易見的。

國內開發者對 Swift 怎麼看

這裡有個問題需要先想清楚,什麼樣的開發者的意見值得聽?很多技術不同的開發者都有不同的聲音,有人激進,就有人保守。

我的價值觀是,相信那些最頂尖的程式設計師的判斷。當然這純粹只是我個人的想法。有些程式設計師如果已經不在一線開發,在一線時也不是特別出類拔萃,他們的觀點我就會懷有質疑的態度(前端的朋友你們知道我說誰了)。當然了,這些只是對未來技術趨勢的判斷。我相信頂尖的程式設計師的判斷,我把他們當做舵手。

我列幾個我心中國內幾個頂尖的開發者對 Swift 的態度。

  • 王巍,kingsfiser作者,《Swifter 100 tips》作者,毫無疑問,1.0 時代開始就看好 Swift
  • 鍾穎(cyan),去年國內最優秀的獨立應用開發者,顯然一直在用 Swift 開發,在去了微軟以後依然使用 Swift
  • @故胤道長畢業於CMU,矽谷 flag 公司 Uber 架構組工程師,Uber 的 app 是全 Swift,Swift 早已是日常選擇。
  • MrPeak,部落格篇篇精品乾貨,在2016年iOS技術圈回顧中寫到:

    Swift進入公眾視野已有一段時間,開發者社群的接納度非常好,就我所接觸的團隊來說,已有不少在新產品中全面轉向Swift的了。對於Objective C陣營的開發者來說,學習Swift已經是刻不容緩的事情了,對於新入行iOS猶豫在Objective C和Swift之間學哪個的同學來說,答案是兩個都學。
    Swift還處於新生期,這門集眾家所長語言所包含的潛力還遠沒有被挖掘乾淨,業界的最佳實踐還需要大量的產品來錘鍊,響應式,函式式,面向協議等等都是大話題。還沒看過喵神最近關於面向協議程式設計文章的同學,可以去仔細閱讀感受下面向協議對於現有OOP方式的改變,這種思想層面的顛覆正是Swift的魅力所在。使用Swift的問題也還很多,Xcode崩潰,語法高亮消失,編譯慢等等,你可以看到很多開發者吐槽用Swift寫程式碼,但沒有人轉身離開。

國內“大”公司的態度

我一度以為國內正規公司沒人用 Swift 。
對於豆瓣團隊的技術實力我是不懷疑的,在去年我欣喜的發現他們在用 Swift ,而且還用的挺好,在豆瓣App的模組化實踐中提到:

Swift 在工程效率上確實優於 Objective-C。和 Objective-C 相比,Swift 可以用更少的程式碼,更清晰的方式完成相同的功能。當然,混合使用 Swift 和 Objective-C 存在一定的工程成本。所以,這裡就需要權衡:是保持簡單,只使用 Objective-C 呢?還是忍受一定的不便,使用一些 Swift,帶來效率上的提升呢?
我們在專案中使用 Swift 的體會是:有快樂,當然也伴隨著一些不便。總體而言,不便都可以克服。

2月初的時候剛好和隔壁的一個網易的朋友聊天,問他們用 Swift 嗎。他說新的程式碼有些已經開始用 Swift 寫。維護的部分就還是用 OC。

一位不願透露姓名的百度的朋友(@AidenRao)前幾周在群裡說他們一個專案在考慮使用 Swift ,最近在做調研,後來他們專案組決定使用 Swift 開始寫。

上次去餓了麼參加一個技術活動時也得知他們接下來會慢慢開始轉移到使用 Swift 開發。

Swift使用現狀總結

在國外使用 Swift 開發已經是一件很主流的事情。在國內不知道為什麼原因(其實我就是不好意思明說)使用 OC 還是絕對的主流,使用 Swift 的只是一小撮開發者。

如何評價:為什麼很多大公司繼續使用 Objective-C,不用 Swift?

我就問一句:哥,你在的是大公司嗎?BAT用什麼技術你就用什麼技術?代入感不要這麼強好吧。

15225849-a25e56da0ba48f2a

可是他們說 Swift 不穩定啊

可是他們說 Swift :不穩定,不成熟,慢,混編效率差。

這些只是大部分不願意學習新技術的人的藉口。如果你真的學習了 Swift ,寫了幾千行程式碼,你覺得這些問題真的是問題,我就認了。但是你務必自己去試一試。

當然我不可否認使用 Swift 是有代價的。但是,哥有信仰。

16225849-d1fdc2904ada8327

上車吧,我在秋名山等你

選不選 Swift 其實是一種態度。

有可能,光光不想和那群傻逼一樣還寫 OC 就夠了。

不好意思,我又衝動了。

17225849-5e74fc4b419daa8d

歡迎關注我的微博:@沒故事的卓同學

相關文章