女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Swift的使用體驗與生態發展之路

工程師鄧生 ? 來源:編程語言Lab ? 作者:IceY ? 2022-09-14 18:01 ? 次閱讀

Swift 是一門多范式的編譯型語言,是 Apple 生態中的重要開發工具 。官網介紹 Swift 的設計目的是讓開發者們更容易編寫和維護正確的程序,使用體驗如下 :

安全:所有編碼行為都以安全的方式進行。

快速:為了替代基于 C 的語言(C、C++、Objective-C),Swift 的性能必然不能相差太多,且必須持續可預測的,而不只是在一些特定情況下。

表達力強:受益于計算機科學幾十年的發展,Swift 提供了足夠有樂趣、現代的開發過程,且仍然在持續發展中。

Swiftlogo

# 誕生#

在 WWDC 2010 期間,Chris Lattner 剛帶團隊經過大量的努力完成了 Clang 對 C++ 語言的支持,任務完成雖然開心,但其中真正細節的工作也讓人感到無比心累,由此 Chris Lattner 萌生了創造更好的語言的想法 [3]。

最開始 Chris Lattner 只是和 Bertrand Serlet、Dave Zarzycki 討論這個新語言的設計,語言名字叫“Shiny”,寓意“you’re building a shiny new thing”。當時雖然已經有了很多想法,但新語言的未來其實是完全不確定的,因此在 Bertrand Serlet 的推動下,一些想法先在 Objective-C 得到了實現,比如 ARC、modules 甚至是 literals,這些特性都來自于背后 Swift 初期的一些討論。但也有 Objective-C 無法實現的,比如內存安全,要實現內存安全意味著大部分 C 代碼都要被移除,那 Objective-C 也不再是 Objective-C 。

Chris Lattner 自己實現了大部分基本架構,但一個人不可能完成所有,2011 年 4 月經過與管理層討論后,Chris Lattner 開始拉人入伙。這也是 Swift 第一次在內部公開被審視,不可避免地收到了很多刺耳的反饋,但這可能也是很多項目成長的必經之路,批判同時意味著關注,其中可能也指明了未來的方向。

團隊化運作后 Swift 發展飛快,2013 年 7 月開始 Swift 成為了蘋果開發者工具部門的重點項目 。在閉門開發 4 年后,2014 年 Swift 正式發布,當時官宣標簽是“Objective-C without C”,Swift 在設計上就可以與 Objective-C 共存。

# 演進#

Swift 1.0 在 WWDC 2014 首次亮相,由當時蘋果的軟件工程高級副總裁 Craig Federighi 正式發布,并邀請 Chris Lattner 上臺做了 Demo 演示。發布后第一個月的下載就超過了 1100 萬

2015 年初 Stack Overflow 的調研中,Swift 是最受喜愛的編程語言 [6]。2015 年 11 月 Swift 正式開源,代碼托管在 GitHub,第一周的 clone 超過了 6 萬 ,可見初期開發者對于 Swift 的好奇與熱情。

937b4296-3102-11ed-ba43-dac502259ad0.png

2015 年 Stack Overflow 調研:最喜歡的語言

但 Swift 在 3.0、4.0 時期,一直有穩定性問題,幾乎每年都有大變動,有一些更新是向后不兼容的,也意味著這個階段的 Swift 還未準備好應用于大型商業項目。

2019 年 Swift 5.0 發布,終于帶來了 ABI 穩定。Swift 5.0 后,不再引入大的變動,不同版本的 Swift 最終可以編譯為同一個 App,這標志著 Swift 語言的成熟。2019 年另一個標志性事件是 SwiftUI 發布,意在統一所有蘋果設備的開發體驗。

93944282-3102-11ed-ba43-dac502259ad0.png

Swift 的 TIOBE 指數變化及一些關鍵演進

目前 Swift 有完整的工具鏈支撐開發,融入了蘋果的開發者生態,替代 Objective-C 成為主流的蘋果生態開發語言已是必然趨勢。

