50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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:005634
用户头像

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

关注

评论 1 条评论

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

代码级质量技术之基本框架介绍

百度Geek说

单元测试 开发语言 C++ 企业号 5 月 PK 榜

伊利与腾讯云 CODING 的「水乳交融」启示录

CODING DevOps

DevOps 最佳实践 数字化转型 CODING

企业号 6 月 PK 榜,火热开启!

InfoQ写作社区官方

热门活动 企业号 6 月 PK 榜

优秀的屏幕取色软件:ColorSnapper2激活版

真大的脸盆

Mac Mac 软件 屏幕取色器

“源生无限,同行致远”,加速迈向智能世界

说山水

MaxCompute 物化视图智能推荐最佳实践

阿里云大数据AI技术

大数据 算力加速 智能推荐 企业号 5 月 PK 榜

央企财务共享建设路径四大趋势洞察

用友BIP

财务共享

国内一流地方金融控股集团-长投控股怎样建设财务共享平台?

用友BIP

财务共享

业务高速增长,如祺出行如何用腾讯云消息队列 RocketMQ 应对挑战

科技热闻

2023上海国际嵌入式展 | 如何通过生命周期管理工具创建完整、可追溯的嵌入式开发

龙智—DevSecOps解决方案

嵌入式系统 嵌入式开发 上海国际嵌入式展

OIDC & OAuth2.0 认证协议最佳实践系列 02 - 授权码模式(Authorization Code)接入 Authing

Authing

低代码 OAuth 2.0 OIDC Authing

OIDC & OAuth2.0 协议及其授权模式详解|认证协议最佳实践系列【1】

Authing

身份认证 OAuth 2.0 单点登录 OIDC

强!PCB“金手指”从设计到生产全流程

华秋PCB

工具 PCB 连接器 PCB设计 金手指

解读与用户一起“跳动”的开源实时监控工具 HertzBeat

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 5 月 PK 榜

融云参编中国信通院「办公即时通信研究报告」,并入选「典型行业案例」

融云 RongCloud

PaaS 即时通讯 办公 信息 融云

软件测试/测试开发丨Web自动化测试-高级定位CSS

测试人

CSS 程序员 软件测试 自动化测试 测试开发

神笔马良看了都鼓掌

百度Geek说

人工智能 AIGC 企业号 5 月 PK 榜

合合信息商业大数据技术为农商行打造数字化转型专项方案

合合技术团队

数据挖掘 大数据 金融

架构训练营模块二作业

Geek_3d7c4d

NGINX Service Mesh 中的 mTLS 架构

NGINX开源社区

nginx Service Mesh

JWT真的安全吗?如何解决该问题

JWT

平行云X火山引擎:探索XR观展的极致体验

火山引擎边缘云

XR 火山引擎 实时云渲染 平行云 火山引擎边缘云

全球化财务如何通过全球核算助力跨国业务的稳定增长和持续发展?

用友BIP

中企出海 全球化财务

玩转服务器之网站篇:新手使用WordPress搭建博客和静态网站部署

京东科技开发者

Wordpress 部署 服务器 WordPress 企业号 5 月 PK 榜 静态网站部署

DB-GPT: Github 两周2.6k star 数据库领域的GPT来了~

csunny

GPT autogpt LLMs

2022 Kube-OVN开源社区年度报告

York

开源 云原生 k8s 容器网络 cni

公用事业财务共享如何建,看南京水务立标杆

用友BIP

财务共享

自动驾驶研发解决方案,百度智能云市场份额第一!

Baidu AICLOUD

自动驾驶 AI 大底座

PAG动效框架源码笔记 (四)渲染框架

olinone

ios android 动画 移动 特效

SpringCloud 中 Zuul 网关原理及其配置

Java Spring Cloud 网关 Zuul

淬体归元,运营商资源域元数据管理

鲸品堂

大数据 管理 元数据 企业号 5 月 PK 榜

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