iOS開發者知識普及,Swift 挑戰 Objective-C,誰會笑到最後?

前言:前端

目前全球共有超過 7 億臺 iPhone 處於活躍狀態,全球約有2000萬名 iOS 開發者,這造就了 iOS 做爲全球第二大移動設備平臺的狀態。程序員

雖然安卓系統的全球市場佔有率超過 iOS 系統,但在諸如美國、法國和英國的區域性市場中 iOS 系統仍然佔據主導地位。所以許多公司專一於 iOS 平臺進行軟件開發,由於他們將 iOS 平臺視做關鍵投資機會。面試

若是你的公司也正計劃跟隨 iOS 軟件開發,那麼你須要做出一個相當重要的決定。你須要爲你的產品選擇合適的技術組合。你的目標是什麼?若是是原生應用開發而不是跨平臺軟件,你會選用哪一種編程語言?久經考驗的 Objective-C 仍是 Swift?編程

做爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個個人iOS交流羣:638302184,無論你是小白仍是大牛歡迎入駐
,分享BAT,阿里面試題、面試經驗,討論技術, 你們一塊兒交流學習成長!但願幫助開發者少走彎路。

爲了幫助你做好這個抉擇,咱們來看一看使用 Swift 語言進行 iOS 開發會有哪些優點和弊端。後端

關於這種編程語言,你必須瞭解哪些信息?使用 Swift 會有哪些風險?爲了開始討論 Swift 語言的優缺點,咱們先回顧一下 Swift 的發展歷史。安全

Swift - 它的歷史和背景故事服務器

Apple 於 2014 年的 WWDC(Worldwide Developers Conference 全球開發者大會)上首次推出了 Swift 這種編程語言,它是可用於 iOS、macOS、tvOS 以及 watchOS 平臺開發的第二種官方編程語言。就在去年 9月份,Swift 已經更新到 4.0 版本,此次更新帶來了不少改變和兼容舊版本的模式。網絡

在強調 iOS 8 SDK 發佈的官方新聞稿中,Apple 對這個新編程語言的描述以下:編程語言

「 Swift 是一種適用於 iOS 和 OS X® 的全新而強大的編程語言,有了它,開發者能夠更輕鬆地建立精彩的應用程序。Swift 專爲 Cocoa® 和 Cocoa Touch® 設計,將彙編語言的高效表現與熱門腳本語言的交互性完美融合。ide

通過精心設計,Swift 可幫助開發者消除各類常見編程錯誤,從而寫出更安全、更可靠的代碼。

同時,該語言可與 Objective-C® 代碼共存,讓開發者能夠輕鬆將 Swift 集成到現有的應用程序。Xcode® Playgrounds 可即時顯示 Swift 代碼輸出,賦予編寫 Swift 出色的互動性。」

年紀輕輕的 Swift 語言在 TIOBE 「全球最流行的編程語言」 榜上迅速攀升至第 11 名。至此 Swift 語言已經超過它的前輩 Objective-C 7 名,實現了它的初始目標。Swift 之因此能在如此短的時間內全球流行,緣由之一是 Apple 這個品牌享譽全世界。即使如此,要與一種通過 30 多年考驗的編程語言競爭並贏得百萬名開發者的信任絕非易事。

因此,讓咱們仔細分析一下 Swift 的優缺點—它被選做 iOS 開發的主流語言的誘因以及限制其發展的短板。

使用 Swift 語言開發 iOS 軟件 — Swift 語言的優勢

易讀性 — 易維護性

Swift 代碼與人們平常使用的英語很是類似,這得益於借鑑自 C#、Python 和 Ruby 的句法,這三種的編程語言以優雅句法而著稱。相比之下,Objective-C 的句法與 C 的使人恐懼的句法很是接近。

所以,具有簡化的句法和語法的 Swift 語言更爲直白易懂,其表達方式也更加靈活。實際上,Apple 對 Swift 語言的簡單很是有信心,甚至經過 Swift Playgrounds 這個 iPad 應用程序中的遊戲鼓勵小朋友們學習開發應用程序。

在解釋 Swift 語言的優點時,連線雜誌的資深撰稿人 Cade Metz 的描述以下:

「 Swift 的優異之處在於它是爲普通程序員設計的。它的設計適用於全部使用情景,甚至是最簡單的移動應用,Apple 還爲它專門開發了名爲 「Playgrounds」 的工具,這個工具在自學編程時異常有效。」

他進一步分析了 Swift 語言與 Google 的 Go 語言迥然不一樣的發展規劃。(Google 於 2009 年推出 Go 語言,時至今日這種編程語言仍然在吸引開發者的道路上艱難前行),在此他引用了 Paul Jensen — 一名編程語言分析師的見解:

「 對於 Google 的 Go 語言,沒有真正值得開發者選用它的理由……Swift 則對開發者頗有吸引力(它的直白易懂、簡單明瞭優於 Objective-C)「

此外,有別於 Objective-C,Swift 拋棄了以前雙文件形式(以 .h 爲後綴的頭文件 + 以 .m 爲後綴的實施文件的組合定義類),爲開發者省去了額外的操做。Swift 去除了模版式的重複工做,同時輔助開發者改進代碼質量、它所提供的語言特點以及備註形式。

Swift 言簡意賅