93c3b454-3102-11ed-ba43-dac502259ad0.png

2021 年 JetBrains 開發者調研:Swift and Objective-C 開發者人數對比

值得一提的是,Chris Lattner 在 2017 年離開蘋果加入了谷歌,在谷歌期間主導了 S4TF 項目,這也是 Swift 在 AI 領域的一次重要嘗試。2020 年 Chris Lattner 從谷歌離職,開始了 AI 編譯器的探索,目前 S4TF 項目已是歸檔狀態,但這個嘗試驗證了 Swift 應用于 AI 的可行性 ,Swift 在性能上較 Python 有一定優勢。

# 蘋果官方生態#

# 工具鏈

官方提供的工具鏈是 Swift 生態的核心部分,除了 Swift 的編譯器、標準庫等,蘋果還提供了一系列支撐學習、開發的優秀工具:

核心庫 :核心庫提供了比標準庫更高級的功能,包括常用的數據、字符集合,單元測試,日期計算等。

調試器 & REPL :基于 LLDB 調試器開發的調試環境,同時也是交互式解釋器。

包管理 SPM :與 Swift 構建系統集成,可以自動化下載、編譯和鏈接依賴的過程。蘋果官方還未提供中心倉服務,仍需要通過 git 來下載三方庫,三方庫的注冊服務已有計劃,但仍未發布 。

Playgrounds :2016 年發布,是一款適用于 iPad 的教育類 App,2022 年 5 月發布的 4.1 版本開始適用于 iPad 與 Mac,不僅僅是一款教育類 App,也可以用于開發,其中利用 iPad 性能開發的輕點拖拽等操作,進一步提升了編碼過程的互動性。

# 框架

2019 年 WWDC 上,蘋果發布了基于 Swift 的聲明式框架 SwiftUI,可以用于開發 watchOS、macOS、iOS 等平臺,基本上涵蓋了所有蘋果產品的系統。

Swift 和 SwfitUI 可以說是直接從語言和開發工具層面直接統一了開發者的開發體驗。在 SwiftUI 推出之前,蘋果不同設備的開發框架并不互通,移動端和桌面端的開發需要掌握不同的知識內容,移動端開發者需要使用 UIKit,桌面端的開發者需要使用 AppKit,WatchOS 的開發者需要使用一種類似堆疊的邏輯 。

SwiftUI 針對現有的問題給出了一些解決思路,聲明式編程對比指令式的編程又加了一層抽象,比如坐標、寬度、字形字號等變量由系統接管,開發者只需要直觀地告訴系統需要放置一個圖像、加點文字等,由此,SwiftUI 的代碼量小了很多,也可以更方便地適配不同尺寸的設備。此外,在數據流通方面,SwiftUI 在 Combine 的協助下實現了單一數據源的管理 。

在開發者的實際體驗中,代碼量和可讀性無疑都有了本質性的提升 。

93fd2c20-3102-11ed-ba43-dac502259ad0.png

WWDC 2019 SwiftUI Demo

但近期也有開發者表明自己在嘗試應用 SwiftUI 到項目時遇到了問題,比如不好用的實時檢查器、延遲問題等,最終直言要暫時放棄 SwiftUI 。

不可否認 SwiftUI 提供了一些很棒的思路,但目前仍未非常成熟,在真正的應用中還未達到設想的效果,要想替換 AppKit、UIKit 還有很長一段路要走。

# 學習 Swift

蘋果為了追求不同設備上用戶體驗的一致,對于軟件開發有一套非常詳細嚴格的標準;但又必須降低開發門檻來吸引更多開發者開發蘋果設備軟件,因此開發工具必須足夠易學好用,才能解決這個矛盾 [16]。Swift 在設計上就是一門易學習的編程語言,同時又有很多現代編程語言的特性,上限很高。

