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