Dart 3 将成为 100% 健全的空安全语言


根据 Dart 的开发进度,Dart 编程语言的第三个主要版本(Dart 3)将于 2023 年中期亮相,届时 Dart 将成为 100% 健全的空安全语言,变量默认是「非空」的。

空值引用可以追溯到 1964 年左右,当时英国计算机科学家 Tony Hoare 在 ALGOL 语言中引入了这个概念。但他自己却把空值引用称为自己的十亿美元错误,因为它导致了数不清的错误、漏洞和系统崩溃,可能在之后 40 年中造成了十亿美元的损失。

Dart 从 2.12 版本开始支持健全的空安全,但它保留了运行非空安全代码或部分空安全代码的模式(混合模式)。

Dart 通过一系列的静态和运行时检查来提供健全的空安全。每一个使用了空安全的 Dart 库都会拥有所有的静态检查和更严格的编译期的错误提醒。对于包含了空安全库的混合模式程序也是如此。

以混合模式的空安全为例,它让软件包的维护者可以迁移至空安全的同时,未迁移至空安全的使用者也可以享受 Dart 更新时的问题修复和改进。只不过混合模式的程序无法获得与空安全程序的运行时健全性一致的保证。null 很可能从非空安全的库污染到空安全的代码。

Dart 和 Flutter 的产品经理 Michael Thomsen 在博客文章中解释道:

我们的下一个版本,也就是 Dart 3,将完成一个完全健全的空安全语言的开发。作为这项开发工作的最后一步,我们将消除 Dart 语言和核心库 API 中的历史遗留问题,包括移除已停用的核心库 API 以及对非健全的空安全运行的支持。

Dart 的转变将有助于在编译时捕获与类型有关的错误,并应改善代码的可读性、可维护性和提前编译(AOT)。

由于转变巨大,对开发者而言肯定是会产生持续一段时间的影响/阵痛期,开发者最好是可以在 Dart 3 发布之前调整他们的代码。Google 也已经发布了迁移工具,开发者也能够相对轻松地完成迁移工作。

在 Dart 3 发布后,该语言的下一个重要里程碑可能是支持将 Dart 代码编译成 WebAssembly(Wasm),这将使 Flutter Web 应用程序在浏览器中作为原生代码运行成为可能。这项工作需要 W3C 和浏览器厂商的合作,通过 WasmGC 扩展将对垃圾回收语言的支持加入 Wasm。

根据 Stack Overflow 2022 年的开发者调查,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%。


相關推薦

2023-05-11

络原生代码的平台支持。 100% 健全的空安全 Dart 3 已经成为了一种 100% 健全的空安全语言。100% 的空安全性为 Dart 带来了健全的类型系统。你可以相信,如果一个类型说一个值不是null,那么它永远不可能是null。这避免了某

2022-04-02

le内核至5.15.24,修复底层漏洞,进一步提升系统兼容性和安全性,功能层面上积极响应社区用户反馈的需求,开发并集成了大量实用功能。 人脸识别 新增人脸识别功能模块,对已适配的设备支持生物认证,提供更多安全解锁方

2022-10-21

除,并以一个新的、稍有分寸的标题重新发布:"KO 申请成为 CNCF 的一个沙箱项目"。对此,GitHub 上的讨论则认为,谷歌此举这可能只是源于对 CNCF 沙箱提交过程的误解。但早前谷歌就有过向 CNCF 捐赠 Knative 的经验,该项目现已被

2022-09-15

个 Rust 领域的安全实践,包括 Cargo 和 Crates.io,并将成为维护者社区的资源。 OpenSSF 曾在其今年早些时候发布的 10-Point Open Source Security Mobilization Plan 中建议,业界应该努力消除许多漏洞的根源,方法是用 Rust 

2022-05-12

se 的一流集成。“今天,我们宣布 Flutter/Firebase 的集成将成为 Firebase 产品的一个完全支持的核心部分。我们正在将源代码和文档转移到主要的 Firebase 存储库和站点中,你可以期望我们与 Android 和 iOS 同步发展 Firebase 对 Flutter 的

2023-01-30

3D 与游戏世界技术峰会 自 2021 年起 Web 3.0 和元宇宙逐步成为全球科技界的热门概念,科技巨头如 Meta、谷歌、苹果、华为、腾讯、OPPO 等均已在积极布局相关产业,其中一个关键技术就是 3D 引擎,无论是智慧城市、构建虚拟空

2022-10-16

3D 与游戏世界技术峰会 自 2021 年起 Web 3.0 和元宇宙逐步成为全球科技界的热门概念,科技巨头如 Meta、谷歌、苹果、华为、腾讯、OPPO 等均已在积极布局相关产业,其中一个关键技术就是 3D 引擎,无论是智慧城市、构建虚拟空

2023-05-18

件行业分析公司 RedMonk 日前发布了 2023 年第一季度的编程语言排行榜。 收集数据的基本过程如下: RedMonk 从 GitHub 和 Stack Overflow 中提取语言排名,并将它们组合成一个排名,试图反映代码(GitHub)和讨论(Stack Overflow)的关

2023-06-22

并弃用了 -verbose 此版本包含了上游 Go HTML 模板库的一个安全修复,默认情况下不允许在反引号中使用JavaScript。 更多详情可查看:https://github.com/gohugoio/hugo/releases/tag/v0.114.0

2022-11-14

:前面提到的与流行的现有语言的互操作性;任何增加的安全相关功能的可用性;以及与流行框架或项目的关联。TypeScript 有幸兼备了所有的这些,“目前几乎没有迹象表明该语言除了向上发展外还会有其他任何方向,唯一真正

2023-09-08

仍处于非常早期的阶段。但如果做得好,这些语言有潜力成为 Wasm 领域真正的一等公民。该类别中的两个佼佼者是 Moonbit 和 Grain,它们的设计采用了 Go 和 Rust 中的现代语言特性,并针对高效的 Wasm 编译和执行进行了优化。Moonbit&

2022-11-11

新编程语言总是一件很有趣的事,这是因为它们都有可能成为下一个主流语言,没有人愿意错过。但不幸的是,这些新语言大多在短时间内受到关注,却从未有真正的突破。多年来,我们一直在等待 Kotlin、Dart、Julia 等语言努力

2023-03-21

xis PatentSight数据统计,腾讯2021年AI专利拥有数量超越微软成为全球第一。 在基础软件方面,腾讯目前已具备服务器操作系统的全链路自研能力,发起并深度参与了 OpenCloudOS 操作系统开源社区;以及连续第六年入围全球

2023-05-10

。 “2009 年,软件系统获奖者展示了 seL4 微内核,它成为有史以来第一个具有工业强度的通用操作系统,并正式证明了实现的正确性。在随后的几年中,该团队进一步补充证明了 seL4 强制执行完整性和机密性的核心安全属性