一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Swift - Swift能代替Objective-C嗎?

Swift能代替Objective-C嗎?

2020-12-16 15:17Swift教程網 Swift

這是我在網上上看到的答案,復制粘貼過來和大家分享一下,因為我和很多人一樣很關心Swift的出現對Mac開發的影響和對Objective-C的影響。

我文章的中心是,以 Apple 目前給出的各種資料來看,這語言不會替代掉ObjC,它不是下一代的ObjC。它有很多缺點,使得它不足以做大型項目。這些缺點使得,Apple 自己都沒有使用它做 Mac/iOS 的 app。我不排除明年后年它有很大改進,但至少現在還沒有這端倪。

因此,如果你會ObjC,你不需要去看它。

但你如果問我這語言對普通開發者重要不重要,我說重要,可以明確告訴你這一點--它是 Apple 在 WWDC 向全世界推出的重磅語言我怎麼能說它不重要? 它降低了入門的門檻。使得大量的 JS, Python, Ruby用戶會使用 Apple 的技術為其開發程序。它的作用,和 Core Data, Interface Builder 一樣,能讓你快速寫出一個能用的程序來。但如果你想稍做些正經事,就心有馀力不足了。所以和 Apple 自己的 Mail 也不會去用 Core Data,自己 iPhoto 不會去用 UICollectionView,稍複雜的 App 都不會去用 Interface Builder 一樣,Apple 自己不會用 Swift。它只是給三五個人的小團隊能迅速做出能用的程序,讓大公司能快速做些 Prototype 而已。

====

有人說它相當于 C#,或是相當于 Scala 對 Java 的改進,我可以告訴大家,Swift 不是這樣的語言。它更像一種讓人快速做原型的 toy language。

要求 Apple 發佈下一代 Objective-C 語言的呼聲早就有了,每年寫數萬字 OS X 評論的 Ars Technica 兩年前就寫了 Apple 應該去做一個語言,Objective-C without C 并且使用更現代的功能和更短的 API,以及對自動類型推導的支持,文章見 OS X 10.8 Mountain Lion: the Ars Technica review 。

但 Apple 顯然沒有認真對待這門語言。很明顯的,他們根本不想把ObjC給替換掉。并且按Apple的風格,如果他們把Swift當ObjC的未來來對待,肯定會有一到兩個iOS/Mac應用使用Swift改寫。(比如Apple 當年要砍 Carbon,首先做的就是把 Finder 重寫了)。

從語言角度,Swift 有太多的缺點:

它的標準庫太差,只有Dictionary, Array 和 String及數這幾種數據結構,連個 Set 都沒有。想用別的?你還是要用 ObjC 的。是的,當你用原生數據結構時,速度比ObjC快。但是那僅限于那幾個。 它沒有任何對異步/同步編程的支持。它沒法綁定使用 Grand Central Dispatch,因此任何正經的網絡應用根本無法編寫。

它沒有任何的保護機制(private, protected),所有的 method和 variable 都是全局可見的,這顯然不能滿足正經工程項目的需要。

只能和 ObjC 互動。如果你想正經地使用C或者C++,你得寫 ObjC 的 wrapper。這基本限制了你使用大量的 C/C++ 庫函數。
沒有辦法 catch Objective-C 的 exception,如果一旦出了 exception,你的 App 立馬就崩了。這也基本限制了你使用很多 ObjC 舊代碼庫。

Chris 在設計這門語言時,可以明顯地看到他的短視。這也很正常,他是一個做編譯器的,不是做語言研究的。所以這門聲稱支持函數式編程的語言,根本沒有大多函數式語言都普遍存在的功能:

僅有的支持在lazy,閉包,及簡單的函數語言函數(如map, filter)。這ObjC中都能做
沒有pattern matching
類型推導差不多和 C++11 差不多,沒有使用hindley milner
從上面這些特點看, Apple對其的定位僅是給對ObjC頭疼的開發者降低學習曲線所推出的玩具語言。前面五條中的每一條,基本都是致命的,因此 Apple 自己的項目也不會使用。做個早期 proof of concept的 prototype 到是可以的。

