10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

Dart 重启!Dart 2 正式发布,目标成为移动与 Web 开发主流语言

  • 2018-08-08
  • 本文字数:3695 字

    阅读完需:约 12 分钟

今天,Google Dart 产品经理宣布 Dart 2 正式发布,这标志着 Dart 语言的重启,它的目标是成为主流的移动和 Web 开发语言。同时,Google 还宣布重构 Dart Web 平台,对开发者来说,这是一个高效率、高性能和可扩展的组合。

由于 Flutter 已经与 Dart 2 SDK 绑定了几个月了,相信许多 Flutter 的开发者已经享受了 Dart 2 的许多优势,由于框架和语言之间具有耦合的紧密关系,因此 Dart 2 正式发布对 Flutter 正式版来说,是一个重要的里程碑。

Dart 在飞速发展

Dart2 的发布意味着 Dart 语言的重启:一个目标成为主流的移动和 Web 开发语言。它专注于为移动和 Web 应用程序提供快速开发和出色的用户体验。Google 希望开发者能构建出高效的客户端应用程序,并能将编程语言、框架、组件三者有效结合,减少样板代码,专注于业务逻辑,同时谷歌也会提供一些识别早期错误的、实现强大调试功能和运行小而快的运行时(runtime )代码的工具。

在过去一年中,Dart 获得了巨大的增长,谷歌官方的数据显示,用户量在过去一年内增长了 10 倍,在上个季度中,Dart 也是 GitHub 发展最快的语言之一。

在 Google 内部,Dart 也是 Google 用于开发 Web 应用程序的为数不多的几种语言之一,它拥有来自十个不同项目的数百万行代码,其中包括 Google Ads、Google Shopping 和来自 Google 内部的基础架构团队的项目。

事实上,你可能已经在开始使用 Dart 了,只是你没有发现而已:Dart 已经用于 Sass 样式表预处理器中,以使其运行速度更快、更易于编写。Sass 在 Homebrew 和 Chocolatey 上以独立可执行文件的形式进行分发,并在 npm 上编译为纯 JavaScript。

Dart 还可以在没有外部依赖的情况下在任何地方轻松地安装应用程序,引入开发者的工作流。

Google 称,Dart 2 的目的有三个:优化语言开发,增强 Google 对 Web 和移动框架的支持能力,将 Google 内部的一些支持 Dart 的工具和组件带给外部的开发者。

Dart 2:优化客户端

正如 Google 在今年年初宣称的那样,Dart 拥有一个健全、完整的生态系统,这意味着在你运行你的应用程序之前,在编译期间就能发现大量的问题。Google 说,当他们将 Dart 应用到 Google 中的超大型应用程序中时,他们在开发早期就能发现很多的错误,为他们后期避免了很多麻烦,也保证了代码的质量。

有了 Dart 2,表达式的值与表达式静态类型不匹配的情况将不会再发生了,这意味着你可以将代码扩展到数百万行,处理大型的重构项目,高效地部署你的代码。

复制代码
final _field = [3.14, 6.28];
void main() {
// No type parameter is provided, but <int> is inferred
print([1, 2, 3].runtimeType); // List<int>
// If types are unmatched, their common base type is used
// int (1) and double (3.14) are both `num`
print([1, 3.14].runtimeType); // List<num>
// Inference goes beyond variables.
// You can omit types on fields, too.
print(_field.runtimeType); // List<double>
}

Dart on the Web:丰富、强大的框架

Web 应用程序从一开始就是 Dart 使命的核心,实际上,Google 大多数 Dart 开发都是针对 Web 应用程序的。其中,最重要的一个是 Google Ads,它推动了数十亿美元的 Web 经济的发展。Google 在将代码迁移到 Dart 的过程中,UI 代码量减少了 40%,同时还提高了开发人员的工作效率和应用程序的质量。

Dart SDK 不仅提供了很多访问现代浏览器 API 的库,而且还支持 Angular 框架以构建复杂的 Web 应用程序。

AngularDart 5 作为 Dart 2 的一部分,它充分利用 Dart 的类型系统和新的构建系统(见下文)在开发过程中提供快速的增量构建,并在部署过程中提供 JavaScript 的编译功能。

Google 表示,目前他们在框架上的投资已经扩展到核心组件上了,你现在可以通过这个链接访问这些组件: https://dart-lang.github.io/angular_components_example/

Dart 2 具有灵活的开发工具

Dart 2 让 Dart 成为编译 JavaScript 的编程语言,它具有 Web 开发人员所期待的开发周期,以及出色的运行时(runtime)性能。同时它还具有大多数 JS 目标语言匹及的优点:丰富的类型系统和对原生移动应用程序的强大支持。

使用 Dart 2 进行开发,Web 工具采用纯 JavaScript 开发模型和两个互补的 JavaScript 编译器。开发编译器 dartdevc 提供快速的增量编译,同时生成易于阅读和调试的 JavaScript。这使得生成编译器 dart2js 能够专注于为桌面的移动应用程序的 PWA 生成高度优化的 JavaScript。

Dart 的 Web 工具基于新的构建系统,旨在实现快速,可调试和可扩展的目标。现在,将 Sass 编译为 CSS 或将 Dart 编译为 JavaScript 等任务发生在一个工具链中,该工具链在你更改应用程序的各个部分时,支持快速地增量更新。构建系统还旨在支持 Web 之外的应用。例如:Flutter 开发人员使用它来生成 JSON 序列化代码。