除了語言設計,文檔也是學習一門語言的關鍵。蘋果官方提供了學習文檔和代碼規范,也有大量三方組織或個人分享了優秀的視頻圖文教程,特別是對于初學者來說,可以大大降低學習成本。

此外,為了開發者能更快上手 Swift,蘋果也提供了大量好用的工具,其中 Playgrounds 以代碼玩游戲的設計理念更是革命性的,即使是沒有編碼基礎的人,也可以通過 Playgrounds 迅速掌握 Swift。

9443c464-3102-11ed-ba43-dac502259ad0.png

Swift Playgrounds Demo

# 社區#

# Swift 開源

2015 年 Swift 正式開源,開源后社區可以直接參與到 Swift 的設計和實現。已開源的部分包括編譯器、標準庫、核心庫、LLDB 調試器、包管理和 Xcode 的 Playground 支持 。

不過 Swift 開源項目中超過 90% 的提交還是來自蘋果(除去 ci、未知等賬號的提交),其次谷歌有 800+ 次提交,但占比還不到 1%,剩下其他團隊或個人的提交都不超過 500 次。

除了直接貢獻代碼,開源社區也是用戶與項目開發團隊直接溝通的重要渠道,用戶可以通過提交 issue 來反饋問題和建議。從 Swift 編譯器項目中所有 issue 來看,每月新建 Issue 數在逐漸減少,同時 bug、Compiler 相關的 issue 數量也在逐年下降,印證了項目的穩定性。

948596f0-3102-11ed-ba43-dac502259ad0.png

每月新建 Issue 數量

94a74d18-3102-11ed-ba43-dac502259ad0.png

每年相關標簽的 Issue 數量

# 開發者社區

發布后開發者社區即用戶社區,是語言演進非常直接的驅動力,編程語言項目團隊里的開發者是寫編譯器的人,但可能用的還是 C++,社區里的開發者才是每天在使用 Swift 的人!用戶真正的需求甚至可能改變最初設計者的想法,比如最開始 Swift 核心團隊認為語言不需要 Result,但社區有很多聲音說“我們需要”,因此 Swift 5 又加入了 Result 。

在語言本身的語法模塊都已經穩定的情況下,社區的活躍度可以反映語言的流行程度。

Swift 在 Stack Overflow 的熱度自 2016 年后持續下降,相反 Dart 從 2018 年至今熱度在持續升高;在 Swift 各版本的對比中,一般剛發布后會有一個高峰,隨后逐漸下降,近 3 年,只有 SwiftUI 的熱度相對較高且穩定 [21]。

94c7057c-3102-11ed-ba43-dac502259ad0.png

Stack Overflow 中語言熱度

94ee73e6-3102-11ed-ba43-dac502259ad0.png

Stack Overflow 中 Swift 各版本熱度

# 開發者調研

SlashData 2022 年的開發者生態報告中估計 Swift 開發者人數在 3500 萬,較去年的 2500 萬上升了 40%,不過因為大部分開發者還是和 Objective-C 一起使用,且由于 Objective-C 在嵌入式設備和 AR/VR 領域的應用, Objective-C 開發者的人數也上升了 50% 。

95082868-3102-11ed-ba43-dac502259ad0.png

開發者社區活躍人數

JetBrains 2021 年的 Swift/Objective-C 開發者調研中,有 84% 的開發者表示自己同時使用 Swift 和 Objective-C,其中已經有 64% 的開發者大部分代碼是 Swift。

952c5e72-3102-11ed-ba43-dac502259ad0.png

JetBrains 開發者調研:是否同時使用 Swift 和 Objective-C

調研中絕大部分開發者(89%)并不使用 Swift 開發服務端項目,Swift 更多還是應用于客戶端開發。

95480cf8-3102-11ed-ba43-dac502259ad0.png

JetBrains 開發者調研:是否使用 Swift 開發服務端項目[9]

# 三方庫

