Dart 2 正式发布:专门针对 Web 和 App 的开发而优化 - 开源中国社区
Dart 2 正式发布:专门针对 Web 和 App 的开发而优化
局长 2018年02月24日

Dart 2 正式发布:专门针对 Web 和 App 的开发而优化

局长 局长 发布于2018年02月24日 收藏 17

【腾讯云】如何快速搭建微信小程序?>>>  

昨日,谷歌正式发布了 Dart 2,最新的版本向大家表达了谷歌对 Dart 的愿景 —— Dart 是针对 Web 和移动客户端开发进行专门优化的语言。

Dart 的产品经理 Anders Thorhauge Sandholm 表示,Dart 2 大大加强和精简了类型系统,清理了语法,并重建了大部分开发工具链,使移动和 Web 开发变得更加愉快和高效。Dart 2 还融合了包括 Flutter、AdWords 和 AdSense 在内的语言早期使用者的经验教训,以及针对客户反馈的成千上万大大小小的问题进行了改进。

Dart 2:更好的客户端开发

在 Dart 2 中,Google 采取了进一步措施巩固 Dart 作为客户端开发语言的霸主地位。特别增加了一些新功能,包括强大的类型功能,以及将 UI 定义为代码。

强大、健全的类型功能

AdWords 和 AdSense 背后的团队已经使用 Dart 构建了一些 Google 最大和最先进的 Web 应用,以管理那些给 Google 带来大部分收入的广告。就是在与这些团队进行密切合作合作之后,Google 发现了增强 Dart 类型系统的大好机会,这有助于 Dart 开发人员在开发过程早期发现 bug,并更好地扩展到大型团队构建的应用程序中,提高整体代码质量。

当然这不是唯一的方式,在广袤的 Web 生态系统中,向 JavaScript 添加类型注释的趋势也在增长。例如,TypeScript 和 Flow 都使用类型注释和推理来扩展 JavaScript,以提高分析代码的能力。

在下面的小例子中,Dart 2 的类型推断有助于发现一些微小的错误,并因此帮助提高整体代码质量。

void main() {
  List<int> prices = ['99', '27', '10000', '20000000'];

  // Sort in place from smallest to largest
  prices.sort();

  print('Lowest price is ${prices[0]}!');
}

这段代码代表了什么?你可以合理地预期它会打印“27”,但是,如果没有启用 Dart 2 的声音类型系统,它将打印“10000”,因为按照字典顺序排列,这恰好是字符串列表中最小的元素。但是,使用 Dart 2 时,此代码会给出类型错误。

将 UI 作为代码(UI as code)

在创建 UI 时,你必须在单独的用户界面标记语言和编写应用程序的编程语言之间进行切换,Google 正在努力使 UI 变成一种愉快的体验,以显著减少对上下文切换的需求。Dart 2 可选newconst。这个非常强大的功能本身非常有价值,也为其他事情的发展指明了方向。例如,有了newconst两种选择,我们可以清理 UI 小部件的定义,以便它不再使用单个关键字。

// Before Dart 2
Widget build(BuildContext context) {
  return new Container(
    height: 56.0,
    padding: const EdgeInsets.symmetric(horizontal: 8.0),
    decoration: new BoxDecoration(color: Colors.blue[500]),
    child: new Row(
      ...
    ),
  );
}

// After Dart 2
Widget build(BuildContext context) =>
  Container(
    height: 56.0,
    padding: EdgeInsets.symmetric(horizontal: 8.0),
    decoration: BoxDecoration(color: Colors.blue[500]),
    child: Row(
      ...
    ),
  );
view raw

Dart 的客户端用途

移动

Dart 最重要的用途之一就是 Flutter,它是谷歌新的移动 UI 框架,为 iOS 和 Android 制作高质量的原生界面。

开发人员曾使用 Flutter 构建一个非常受欢迎的节目 Hamilton 的官方应用程序,并在构建时间上打破了记录。Flutter 使用反应式编程风格并逐个像素控制整个 UI。对于 Flutter 而言,Dart 在易学性、反应式编程、出色的开发速度以及具有快速的垃圾回收器、高性能运行系统等方面都符合要求。

Web

Dart 是经过关键性 Web 应用程序验证的平台。它拥有为 Web 量身打造的库,如dart:html,以及完整的基于 Dart 的 Web 框架,使用 Dart 进行 Web 开发的团队会对速度的改进感到非常激动。正如 Google AdWords 工程副总裁 Manish Gupta 所说的那样:

AdWords 前端庞大而复杂,对 Google 的大部分收入至关重要。

我们之所以选择 Dart 是因为其高性能、可预测性和易学性,完善的类型系统,以及完美地支持 Web 和移动应用。

现在,我们的工程师比以前的工作效率高出两到三倍,这让我们十分欣慰。

未来发展

借助 Flutter 和 Dart,开发人员终于有机会使用共享代码库,为 Android、iOS 和 Web 编写高质量的应用程序。此后,团队成员可以在平台之间进行无障碍的切换,并通过代码审查等互助。到目前为止,我们已经看到 AdWords Express 和 AppTree 等团队在移动和 Web 中共享其代码的 50%到 70%。

Dart 是一个开源项目和开放的 ECMA 标准。Google 欢迎对 Dart 核心项目和 Dart 软件包生态系统的改进提出建议的开发者。

你可以在命令行中试用 Flutter 中的 Dart 2 和 Dart SDK。至于 Dart SDK,可从开发通道获取最新的 Dart 2 预发行版,并确保使用具有--preview-dart-2标志的版本运行代码。

最新发布的 Dart 2 是一款高效、简洁、已通过实战检验的语言,能够应对现代应用程序开发的挑战。它已经被这个星球上一些最苛刻的开发者所喜爱,希望你也会喜欢它。

原文链接:https://medium.com/dartlang/announcing-dart-2-80ba01f43b6  
更新日志:https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md#1220
部分内容来自:前端之巅微信公众号

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Dart 2 正式发布:专门针对 Web 和 App 的开发而优化
分享
评论(19)
精彩评论
“在 Dart 2 中,Google 采取了进一步措施巩固 Dart 作为客户端开发语言的霸主地位”
什么成霸主了?
5
不了解 dart 的可以查看这篇科普文 https://www.yoytang.com/dart-intro.html
3
开发团队 KPI 要被扣光了,赶紧弄个 Dart2
2
flutter,现有界面构建方式,全部依赖于代码,不像react native有jsx,xamarin有axml,nativescript有类似于小程序的xml,完全没有效率啊,根本不成熟!
1

引用来自“昵称非法已被屏蔽”的评论

“在 Dart 2 中,Google 采取了进一步措施巩固 Dart 作为客户端开发语言的霸主地位”
什么成霸主了?
"巩固了Dart 作为客户端开发语言的老末的地位“
最新评论
0
回老家了
0
Flutter刚出的时候 我就关注dart了 语言可以 但flutter 根本不能生产 各种坑

0
远不如TypeScript。
1

引用来自“昵称非法已被屏蔽”的评论

“在 Dart 2 中,Google 采取了进一步措施巩固 Dart 作为客户端开发语言的霸主地位”
什么成霸主了?
"巩固了Dart 作为客户端开发语言的老末的地位“
1
tm第一眼看成了Dota2
0
这下kotlin党可以消停一会了~
1
kotlin和Dart到底谁会笑到最后?
0
私下玩玩吧
1
我还是非常支持这个语言的,说真的,现在的ui开发跟后台开发面向的技术需求不一样。就应该在代码 层面去处理。
golang做并发非常轻松,我希望dart原生支持ui也要非常的好。
0
但是,如果没有启用 Dart 2 的【声音】类型系统
3
开发团队 KPI 要被扣光了,赶紧弄个 Dart2
2
flutter,现有界面构建方式,全部依赖于代码,不像react native有jsx,xamarin有axml,nativescript有类似于小程序的xml,完全没有效率啊,根本不成熟!
0

引用来自“mymbrooks”的评论

感觉 Dart 还不如 Angular 流行...
一个语言,一个框架
0

引用来自“昵称非法已被屏蔽”的评论

“在 Dart 2 中,Google 采取了进一步措施巩固 Dart 作为客户端开发语言的霸主地位”
什么成霸主了?
看了一下原文是great language,至于这么翻译对不对,我英语不好不懂
5
不了解 dart 的可以查看这篇科普文 https://www.yoytang.com/dart-intro.html
0
感觉 Dart 还不如 Angular 流行...
0
这机器翻译简直不忍直视。。。。
1
没想到这玩意儿还活着。。。。。。。。。。。。。。。。。。。。
10
“在 Dart 2 中,Google 采取了进一步措施巩固 Dart 作为客户端开发语言的霸主地位”
什么成霸主了?
顶部