Swift 的目標之一是編程語言的簡練性。單就字符串內插這一項而言,使用 Swift 語言最多可將使用 Objective-C 編寫的移動應用的代碼量減小 70%。更少的代碼意味着開發和測試更爲快速—所以能夠下降維護成本、減小資源耗費。

易於擴展

直觀明瞭的代碼可加快開發速度。除此以外,你的產品仍是面向將來的,你能夠爲它添加新特性。亦即你的產品具有易擴展性。進一步說,出於長期的投資規劃,你須要意識到相對於 Objective-C 而言,Apple 更可能支持 Swift。

與 Objective-C 的互操做性

雖然這方面不是 Swift 的絕對優點,這個特性必然是有價值的。Buffer 公司(譯者注:這是國外一家社交媒體管理平臺)的一名 iOS 開發者 Jordan Morgan 在他的博客中寫道:

「 毫無疑問 — Swift 是一種標誌着將來的新工具。Objective-C 已經開始老去,並且終將喪失它的流行度。可是就現階段而言,他們倆須要能和平共處……Objective-C 創建在一個逐漸過期的編程語言之上,只是爲現代技術從新改造了而已。」

正如 Morgan 所說,Swift 並未徹底取代 Objective-C,由於 Objective-C 目前是並將持續做爲許多移動應用的組成部分,也將須要持續的維護。Swift 能徹底與它的前輩互通,所以二者能夠在同一個程序、文件或者一行代碼中共存。

安全性和改進的性能

正如它的名字所暗示的,Swift 誕生於對迅速的追求。它強調速度和性能,最初這兩方面上它比 Objective-C 提升了 40%。經過達成的多個里程碑以及開發者們執行的測試,這一點已經很是明顯了。

Swift 的另外一個優點是安全性。得益於它的強悍性和靜態數據類型的特色,Swift 幫助開發者在編譯前發現程序錯誤並及時修復錯誤。並且 Swift 具備智能的針對空指針的安全措施能夠規避由無效的數據引用致使的編譯錯誤。

跨設備支持

Swift 不只支持 iPad 和 iPhone,還支持包括 Apple Watch、Apple TV 和 Mac 在內的全套設備。

用於全棧開發的潛力

IBM 將 Swift 應用於雲服務開發的努力目前很是成功。Swift 在服務器端可與最流行的後端技術對接。與全棧 Javascript 開發同樣,在應用程序的前端和後端同時使用 Swift 能帶來普遍的代碼共享和重用性 — 提升開發速度的同時減小開發投入。

自動內存管理

在博客 Security Innovation (安全性創新)中, Kevin Poniatowski 於 2014 年發表的博文中成功預測:

"我堅信 Swift 自動管理內存的特點將獲得 Objective-C 開發者的歡迎。這個特性可以消除一些很是嚴重的代碼缺陷,例如很是煩人且有很大潛在危害的 ‘釋放後使用’ 這類編碼錯誤"

旨在防止內存泄漏、優化程序性能,Swift 的全部 API 都採用了自動引用計數。簡而言之,它自主管理內存使得程序以最高效地利用資源。不須要開發者手動設置內存,Swift 的慣用工具能夠在開發者爲適應此變化改寫代碼時提供支持和指導。

來自 IBM 和 Apple 的企業支持

Apple 與 IBM 協做投入 Swift 的發展和利用。Swift 所以得到了最活躍的開源羣體。事實上,Swift 是 Github 上最受關注的編程語言之一。

Swift 有不少優勢,尤爲是和它的前輩 Objective-C 相比,儘管如此它也受到一些短板的牽制。

使用 Swift 語言開發 iOS 軟件 — Swift 語言的缺點

缺少與舊版本語言的兼容性 (部分解決)

因爲新版本的發佈會引入巨大變更,Swift 一般被視做不穩定的。許多開發者抱怨 Xcode 對更新 Swift 代碼版本的幫助並不能修復全部問題,因此將項目遷移至新 Swift 版本很是費時且成本較高。

速度問題

這個語言的早期版本有不少速度問題,不過,如上所述,速度問題隨着新版本的推出有了很大改進。

一個新語言

Swift 的開發目前仍屬於起步階段,它須要很長時間才能發展成熟、發現並修復它的問題區域。「原生」 的庫和工具在數量上仍然很是有限。並且由於它的新穎程度,使用 Swift 的開發者也數量有限。儘管如此,Swift 的開發者羣體正迅速壯大,對 Swift 開發者的需求也在增長。

Swift 語言會標誌着 iOS 開發的發展方向嗎?

雖然處於發展初期,Swift 已經創造了不少成功案例。實際上,Swift 的每一次更新,都帶來了極大改進: 更好的版本兼容性減小了向 Swift版本 過程當中的摩擦,Swift 包管理器的改進、API 優化以及其它新增特點。

使用 Swift 的大公司有領英、Coursera、Pandora、推特、Fitbit 以及 Vimeo 等大牌公司,Facebook 和優步對這個語言也從新萌生了興趣。所以伴隨採用率的提高,Swift 有望最終取代 Objective-C 成爲 iOS 開發的首選語言,

做爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個個人iOS交流羣:638302184,無論你是小白仍是大牛歡迎入駐
,分享BAT,阿里面試題、面試經驗,討論技術, 你們一塊兒交流學習成長!但願幫助開發者少走彎路。

文章來源於網絡,若有侵權,請聯繫小編刪除!

相關文章
相關標籤/搜索