對比 Java、Python 等語言,Swift 的三方庫數量并不算很多。目前因為 CocoaPods 有索引功能,仍有大量開發者使用 CocoaPods 來管理項目依賴且短期內不會用 SPM 替換 [9]。CocoaPods 上共有 9 萬多 Swift 和 OC 的庫,其中搜索 Swift 的結果為 1 萬多 。

955ebbce-3102-11ed-ba43-dac502259ad0.png

JetBrains 開發者調研:使用什么工具管理依賴

另外雖然官方沒有提供三方庫注冊服務,但 GitHub 有一個開源項目 Swift Package Index,目前已收集了近 5000 個 GitHub 上的 Swift 項目 [24],其中 json、cli 和 networking 等標簽相關的倉庫較多(剔除了不同系統、框架等相關標簽)。

9571fdba-3102-11ed-ba43-dac502259ad0.png

Swift Package Index 中的倉庫相關標簽

2016 年至今每年新建的庫數量并沒有明顯增長,甚至 2021 年、2022 年新建的庫數量有所減少,不過其中約 70% 庫倉庫今年仍有過活躍行為。

9585423a-3102-11ed-ba43-dac502259ad0.png

Swift Package Index 中的倉庫創建年份

# 應用#

# 官方應用

根據開發者 Timac 關于蘋果使用 Swift 和 SwiftUI 的分析報告 [25],iOS 15 中二進制文件共 4738 個,其中使用了 Swift 的二進制文件共 607 個(占比 13%),使用了 SwiftUI 的二進制文件共 114 個(占比 2%),使用最多的語言仍然是 Objective-C,占比 89%。對比 iOS 14 中,使用了 Swift 的二進制文件占比為 8.4%,使用了 SwiftUI 的二進制文件占比僅為 1%,占比均有所提高。

95a56722-3102-11ed-ba43-dac502259ad0.png

iOS 系統中二進制文件使用編程語言情況

iOS 系統的編程語言仍然以 Objective-C 為主,且短時間內不會完全替換,但蘋果官方對于 Swift、SwiftUI 的應用在不斷加速,iOS 15 中常用應用如 App Store、Health、分屏等已開始使用 Swift,其他如 Books、Maps、Notes 等已開始使用 SwiftUI。Swift 基本上還是會和 Objective-C 一起使用,還不能完全剔除 Objective-C。

在 macOS 中,也可以非常明顯地看到應用 SwiftUI 的增長,從 Monterey 到 Ventura,使用了 SwiftUI (可能同時使用了 AppKit)的比例從 4% 上升到了 10% 。

95c12584-3102-11ed-ba43-dac502259ad0.png

macOS 系統中三種 UI 框架的使用占比

整體來看,蘋果官方的策略是從風險較低的少量應用開始試驗,隨著每次系統更新和 Swift、SwiftUI 的演進,使用比例在不斷加大。

# 第三方應用使用 Swift 情況

2019 年到 2021 年,國內 Top 100 的免費應用中,Swift 混編應用的占比從 22% 上升到了 78%;國外 Top 100 的免費應用中,Swift 混編應用的占比一直較高,2019 年已有 78%,2021 年達到了 82.3% 。

95ecbf8c-3102-11ed-ba43-dac502259ad0.png

國內外 Top 100 應用中 Swift 混編應用占比的變化趨勢

國內互聯網頭部廠商基本上都已經支持 Swift,但也不能代表未來將轉型 Swift 技術。Swift 混編應用占比迅速提高的原因可能是受 2020 年新增的 WidgetKit 導致的,開發者若要提供應用小組件則必須使用 Swift 相關技術 [27]。

# GitHub 開源項目

2016 年至 2021 年,GitHub 上 Swift 開源項目每年新增數量變化不大,基本在 15000 至 20000 之間。GitHub 上 Swift 開源項目增長呈現的平穩趨勢和前文 Swift 三方庫增長、Swift 在 Stack Overflow 的討論度變化基本一致,后續 Swift 大概率會逐步替換現有代碼,有穩定的市場份額,但暫無大規模爆發的契機。

