首頁>Club>
蘋果推出Swift已經好幾年了,但是各大廠都還在使用Objective-C,這是為什麼呢?
8
回覆列表
  • 1 # 白鷺未霜

    Swift 是蘋果在 2014 年的 WWDC(全球開發者大會)上推出的新的 iOS 開發語言。

    Swift 是一種現代語言,相比於 Objective C 來說有許多新語言的特性,也更容易上手。

    之所以還有很多大廠不使用 Swift 作為開發,主要還是因為許多歷史原因。

    首先,Objective C (以下簡稱 OC)相容著很多舊的系統,多少年來他一直都沒有什麼大的變化。而 Swift 在誕生初期經歷過很多的版本迭代,向下相容性也並不好。可以這麼說,Swift 3.0 之前的版本基本上每次升級就意味著重寫一次程式碼。 Swift 之父在 Swift 推出 2.0 之後跳槽去了谷歌,對語言本身的穩定性也影響至深。

    其次許多優秀的第三方庫都是用 OC 實現的,比如著名的網路庫 AFNetworking,SDWebImage 等。Swift 雖然這幾年發展迅猛,也推出了對應的第三方庫(比如 Alamofire,Kingfisher 等),但是開發人員需要一定的學習成本,企業在這些轉化的過程中也需要付出一定的成本。可以這麼說,如果不是新專案,大部分的企業還是選擇用 OC 來作為主流開發語言。

    大廠有很多線上正在使用的專案(歷史包袱),仍然在使用 Objective C,完全使用 Swift 重構需要投入大量的人力物力,雖然 Swift 很優秀,但是重新上線意味著許多隱患。不到萬不得已是不會冒這個風險的。

    那麼話說回來, Swift 真的有那麼優秀嗎?

    筆者作為一個 iOS 五年多開發經驗的人員,去年開始學習並使用 Swift,從體驗感來說只能用兩個字來形容:真香。

    新的特性讓開發人員可以更好的關注專案的設計和程式碼的書寫,不用再被 OC 冗長的命名和陳舊的呼叫方式而困擾。

    OC 沒有名稱空間,就導致很多類名需要加字首,非常二。OC 沒有可選型別,需要加大量的 if else 判空,稍有不慎就藏 bugSwift 的列舉型別非常的強大,可以幫助開發者更好的表達業務邏輯Swift 的 extension 比起 OC 的 category 方便太多,包括協議和列舉在內的多種方式都可以使用擴充套件來實現。Swift 的設計本身更適合函數語言程式設計,也更適合面向介面程式設計,更容易裝逼

    除此之外還有很多對比,不一而足。

    如果沒有歷史包袱,真的是十分推薦大家學習 Swift

  • 中秋節和大豐收的關聯?
  • 這個不同尋常的春節,讓你有什麼感悟呢?曬一曬好嗎?