根據 Dart 的開發(fā)進度,Dart 編程語言的第三個主要版本(Dart 3)將于 2023 年中期亮相,屆時 Dart 將成為 100% 健全的空安全語言,變量默認是「非空」的。
空值引用可以追溯到 1964 年左右,當時英國計算機科學家 Tony Hoare 在 ALGOL 語言中引入了這個概念。但他自己卻把空值引用稱為自己的十億美元錯誤,因為它導致了數(shù)不清的錯誤、漏洞和系統(tǒng)崩潰,可能在之后 40 年中造成了十億美元的損失。
Dart 從 2.12 版本開始支持健全的空安全,但它保留了運行非空安全代碼或部分空安全代碼的模式(混合模式)。
Dart 通過一系列的靜態(tài)和運行時檢查來提供健全的空安全。每一個使用了空安全的 Dart 庫都會擁有所有的靜態(tài)檢查和更嚴格的編譯期的錯誤提醒。對于包含了空安全庫的混合模式程序也是如此。
以混合模式的空安全為例,它讓軟件包的維護者可以遷移至空安全的同時,未遷移至空安全的使用者也可以享受 Dart 更新時的問題修復和改進。只不過混合模式的程序無法獲得與空安全程序的運行時健全性一致的保證。null 很可能從非空安全的庫污染到空安全的代碼。
Dart 和 Flutter 的產品經理 Michael Thomsen 在博客文章中解釋道:
我們的下一個版本,也就是 Dart 3,將完成一個完全健全的空安全語言的開發(fā)。作為這項開發(fā)工作的最后一步,我們將消除 Dart 語言和核心庫 API 中的歷史遺留問題,包括移除已停用的核心庫 API 以及對非健全的空安全運行的支持。
Dart 的轉變將有助于在編譯時捕獲與類型有關的錯誤,并應改善代碼的可讀性、可維護性和提前編譯(AOT)。
由于轉變巨大,對開發(fā)者而言肯定是會產生持續(xù)一段時間的影響 / 陣痛期,開發(fā)者最好是可以在 Dart 3 發(fā)布之前調整他們的代碼。Google 也已經發(fā)布了遷移工具,開發(fā)者也能夠相對輕松地完成遷移工作。
在 Dart 3 發(fā)布后,該語言的下一個重要里程碑可能是支持將 Dart 代碼編譯成 WebAssembly(Wasm),這將使 Flutter Web 應用程序在瀏覽器中作為原生代碼運行成為可能。這項工作需要 W3C 和瀏覽器廠商的合作,通過 WasmGC 擴展將對垃圾回收語言的支持加入 Wasm。
根據 Stack Overflow 2022 年的開發(fā)者調查,Dart 目前在編程語言受歡迎程度上排名第 16 位。在近 7.2 萬名受訪者中,約有 6.54% 的受訪者在使用 Dart;相比之下,Kotlin(第 15 位)為 9.16%,Rust(第 14 位)為 9.32%,Go(第 13 位)為 11.15%,Ruby(第 17 位)為 6.05%,Assembly(第 18 位)為 5.47%,Swift 編程語言排在第 19 位,占 4.91%。
審核編輯 :李倩
-
編程語言
+關注
關注
10文章
1916瀏覽量
34381 -
應用程序
+關注
關注
37文章
3198瀏覽量
57364 -
Dart
+關注
關注
0文章
9瀏覽量
1731
原文標題:Dart 3將成為100%健全的空安全語言
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論