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%。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Boxicons —— 开源 Web 图标库
Boxicons 是一个精心设计的开源图标集,包含 1500 多个图标,可丰富您的网站/应用程序体验。 安装 要通过 npm 安装,只需执行以下操作: $ npm install boxicons --save 导入模块 import 'boxicons'; 用法 通过 CSS 使用 将样式表包含在文档的<head> <head> <link rel="stylesheet" href="boxicons.min.css"> </head> 可以使用远程版本 <head> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/boxicons@latest/css/boxicons.min.css"> <!-- or --> <link rel="stylesheet" href="https://unpkg.com/boxicons@latest/css/boxicons.min.css"> </head> 要在页面...
- 下一篇
树莓派聘请间谍设备专家引争议
树莓派(Raspberry Pi)宣布聘请了一名间谍设备制作专家 Toby Roberts。在加入树莓派基金会之前,Toby Roberts 曾是英国东部地区特别行动组(ERSOU)的一名警察,在工作中使用树莓派构建了很多监控技术。 “我曾经是一名警官,负责处理英国东部地区一些严重的有组织犯罪和恐怖威胁事件。我当了 15 年的技术监视官,所以我做了一些东西来隐藏视频、音频和其他秘密装备。你真的不希望你的敏感警察设备被发现,所以我会把它伪装成别的东西,比如一件街道家具或家居用品。我当时使用的各种工具和设备真正影响了我今天的工作。” Roberts 表示,自己多年来在各种警察战术中大量使用了 Raspberry Pi。他还非常喜欢自己设计和构建 3D 打印机,并将 3D 打印技术与许多 Raspberry Pi 项目进行了结合,包括制造了基于 RP2040 的光剑、Raspberry Pi Pico Iron Man reactors 等。不过Roberts 的任命公告并没有提到他在做警察期间是如何使用 Raspberry Pi 的,也没有提到他今后是否还会向前同事或类似机构咨询。 树莓派...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS关闭SELinux安全模块
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库