9614b4b0-3102-11ed-ba43-dac502259ad0.png

GitHub 上 Swift 開源項目每年新增數量

*數據來源:GH archive

# 總計#

Swift 已經 ABI 穩定,語言本身基本完善。作為 Objective-C 的替代產品,與 Objective-C 兼容,足夠安全、高性能,且易于學習閱讀,下限低而上限高;同時有蘋果官方的支持,官方系統中每年使用 Swift 混編的原生應用占比在逐年提升,官方發布的 SDK 也可能綁定使用 Swift。

但重要的框架 SwiftUI 還處于成長階段,大部分場景 Swift 仍需要與 Objective-C 混編使用,很難單獨支撐起大型項目的搭建;三方生態發展緩慢,比如在服務端、機器學習、AR/VR 等領域都沒有長足發展,目前基本還是應用于客戶端開發場景。

近幾年 Swift 的成長不算快,應用領域相對單一,暫時沒有爆發契機,但在蘋果開發者生態中會繼續穩定發展,在官方支持下可以逐步替換 Objective-C。下一個機會點也許在蘋果新的設備,我們拭目以待。




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7630

    瀏覽量

    140450
  • SWIFT
    +關注

    關注

    0

    文章

    116

    瀏覽量

    24248
  • WWDC
    +關注

    關注

    0

    文章

    139

    瀏覽量

    19730

原文標題:Swift 生態發展之路

