跨过山丘-V8、Dart 与 Flutter原代码

跨过山丘-V8、Dart 与 Flutter

33分钟 ·
播放数7
·
评论数0

Dart 为什么没有进入 Chrome,却成为了 Flutter 的核心语言?本期《原代码》从 Lars Bak 的“我没有时间”出发,追踪 V8、Dart、TypeScript、Sky 与 Flutter 如何围绕开发者等待、浏览器治理和真实产品工作负载,走出几条不同的路。

从 Chrome 里空下的位置,到手机屏幕上的一次 Hot Reload:Dart 如何跨过 Web 没有跨过去的那座山。

时间轴

00:00 我没有时间

02:38 把等待藏在语言下面

08:14 两只钟

13:23 原声:更稳妥的赌注

15:39 空位与开关

21:25 Flutter 把时间写进 Dart

28:46 一秒以内

本期资料

- 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 内部大型应用与工具链等多重压力影响。