Dart 为什么没有进入 Chrome,却成为了 Flutter 的核心语言?本期《原代码》从 Lars Bak 的“我没有时间”出发,追踪 V8、Dart、TypeScript、Sky 与 Flutter 如何围绕开发者等待、浏览器治理和真实产品工作负载,走出几条不同的路。
从 Chrome 里空下的位置,到手机屏幕上的一次 Hot Reload:Dart 如何跨过 Web 没有跨过去的那座山。
时间轴
我没有时间
把等待藏在语言下面
两只钟
原声:更稳妥的赌注
空位与开关
Flutter 把时间写进 Dart
一秒以内
本期资料
- Dart 2011 年发布:developers.googleblog.com
- Dartium 技术预览:blog.chromium.org
- Dart for the Entire Web:news.dartlang.org
- V8 十周年官方回顾:v8.dev
- TypeScript 2012 年发布:learn.microsoft.com
- Dart 团队欢迎 TypeScript:news.dartlang.org
- ECMA-408 官方页面:ecma-international.org
- Dart 2 stable:dart.dev
- Dart 2.3 UI-as-code:dart.dev
- Dart VM 十年回顾:mrale.ph
- Flutter 1.0 发布:developers.googleblog.com
源码与工程记录
- Flutter 2014 Open the Sky 初始 commit:github.com
- Sky-Dart 构建开关 commit:github.com
- 首个功能性 Sky-Dart commit:github.com
- Sky 正式切换 Dart 的 Mojo revision:chromium.googlesource.com
- Flutter iOS 预编译 snapshot commit:github.com
- Flutter 仓库:github.com
- Dart SDK 仓库:github.com
访谈与历史原声来源
- GOTO Aarhus 2012,Anders Hejlsberg and Lars Bak:www.youtube.com
- Dart Developer Summit 2015,Sky: An Experiment Writing Dart for Mobile:www.youtube.com
- GOTO Chicago 2016,Want to be a Better Programmer?:www.youtube.com
说明与延伸阅读
- Dart 和 Go 最初面向不同的问题域,不能写成直接的内部竞品。
- TypeScript 的兼容路线与 Dart 有部分重叠,但没有证据证明它直接导致 Chrome 终止 Dart VM 计划。
- Sky 的 Dart 迁移早于 2015 年 3 月的 Chrome 路线转向;Flutter 不是随后临时创造的“救援项目”。
- ECMA-408 的规范发布不等于多浏览器原生 Dart VM 的采用。
- Flutter 深刻影响了 Dart 的运行时与产品语境,但 Dart 2 的类型和语言演进还受到 Web 编译器、Google 内部大型应用与工具链等多重压力影响。