Dart 2 还有一组扩展的开发工具。除了支持 Android Studio 和 JetBrains 套件工具(包括 IntelliJ IDEA 和 WebStorm)之外,还支持带有 Dart Code 扩展的 Visual Studio 代码。

最后,Dart SDK 附带了其他有用的工具:一个与包站点并用的包管理器,一个静态分析器,一个作为包使用的 linter,以及用于编辑符合 Dart 样式指南的 Web 文档和代码格式的工具。

最后,Google 表示,Dart 更新的消息会更新在 Dart Announcements 中,欢迎关注。开发者在使用 Dart 2 的过程中,有任何问题,可在 Gitter 社区与他们沟通。

相关链接

Gitter: https://gitter.im/dart-lang/home

Dart Announcements: https://groups.google.com/a/dartlang.org/forum/#!forum/announce

Dart style guide: https://www.dartlang.org/guides/language/effective-dart/style

Dart 新的构建系统: https://github.com/dart-lang/build

包站点: https://pub.dartlang.org/

静态分析器: xda-developers.com

dart2js: https://webdev.dartlang.org/tools/dart2js

dartdevc: https://webdev.dartlang.org/tools/dartdevc

查看英文原文: https://medium.com/dartlang/dart-2-stable-and-the-dart-web-platform-3775d5f8eac7

2018-08-08 19:005536
用户头像

发布了 83 篇内容, 共 51.2 次阅读, 收获喜欢 187 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

VMware ESXi 7.0 U3v 下载 - 领先的裸机 Hypervisor

sysin

esxi

HarmonyOS NEXT 中级开发笔记:ArkUI实现演唱会票务页面

chengxujianke

HarmonyOS NEXT 中级开发笔记:基于ArkUI方舟开发框架的家庭菜谱应用实践

chengxujianke

HarmonyOS NEXT 中级开发笔记:基于ArkUI的减脂膳食应用界面实践

chengxujianke

HarmonyOS NEXT 中级开发笔记:基于ArkUI的休闲棋盘游戏实现

chengxujianke

Arthas vmoption(查看和修改 JVM里诊断相关的option)

刘大猫

JVM 监控 Arthas 监控工具 vmoption

Arthas jvm(查看当前JVM的信息)

刘大猫

人工智能 JVM 监控 Arthas 监控工具

Gemma 3n 新增音视频理解,可在手机运行;Gemini Live API 升级主动音视频,能记录关键事件和适时回应丨日报

声网

VMware vCenter Server 7.0U3v 下载 - 集中管理 vSphere 环境

sysin

esxi

Gemini 刚发布的「主动音频」和「主动视频」是什么?对谈 Project Astra 主管

声网

VMware vSphere 7.0 Update 3v 下载 - 数据中心虚拟化和云原生平台

sysin

esxi

HarmonyOS NEXT 中级开发笔记:ArkUI实现动态主题切换的艺术设计实践

chengxujianke

AI 极客低代码平台快速上手 -- 生成鸿蒙代码

华哥的全栈次元舱

低代码平台 vuetify 纯血鸿蒙 AI极客 AIGC低代码平台

HarmonyOS 如何实现传输中的数据加密

网罗开发

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT 实践分享

构建安全护盾:HarmonyOS 应用的数据安全审计与日志管理实战

网罗开发

鸿蒙 HarmonyOS HarmonyOS NEXT

什么是实时流数据?核心概念与应用场景解析

镜舟科技

数据采集 StarRocks 流批一体 OLAP 数据库 实时流数据

HarmonyOS NEXT 中级开发笔记:ArkUI实现电影票务应用界面

chengxujianke

2025 年 6 个最佳开源工单系统推荐

NocoBase

开源 低代码 无代码 工单系统 IT工单管理

HarmonyOS NEXT 中级开发笔记:电竞直播应用ArkUI实践

chengxujianke

HarmonyOS NEXT 中级开发笔记:ArkUI在打车出行类应用的实践

chengxujianke

什么是SDK集成,与API有什么区别?白板SDK集成攻略分享!

职场工具箱

sdk 在线白板 办公软件 SDK 教程 AIGC

全球第一 AI 录音笔品牌,如何搭建运营与客服系统?

NocoBase

开源 AI 低代码 无代码 客服系统

VMware ESXi 7.0U3v macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)

sysin

esxi

HarmonyOS NEXT 中级开发笔记:ArkUI在汽车智驾类应用中的实践

chengxujianke

HarmonyOS NEXT 中级开发笔记:ArkUI实现交通地图导航组件

chengxujianke

电脑浓雾之上,一轮鸿蒙之火

脑极体

AI

VMware ESXi 7.0U3v macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版

sysin

esxi

HarmonyOS NEXT 中级开发笔记:ArkUI实现泊车助手UI布局

chengxujianke

HarmonyOS NEXT 中级开发笔记:ArkUI实现短剧播放器界面

chengxujianke

采用XIRAID引擎和Kioxia PCIe5驱动器的虚拟环境中PostgreSQL的高性能存储解决方案

Sergey Platonov

性能测试 高性能计算, 数据库· 安装指南

HarmonyOS NEXT 中级开发笔记:ArkUI实现棋类游戏界面交互

chengxujianke

Dart重启!Dart 2正式发布,目标成为移动与Web开发主流语言_语言 & 开发_Kevin Moore_InfoQ精选文章