0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

OSC开源社区 来源:OSC开源社区 作者:OSC开源社区 2022-12-12 14:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

根据 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。

1ec61aee-7986-11ed-8abf-dac502259ad0.png

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

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程语言
    +关注

    关注

    10

    文章

    1965

    浏览量

    39873
  • 应用程序
    +关注

    关注

    38

    文章

    3346

    浏览量

    60421
  • Dart
    +关注

    关注

    0

    文章

    9

    浏览量

    1908

原文标题:Dart 3将成为100%健全的空安全语言

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    3D安全传感器的安全性能行业标准有哪些

    随着工业自动化发展,3D立体安全防护传感器成为保障人机协作安全的关键设备。其合规性需严格遵循ISO13849-1、IEC61508等国际标准及GB28526国内标准,通过PLd性能等级
    的头像 发表于 04-24 15:49 868次阅读
    <b class='flag-5'>3</b>D<b class='flag-5'>安全</b>传感器的<b class='flag-5'>安全</b>性能行业标准有哪些

    汽车网络安全 ISO/SAE 21434是什么?(一)

    ISO(国际标准化组织)与SAE(美国汽车工程师学会)联合制定,2021 年 8 月正式发布,核心替代此前的 SAE J3061 指南,成为汽车网络安全的核心技术基准。 1. 核心定位 汽车网络安全
    发表于 04-07 10:37

    汽车网络安全开发语言选型指南:C/C++/Rust/Java等主流语言对比+Perforce QAC/Klocwork工具支持

    汽车网络安全如何选编程语言?C、C++、Rust、Java……谁更适合AUTOSAR、ISO/SAE 21434?一文了解8种主流语言的优劣与适用场景,以及Perforce QAC/Klocwork对MISRA、CERT等规范的
    的头像 发表于 12-26 11:13 660次阅读
    汽车网络<b class='flag-5'>安全</b>开发<b class='flag-5'>语言</b>选型指南:C/C++/Rust/Java等主流<b class='flag-5'>语言</b>对比+Perforce QAC/Klocwork工具支持

    微量氧传感器在分制氮工艺中的重要性

    分制氮是一种从空气中分离氮气的高效技术,广泛应用于工业生产、化工、食品、电子等领域。通过先进的空气分离技术,分制氮可以高效、稳定地生产出高纯度氮气,以满足不同行业的多样需求。 分制氮的基本原理
    的头像 发表于 12-25 10:15 441次阅读
    微量氧传感器在<b class='flag-5'>空</b>分制氮工艺中的重要性

    3秒响应、实时告警!智能井盖如何成为城市安全的“第一道防线”?

    智能井盖监测系统通过高精度陀螺仪实时感知井盖倾斜、移位等异常状态,3秒内触发告警并上传数据,有效预防坠井事故。相比传统依赖人工巡检的方式,该系统实现从“事后处置”到“事前预警”的安全升级。设备具备
    的头像 发表于 12-09 11:57 469次阅读
    <b class='flag-5'>3</b>秒响应、实时告警!智能井盖如何<b class='flag-5'>成为</b>城市<b class='flag-5'>安全</b>的“第一道防线”?

    功率放大器在微流控超声化实验中的应用

    目的:本实验利用超声换能器驱动微流控基底产生100kHz~2MHz的振动,诱导微流道内发生强烈的声压变化,同时利用高速显微摄影的手段观察微流控内化行为。实验过程
    的头像 发表于 11-20 19:03 5539次阅读
    功率放大器在微流控超声<b class='flag-5'>空</b>化实验中的应用

    一文了解Mojo编程语言

    资源受限环境,如物联网设备或实时控制系统。 总的来说,Mojo 的独特之处在于它填补了 Python 与底层语言之间的性能鸿沟,同时保持了开发者熟悉的语法和生态。随着其工具链的完善,Mojo 有望成为 AI 和高性能计算领域的重要工具。
    发表于 11-07 05:59

    无线充电器隔充电的原理

    充电技术通过毫米波实现远距离能量传输,突破传统无线充电的物理限制。
    的头像 发表于 11-01 08:31 1667次阅读
    无线充电器隔<b class='flag-5'>空</b>充电的原理

    芯光缆还分束状和带状吗?

    芯光缆本身并不直接分为束状和带状,其分类主要基于结构设计和应用场景,与束状、带状光缆的分类维度不同。以下为具体分析: 芯光缆的核心分类逻辑 芯光缆(Hollow-core fiber)是以空气
    的头像 发表于 10-31 09:30 475次阅读

    如何实现NXP S32K3系列MCU安全调试

    随着汽车电子系统变得越来越智能,对功能安全(Safety)的要求越来越高,同时信息安全(Security)也越来越被关注,安全调试(Secure Debug)机制已成为一个重要的信息
    的头像 发表于 08-18 11:07 3449次阅读
    如何实现NXP S32K<b class='flag-5'>3</b>系列MCU<b class='flag-5'>安全</b>调试

    Android Studio中的Gemini全面支持Dart和Flutter开发

    在 Android Studio 中创建 Android 应用的 Flutter 开发者将迎来一次重大的飞跃: Android Studio 中的 Gemini 已全面支持 Dart
    的头像 发表于 08-06 13:52 1521次阅读
    Android Studio中的Gemini全面支持<b class='flag-5'>Dart</b>和Flutter开发

    珈港科技JC100安全芯片简介

    JC100是通用型低功耗物联网安全芯片,实现数据加密和安全认证的双重功能兼容。与主流方案兼容,无需软硬件改动。适用于:防抄板、生态链控制、安全启动、算法保护等场景。
    发表于 07-23 10:56 1次下载

    珈港科技JC100安全芯片,助力行业伙伴构建更安全的消费电子产品

    珈港科技推出的安全芯片产品——JC100旨在为消费电子行业提供更加便捷易用的高安全指标加密芯片,助力行业伙伴构建更安全的产品。PUF安全技术
    的头像 发表于 07-16 11:18 1483次阅读
    珈港科技JC<b class='flag-5'>100</b><b class='flag-5'>安全</b>芯片,助力行业伙伴构建更<b class='flag-5'>安全</b>的消费电子产品

    物联网未来发展趋势如何?

    :随着物联网设备和传感器的普及,数据安全和隐私保护将成为物联网行业发展的重要关注点。保护用户数据的安全和隐私,建立完善的数据安全体系和法律法规,是物联网行业可持续发展的关键。只有确保数
    发表于 06-09 15:25

    从工业园区到充电站!ACCU-100 如何成为微电网全能管理专家?

    当 “双碳” 目标成为国家能源转型的核心引擎,微电网作为分布式能源高效利用的关键载体,正迎来前所未有的发展机遇。如何让不同场景下的微电网系统既符合政策导向,又实现安全、经济、智能运行?安科瑞
    的头像 发表于 06-06 16:29 675次阅读
    从工业园区到充电站!ACCU-<b class='flag-5'>100</b> 如何<b class='flag-5'>成为</b>微电网全能管理专家?