1. 程式人生 > >iOS開發者知識普及,Swift 挑戰 Objective-C,誰會笑到最後?

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

目標 希望 -i 融合 需要 發展規劃 選擇 及其 文章

前言:

目前全球共有超過 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® 設計,將匯編語言的高效表現與熱門腳本語言的交互性完美融合。

經過精心設計,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,阿裏面試題、面試經驗,討論技術, 大家一起交流學習成長!希望幫助開發者少走彎路。

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

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