我可以想象,實現上 Swift 是很簡單的(LLVM很成熟了,寫個新語言越來越簡單,比如只要幾步就能做個小語言: 1. Kaleidoscope: Tutorial Introduction and the Lexer),當然有可能 Apple 將來會解決這些問題使得其真正實用。但現在來看,Apple 并不希望 Swift 來替代 Objective C。

延伸 · 閱讀

精彩推薦
  • SwiftSwift教程之基礎數據類型詳解

    Swift教程之基礎數據類型詳解

    這篇文章主要介紹了Swift教程之基礎數據類型詳解,本文詳細講解了Swift中的基本數據類型和基本語法,例如常量和變量、注釋、分號、整數、數值類型轉換等...

    Swift教程網5162020-12-18
  • Swiftmac git xcrun error active developer path 錯誤

    mac git xcrun error active developer path 錯誤

    本文主要是講訴了如何解決在mac下使用git;xcode4.6的環境時,出現了錯誤(mac git xcrun error active developer path)的解決辦法,希望對大家有所幫助...

    Swift教程網2232020-12-16
  • SwiftSwift中轉義閉包示例詳解

    Swift中轉義閉包示例詳解

    在Swift 中的閉包類似于結構塊,并可以在任何地方調用,下面這篇文章主要給大家介紹了關于Swift中轉義閉包的相關資料,需要的朋友可以參考下...

    小小小_小朋友11412021-12-26
  • SwiftSwift的74個常用內置函數介紹

    Swift的74個常用內置函數介紹

    這篇文章主要介紹了Swift的74個常用內置函數介紹,這篇文章列舉出了所有的Swift庫函數,內置函數是指無需引入任何模塊即可以直接使用的函數,需要的朋友可...

    Swift教程網5802020-12-19
  • SwiftSwift實現多個TableView側滑與切換效果

    Swift實現多個TableView側滑與切換效果

    這篇文章主要為大家詳細介紹了Swift實現多個TableView側滑與切換效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    乞力馬扎羅的雪雪5822021-01-08
  • Swiftswift where與匹配模式的實例詳解

    swift where與匹配模式的實例詳解

    這篇文章主要介紹了swift where與匹配模式的實例詳解的相關資料,這里附有簡單的示例代碼,講的比較清楚,需要的朋友可以參考下...

    追到夢的魔術師14382021-01-06
  • SwiftSwift使用CollectionView實現廣告欄滑動效果

    Swift使用CollectionView實現廣告欄滑動效果

    這篇文章主要為大家詳細介紹了Swift使用CollectionView實現廣告欄滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Stevin的技術博客12372021-01-13
  • SwiftSwift能代替Objective-C嗎?

    Swift能代替Objective-C嗎?

    這是我在網上上看到的答案,復制粘貼過來和大家分享一下,因為我和很多人一樣很關心Swift的出現對Mac開發的影響和對Objective-C的影響。...

    Swift教程網4412020-12-16
主站蜘蛛池模板: 亚洲色大成网站www久久九九 | 亚洲 国产精品 日韩 | 麻生希在线 | 午夜私人影院在线观看 | xxxxyoujizz护士| 关晓彤被调教出奶水 | 91视频无限看 | 久久视频在线视频 | 日韩人成| 欧美久久天天综合香蕉伊 | 国产成人h综合亚洲欧美在线 | 久久精品男人影院 | 成人久久网站 | 国产精品久久久久久久午夜片 | 精品国产欧美一区二区 | 国产精品亚欧美一区二区三区 | 亚洲AV无码国产精品色午夜情 | 91porn最新地址| 国产拍拍拍免费专区在线观看 | 国产a一级毛片爽爽影院 | 91制片厂制作传媒网站破解 | 欧产日产国产精品专区 | 免费国产一级 | 国产激情视频在线 | 女老板用丝袜脚夹我好爽 | 亚洲第99页 | 菠萝视频在线完整版 | 四神集团1涨奶是第几章 | a级在线看 | 清纯漂亮女友初尝性过程 | sihu国产午夜精品一区二区三区 | 国产在线精品亚洲第一区香蕉 | 手机av| 四虎最新免费观看网址 | 色综合久久夜色精品国产 | 色啪啪888.com | 精品女同一区二区三区免费站 | 朝鲜女人free性xxe | 精品无码一区二区三区中文字幕 | 草草影院国产 | 免费看黄色片网站 |