文章出處:【微信號:編程語言Lab,微信公眾號:編程語言Lab】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    蘋果開源Swift Build,強化開發者生態建設

    近日,蘋果公司宣布了一項重大決策:將用于構建Xcode開發環境的工具引擎Swift Build進行開源。這一舉措不僅展現了蘋果對于開發者社區的深度關注,更彰顯了其致力于拓展和優化開發者生態的堅定決心
    的頭像 發表于 02-05 15:03 ?459次閱讀

    TPSM843620 SWIFT?降壓評估模塊

    電子發燒友網站提供《TPSM843620 SWIFT?降壓評估模塊.pdf》資料免費下載
    發表于 12-05 14:05 ?0次下載
    TPSM843620 <b class='flag-5'>SWIFT</b>?降壓評估模塊

    TPS542A50 SWIFT?降壓轉換器評估模塊用戶指南

    電子發燒友網站提供《TPS542A50 SWIFT?降壓轉換器評估模塊用戶指南.pdf》資料免費下載
    發表于 12-04 16:25 ?0次下載
    TPS542A50 <b class='flag-5'>SWIFT</b>?降壓轉換器評估模塊用戶指南

    華秋電子 | 電子發燒友亮相OpenHarmony人才生態大會2024

    ,分享高校、企業在產學研融合方面的先進經驗,全面展現了OpenHarmony在人才生態領域學-考-用-賽-留各環節的最新成果與發展藍圖。華秋電子<電子發燒友>作為合作社
    發表于 12-02 09:45

    OpenHarmony人才生態大會南向生態社區發展論壇在武漢圓滿舉辦

    11月27日,OpenHarmony人才生態大會2024在武漢隆重舉行。當日下午的 OpenHarmony南向生態社區發展論壇(以下簡稱“論壇”)上,眾多社區伙伴、企業代表、技術專家與優秀開發者齊聚,深度分享OpenHarmon
    的頭像 發表于 11-29 10:06 ?514次閱讀
    OpenHarmony人才<b class='flag-5'>生態</b>大會南向<b class='flag-5'>生態</b>社區<b class='flag-5'>發展</b>論壇在武漢圓滿舉辦

    OpenHarmony人才生態大會南向生態社區發展論壇在武漢圓滿舉辦

    11月27日,OpenHarmony人才生態大會2024在武漢隆重舉行。當日下午的 OpenHarmony南向生態社區發展論壇(以下簡稱“論壇”)上,眾多社區伙伴、企業代表、技術專家與優秀開發者齊聚
    發表于 11-29 09:54

    TPS541620 2相SWIFT?降壓轉換器評估模塊用戶指南

    電子發燒友網站提供《TPS541620 2相SWIFT?降壓轉換器評估模塊用戶指南.pdf》資料免費下載
    發表于 11-27 15:21 ?0次下載
    TPS541620 2相<b class='flag-5'>SWIFT</b>?降壓轉換器評估模塊用戶指南

    TPS542A52 SWIFT?降壓轉換器評估模塊用戶指南

    電子發燒友網站提供《TPS542A52 SWIFT?降壓轉換器評估模塊用戶指南.pdf》資料免費下載
    發表于 11-24 13:59 ?0次下載
    TPS542A52 <b class='flag-5'>SWIFT</b>?降壓轉換器評估模塊用戶指南

    TPS54824 SWIFT?降壓轉換器評估模塊用戶指南

    電子發燒友網站提供《開源硬件-TPS54824 SWIFT? 降壓轉換器評估模塊用戶指南 (Rev. B).pdf》資料免費下載
    發表于 11-15 13:53 ?0次下載
    TPS54824 <b class='flag-5'>SWIFT</b>?降壓轉換器評估模塊用戶指南

    TPS543620 SWIFT?降壓轉換器評估模塊用戶指南

    電子發燒友網站提供《TPS543620 SWIFT?降壓轉換器評估模塊用戶指南.pdf》資料免費下載
    發表于 11-15 13:52 ?0次下載
    TPS543620 <b class='flag-5'>SWIFT</b>?降壓轉換器評估模塊用戶指南

    請回答OpenHarmony | 關于開源生態的未來想象,我們現場回答

    數字經濟的發展? 我們邀請了開源大咖們空降出鏡解答 請回答 OpenHarmony 更多開源生態發展軌跡 更多技術先鋒思想碰撞 我們上海見! (直播二維碼) 預約官方直播,精彩不錯過
    發表于 10-12 00:09

    迅龍軟件出席2024開放原子開源生態大會,共謀開源生態繁榮之路

    2024開放原子開源生態大會于9月25至27日在北京亦莊開幕。大會將以“開源賦能產業,生態共筑未來”為主題,匯聚政、產、學、研、用、金等各領域頂尖開源力量,共同探討行業趨勢,聆聽行業巨擘見解,洞悉
    的頭像 發表于 09-26 13:51 ?693次閱讀
    迅龍軟件出席2024開放原子開源<b class='flag-5'>生態</b>大會,共謀開源<b class='flag-5'>生態</b>繁榮<b class='flag-5'>之路</b>

    Swift 6.0引領編程語言新趨勢

    近日,蘋果公司公布了一系列重磅消息:推出iOS/iPadOS 18和macOS 15 Sequoia等操作系統更新,以及Swift編程語言的全新版本——Swift 6.0。此番升級重點關注編程安全性、并發處理能力的提升,并大幅擴展了Sw
    的頭像 發表于 09-20 15:57 ?656次閱讀

    蘋果推出全新開源Swift軟件包

    七月三十一日,蘋果企業總部對外正式發表公告,宣布昨日(即七月二十九日)成功推出全新的開源 Swift 軟件包—— (喚名為 swift-homomorphic-encryption)。此舉旨在為 Swift 編程語言帶來應用便利
    的頭像 發表于 07-31 15:17 ?761次閱讀

    RISC-V在中國的發展機遇有哪些場景?

    的理想選擇。 生態系統建設:多家頭部芯片公司和生態廠商正在積極推進RISC-V在車規級產品的布局,這將有助于RISC-V在汽車領域的快速發展。 4. 數據中心和高性能計算(HPC) 性能與能效比
    發表于 07-29 17:14