发布 Deno 1.0

Deno 最终因第一个公开版本而见到了一丝曙光。虽然还不确定它是否会成为下一个大事件,但希望很大。

发布 Deno 1.0

Deno 最终因第一个公开版本而见到了一丝曙光。虽然还不确定它是否会成为下一个大事件,但希望很大。

JavaScript 使其进入太空

发射 SpaceX Dragon 时,JavaScript 被带入太空中!Dragon 2 飞行界面使用 Chromium 和 JavaScript 构建并将 C++ 用于飞行计算机。

JavaScript 使其进入太空

发射 SpaceX Dragon 时,JavaScript 被带入太空中!Dragon 2 飞行界面使用 Chromium 和 JavaScript 构建并将 C++ 用于飞行计算机。

2020

可选链接和空值合并转向了 ES2020

两项提议均已移至第 4 阶段。语言语法使用两个新的运算符 ?.?? 进行了扩展,这两个运算符有助于编写更安全的代码。

可选链接和空值合并转向了 ES2020

两项提议均已移至第 4 阶段。语言语法使用两个新的运算符 ?.?? 进行了扩展,这两个运算符有助于编写更安全的代码。

2019

宣布推出 React Hooks

Sophie Alpert、Dan Abramov 和 Ryan Florence 将问题描述为“包装器糟糕、组件大、类令人困惑”,并提出 React Hooks 作为解决方案。

宣布推出 React Hooks

Sophie Alpert、Dan Abramov 和 Ryan Florence 将问题描述为“包装器糟糕、组件大、类令人困惑”,并提出 React Hooks 作为解决方案。

Ryan Dahl 展示了 Deno 的原型

Node.js 的创作者 Ryan Dahl 在 JSConf EU 2018 上发表演讲并介绍了用于 JavaScript 和 TypeScript 的新运行时 Deno。本次演讲的题目为 10 Things I Regret About Node.js,在 YouTube 上仍可观看。

Ryan Dahl 展示了 Deno 的原型

Node.js 的创作者 Ryan Dahl 在 JSConf EU 2018 上发表演讲并介绍了用于 JavaScript 和 TypeScript 的新运行时 Deno。本次演讲的题目为 10 Things I Regret About Node.js,在 YouTube 上仍可观看。

2018

发布 Prettier 1.0

Christopher Chedeau 和 James Long 发表了一篇博文,介绍 Prettier 1.0 版本。
“它最初只是一项实验,但显然引起了很多人的共鸣,仅仅两个月的时间便积累了大约 7000 颗 GitHub 星星,每月 npm 的下载量超过 100,000 次。”

发布 Prettier 1.0

Christopher Chedeau 和 James Long 发表了一篇博文,介绍 Prettier 1.0 版本。
“它最初只是一项实验,但显然引起了很多人的共鸣,仅仅两个月的时间便积累了大约 7000 颗 GitHub 星星,每月 npm 的下载量超过 100,000 次。”

初次提交 Temporal 提议

Maggie Johnson-Pint 提议 Temporal,这是一个全局对象,充当顶级命名空间,并将现代日期/时间 API 引入到 ECMAScript 中。

初次提交 Temporal 提议

Maggie Johnson-Pint 提议 Temporal,这是一个全局对象,充当顶级命名空间,并将现代日期/时间 API 引入到 ECMAScript 中。

2017

Angular 面世

构建 AngularJS 的团队重新对其进行编写,并介绍了使用 TypeScript 编写的 Angular 2。
此时,不少团队弃用了支持 React 等库的 AngularJS。有些开发者甚至向其曾经深爱的框架发出了分手信

Angular 面世

构建 AngularJS 的团队重新对其进行编写,并介绍了使用 TypeScript 编写的 Angular 2。
此时,不少团队弃用了支持 React 等库的 AngularJS。有些开发者甚至向其曾经深爱的框架发出了分手信

首次提交 TC39 提议存储库

该存储库包含向 ECMAScript 提出建议的各个阶段相关信息

首次提交 TC39 提议存储库

该存储库包含向 ECMAScript 提出建议的各个阶段相关信息

2016

ES2015,ECMAScript 重大更新

本次更新包含箭头函数表达式、let 和 const 关键字、类声明、promise、生成器以及许多其他改进。
从此版本开始,ECMAScript 每年也会定期得到更新。

ES2015,ECMAScript 重大更新

本次更新包含箭头函数表达式、let 和 const 关键字、类声明、promise、生成器以及许多其他改进。
从此版本开始,ECMAScript 每年也会定期得到更新。

2015

io.js:Node.js 一分为二

io.js:Node.js 一分为二

  

首次提交 Babel.js

Sebastian McKenzie 启动一个新项目,旨在帮助将 ECMAScript 新版本转换为旧版 JavaScript 引擎可以处理的版本。

首次提交 Babel.js

Sebastian McKenzie 启动一个新项目,旨在帮助将 ECMAScript 新版本转换为旧版 JavaScript 引擎可以处理的版本。

Evan You 发布 Vue.js

“我想,如果我可以仅提取我真正感兴趣的 Angular 部分,然后构建一些轻量化的内容,其中不包含任何其他概念,情况会怎么样呢?我对其内部实现的工作原理也很好奇。我开始这个实验的时候只是尝试复制这个最小的工具集合,如声明数据绑定。这基本上就是 Vue 的开始。”

Evan You 发布 Vue.js

“我想,如果我可以仅提取我真正感兴趣的 Angular 部分,然后构建一些轻量化的内容,其中不包含任何其他概念,情况会怎么样呢?我对其内部实现的工作原理也很好奇。我开始这个实验的时候只是尝试复制这个最小的工具集合,如声明数据绑定。这基本上就是 Vue 的开始。”

2014

GitHub 推出 Electron

GitHub 开发了 Atom Shell,该框架后来被重命名为 Electron。开发该框架的目的是“创建一种简单明了的框架,让用户能够使用 Web 技术和所有原生修剪来构建跨平台的桌面应用。”

GitHub 推出 Electron

GitHub 开发了 Atom Shell,该框架后来被重命名为 Electron。开发该框架的目的是“创建一种简单明了的框架,让用户能够使用 Web 技术和所有原生修剪来构建跨平台的桌面应用。”

React 变为开源

Tom Occhino 和 Jordan Walke 在 JSConf US 2013 上介绍了 React。React 变成开源项目。
大会上的观众表示怀疑。有些人认为 React 后退了一大步。出现这种情况是因为大部分与会人员都是“早期采用者”和“早期多数使用者”,而 React 的目标受众是“创新者”。

React 变为开源

Tom Occhino 和 Jordan Walke 在 JSConf US 2013 上介绍了 React。React 变成开源项目。
大会上的观众表示怀疑。有些人认为 React 后退了一大步。出现这种情况是因为大部分与会人员都是“早期采用者”和“早期多数使用者”,而 React 的目标受众是“创新者”。

2013

TypeScript 公开化

经过 2 年的内部开发后,Microsoft 推出了名为 TypeScript 的 JavaScript 超集。他们在尝试将 JavaScript 用于大规模的开发过程中开发了 TypeScript 。
TypeScript 给人的第一印象极具争议。例如,Miguel de Icaza 突显了大量的优势,但也引起了相应的担忧,因为不同于 Microsoft Visual Studio,TypeScript 在工具方面缺少支持。

TypeScript 公开化

经过 2 年的内部开发后,Microsoft 推出了名为 TypeScript 的 JavaScript 超集。他们在尝试将 JavaScript 用于大规模的开发过程中开发了 TypeScript 。
TypeScript 给人的第一印象极具争议。例如,Miguel de Icaza 突显了大量的优势,但也引起了相应的担忧,因为不同于 Microsoft Visual Studio,TypeScript 在工具方面缺少支持。

webpack 模块捆绑器

推出 webpack,它是用于 JavaScript 应用程序的新静态模块捆绑器。

webpack 模块捆绑器

推出 webpack,它是用于 JavaScript 应用程序的新静态模块捆绑器。

2012

WebKit 远程调试

WebKit 远程调试开启了移动浏览器调试的新纪元,后来成为 Chrome DevTools 协议

WebKit 远程调试

WebKit 远程调试开启了移动浏览器调试的新纪元,后来成为 Chrome DevTools 协议

IE 9 支持 JIT 编译

32 位版本的 IE 9 获得了名为 Chakra 的新 JScript 引擎,该引擎可以先将 JScript 转换为机器代码,然后再运行该代码。

IE 9 支持 JIT 编译

32 位版本的 IE 9 获得了名为 Chakra 的新 JScript 引擎,该引擎可以先将 JScript 转换为机器代码,然后再运行该代码。

IE6 Countdown

IE6 Countdown

  

2011

WebStorm 1.0 是 JetBrains 推出的新 JavaScript IDE

发布了支持 HTML、CSS 和 JavaScript 的 WebStorm 1.0,它以前被称为其工作名称 Web IDE。

WebStorm 1.0 是 JetBrains 推出的新 JavaScript IDE

发布了支持 HTML、CSS 和 JavaScript 的 WebStorm 1.0,它以前被称为其工作名称 Web IDE。

npm 面世

Isaac Schlueter 为 JavaScript 创造了新的程序包管理器

npm 面世

Isaac Schlueter 为 JavaScript 创造了新的程序包管理器

2010

ECMAScript 3.1 成为 ECMAScript 5

停止很长时间后,ECMAScript 从版本 3.1 开始得到改良。新版本加入了诸如 strict 模式、getter 和 setter,以及 JSON 支持等重要功能。

ECMAScript 3.1 成为 ECMAScript 5

停止很长时间后,ECMAScript 从版本 3.1 开始得到改良。新版本加入了诸如 strict 模式、getter 和 setter,以及 JSON 支持等重要功能。

Node.js 的诞生

Ryan Dahl 在 JSConf 2009 上发表演讲,并介绍了 Node.js。Node.js 是在 Chrome V8 JavaScript 引擎上构建的 JavaScript 运行时。假想的 JavaScript Everywhere 范例成为现实。

Node.js 的诞生

Ryan Dahl 在 JSConf 2009 上发表演讲,并介绍了 Node.js。Node.js 是在 Chrome V8 JavaScript 引擎上构建的 JavaScript 运行时。假想的 JavaScript Everywhere 范例成为现实。

2009

Google Chrome:全新展现浏览器

为了“帮助推动 Web 创新”,Google 推出了测试版 Google Chrome,以及新的 JavaScript 引擎 V8,同时还发布了这本漫画书

Google Chrome:全新展现浏览器

为了“帮助推动 Web 创新”,Google 推出了测试版 Google Chrome,以及新的 JavaScript 引擎 V8,同时还发布了这本漫画书

Harmony 项目和 ES4 终止

"JavaScript 标准机构 Ecma 技术委员会 39 (Technical Committee 39)已经分裂了一年多,这不是什么秘密。一些成员支持 ES4,ECMA-262 的第四个主要版本,而其他成员支持基于现有的 ECMA-262 第 3 版 (ES3) 规范的 ES3.1。现在,我很高兴地报告,分裂已经结束了。"

Harmony 项目和 ES4 终止

"JavaScript 标准机构 Ecma 技术委员会 39 (Technical Committee 39)已经分裂了一年多,这不是什么秘密。一些成员支持 ES4,ECMA-262 的第四个主要版本,而其他成员支持基于现有的 ECMA-262 第 3 版 (ES3) 规范的 ES3.1。现在,我很高兴地报告,分裂已经结束了。"

HTML5 首次公开工作草案

W3C 发布用于 HTML 第 5 个主要修订版的规范

HTML5 首次公开工作草案

W3C 发布用于 HTML 第 5 个主要修订版的规范

2008

推出第一款 iPhone,不支持 Flash

Steve Jobs 介绍第一款 iPhone。这部手机使用移动版的 Safari 浏览器,但不支持 Adobe Flash Player。后来,Jobs 分享了他有关 Flash 的想法并公开了他决定不支持 Flash 背后的原因。

推出第一款 iPhone,不支持 Flash

Steve Jobs 介绍第一款 iPhone。这部手机使用移动版的 Safari 浏览器,但不支持 Adobe Flash Player。后来,Jobs 分享了他有关 Flash 的想法并公开了他决定不支持 Flash 背后的原因。

2007

Microsoft 重新开始开发 IE

Microsoft 重新开始开发 IE

  

初次发布 jQuery

John Resig 创建了 jQuery 的初始版本,jQuery 是一个 JavaScript 库,可用于更轻松地导航和操作 HTML DOM

初次发布 jQuery

John Resig 创建了 jQuery 的初始版本,jQuery 是一个 JavaScript 库,可用于更轻松地导航和操作 HTML DOM

2006

Apple 开源 WebKit

Apple 宣布可以直接使用他们的 KHTML 分支 WebKit 开源项目。

Apple 开源 WebKit

Apple 宣布可以直接使用他们的 KHTML 分支 WebKit 开源项目。

MDN 的诞生

Deb Richardson 加入 Mozilla Corporation 并于 2005 年 3 月推出最早的 Mozilla Developer Network

MDN 的诞生

Deb Richardson 加入 Mozilla Corporation 并于 2005 年 3 月推出最早的 Mozilla Developer Network

2005

Gmail 测试版

Google 公开宣布 Gmail,开启了 Ajax(不过尚未创造该术语)和 Web 应用程序时代。由于它发布于 4 月 1 日,有些人认为该公告是在开玩笑。

Gmail 测试版

Google 公开宣布 Gmail,开启了 Ajax(不过尚未创造该术语)和 Web 应用程序时代。由于它发布于 4 月 1 日,有些人认为该公告是在开玩笑。

2004

 ECMAScript 4 的第一版

草稿包含了许多新的功能:类、模块系统、可选的类型注解和静态类型、生成器和迭代器、析构赋值、代数数据类型。

 ECMAScript 4 的第一版

草稿包含了许多新的功能:类、模块系统、可选的类型注解和静态类型、生成器和迭代器、析构赋值、代数数据类型。

2003

发布 Mozilla Firefox

发布 Mozilla Firefox

  

JSLint

推出 JSLint,它是“所有 JavaScript 语法检查器的始祖”

JSLint

推出 JSLint,它是“所有 JavaScript 语法检查器的始祖”

2002

发布 Internet Explorer 6

这是未来 5 年对 Internet Explorer 的最后一次主要更新。尽管这一版本的 Internet Explorer 占据市场主导地位,但其安全问题以及不支持现代 Web 标准遭到广泛批评。它甚至还被列入“史上最差的技术产品”名单,被贴上了“星球上安全性最低的软件”标签。

发布 Internet Explorer 6

这是未来 5 年对 Internet Explorer 的最后一次主要更新。尽管这一版本的 Internet Explorer 占据市场主导地位,但其安全问题以及不支持现代 Web 标准遭到广泛批评。它甚至还被列入“史上最差的技术产品”名单,被贴上了“星球上安全性最低的软件”标签。

2001

发布使用 ActionScript 的 Flash Player 5

发布使用 ActionScript 的 Flash Player 5

  

2000

发布 ECMAScript 3

新版本添加了规则表达式和 try/catch 异常处理,可以更好地处理错误,并且增加了一些其他重要的增强功能

发布 ECMAScript 3

新版本添加了规则表达式和 try/catch 异常处理,可以更好地处理错误,并且增加了一些其他重要的增强功能

1999

创建 Mozilla 项目

Netscape 将其浏览器套件开源,从而创建了 Mozilla 项目

创建 Mozilla 项目

Netscape 将其浏览器套件开源,从而创建了 Mozilla 项目

1998

发布第一版 ECMA-262

借助第一版 ECMAScript,浏览器供应商获得了一组一致的 JavaScript 语言实现指南

发布第一版 ECMA-262

借助第一版 ECMAScript,浏览器供应商获得了一组一致的 JavaScript 语言实现指南

1997

开始标准化 JavaScript

Netscape 认识到,需要对 JavaScript 进行标准化并向 ECMA International 提交提议。Brendan Eich 后来在行业大会上分享了背后的故事

开始标准化 JavaScript

Netscape 认识到,需要对 JavaScript 进行标准化并向 ECMA International 提交提议。Brendan Eich 后来在行业大会上分享了背后的故事

JavaScript 获得第一个方言

JavaScript 获得第一个方言

  

1996

Netscape 和 Sun Microsystems 宣布推出 JavaScript 

在尝试制作动态网页的过程中,来自 Netscape 的 Brendan Eich 开始研究一种新的脚本语言。该语言的第一个版本在十天内开发出来并被称为“Mocha”,之后又重命名为 LiveScript,最后改为 JavaScript。

JavaScript 使其进入太空

发射 SpaceX Dragon 时,JavaScript 被带入太空中!Dragon 2 飞行界面使用 Chromium 和 JavaScript 构建并将 C++ 用于飞行计算机。

发布 Deno 1.0

Deno 最终因第一个公开版本而见到了一丝曙光。虽然还不确定它是否会成为下一个大事件,但希望很大。

2020

可选链接和空值合并转向了 ES2020

两项提议均已移至第 4 阶段。语言语法使用两个新的运算符 ?.?? 进行了扩展,这两个运算符有助于编写更安全的代码。

2019

宣布推出 React Hooks

Sophie Alpert、Dan Abramov 和 Ryan Florence 将问题描述为“包装器糟糕、组件大、类令人困惑”,并提出 React Hooks 作为解决方案。

Ryan Dahl 展示了 Deno 的原型

Node.js 的创作者 Ryan Dahl 在 JSConf EU 2018 上发表演讲并介绍了用于 JavaScript 和 TypeScript 的新运行时 Deno。本次演讲的题目为 10 Things I Regret About Node.js,在 YouTube 上仍可观看。

2018

发布 Prettier 1.0

Christopher Chedeau 和 James Long 发表了一篇博文,介绍 Prettier 1.0 版本。
“它最初只是一项实验,但显然引起了很多人的共鸣,仅仅两个月的时间便积累了大约 7000 颗 GitHub 星星,每月 npm 的下载量超过 100,000 次。”

初次提交 Temporal 提议

Maggie Johnson-Pint 提议 Temporal,这是一个全局对象,充当顶级命名空间,并将现代日期/时间 API 引入到 ECMAScript 中。

2017

Angular 面世

构建 AngularJS 的团队重新对其进行编写,并介绍了使用 TypeScript 编写的 Angular 2。
此时,不少团队弃用了支持 React 等库的 AngularJS。有些开发者甚至向其曾经深爱的框架发出了分手信

首次提交 TC39 提议存储库

该存储库包含向 ECMAScript 提出建议的各个阶段相关信息

2016

ES2015,ECMAScript 重大更新

本次更新包含箭头函数表达式、let 和 const 关键字、类声明、promise、生成器以及许多其他改进。
从此版本开始,ECMAScript 每年也会定期得到更新。

2015

io.js:Node.js 一分为二

 

首次提交 Babel.js

Sebastian McKenzie 启动一个新项目,旨在帮助将 ECMAScript 新版本转换为旧版 JavaScript 引擎可以处理的版本。

Evan You 发布 Vue.js

“我想,如果我可以仅提取我真正感兴趣的 Angular 部分,然后构建一些轻量化的内容,其中不包含任何其他概念,情况会怎么样呢?我对其内部实现的工作原理也很好奇。我开始这个实验的时候只是尝试复制这个最小的工具集合,如声明数据绑定。这基本上就是 Vue 的开始。”

2014

GitHub 推出 Electron

GitHub 开发了 Atom Shell,该框架后来被重命名为 Electron。开发该框架的目的是“创建一种简单明了的框架,让用户能够使用 Web 技术和所有原生修剪来构建跨平台的桌面应用。”

React 变为开源

Tom Occhino 和 Jordan Walke 在 JSConf US 2013 上介绍了 React。React 变成开源项目。
大会上的观众表示怀疑。有些人认为 React 后退了一大步。出现这种情况是因为大部分与会人员都是“早期采用者”和“早期多数使用者”,而 React 的目标受众是“创新者”。

2013

TypeScript 公开化

经过 2 年的内部开发后,Microsoft 推出了名为 TypeScript 的 JavaScript 超集。他们在尝试将 JavaScript 用于大规模的开发过程中开发了 TypeScript 。
TypeScript 给人的第一印象极具争议。例如,Miguel de Icaza 突显了大量的优势,但也引起了相应的担忧,因为不同于 Microsoft Visual Studio,TypeScript 在工具方面缺少支持。

webpack 模块捆绑器

推出 webpack,它是用于 JavaScript 应用程序的新静态模块捆绑器。

2012

WebKit 远程调试

WebKit 远程调试开启了移动浏览器调试的新纪元,后来成为 Chrome DevTools 协议

IE 9 支持 JIT 编译

32 位版本的 IE 9 获得了名为 Chakra 的新 JScript 引擎,该引擎可以先将 JScript 转换为机器代码,然后再运行该代码。

IE6 Countdown

 

2011

WebStorm 1.0 是 JetBrains 推出的新 JavaScript IDE

发布了支持 HTML、CSS 和 JavaScript 的 WebStorm 1.0,它以前被称为其工作名称 Web IDE。

npm 面世

Isaac Schlueter 为 JavaScript 创造了新的程序包管理器

2010

ECMAScript 3.1 成为 ECMAScript 5

停止很长时间后,ECMAScript 从版本 3.1 开始得到改良。新版本加入了诸如 strict 模式、getter 和 setter,以及 JSON 支持等重要功能。

Node.js 的诞生

Ryan Dahl 在 JSConf 2009 上发表演讲,并介绍了 Node.js。Node.js 是在 Chrome V8 JavaScript 引擎上构建的 JavaScript 运行时。假想的 JavaScript Everywhere 范例成为现实。

2009

Google Chrome:全新展现浏览器

为了“帮助推动 Web 创新”,Google 推出了测试版 Google Chrome,以及新的 JavaScript 引擎 V8,同时还发布了这本漫画书

Harmony 项目和 ES4 终止

"JavaScript 标准机构 Ecma 技术委员会 39 (Technical Committee 39)已经分裂了一年多,这不是什么秘密。一些成员支持 ES4,ECMA-262 的第四个主要版本,而其他成员支持基于现有的 ECMA-262 第 3 版 (ES3) 规范的 ES3.1。现在,我很高兴地报告,分裂已经结束了。"

HTML5 首次公开工作草案

W3C 发布用于 HTML 第 5 个主要修订版的规范

2008

推出第一款 iPhone,不支持 Flash

Steve Jobs 介绍第一款 iPhone。这部手机使用移动版的 Safari 浏览器,但不支持 Adobe Flash Player。后来,Jobs 分享了他有关 Flash 的想法并公开了他决定不支持 Flash 背后的原因。

2007

Microsoft 重新开始开发 IE

 

初次发布 jQuery

John Resig 创建了 jQuery 的初始版本,jQuery 是一个 JavaScript 库,可用于更轻松地导航和操作 HTML DOM

2006

Apple 开源 WebKit

Apple 宣布可以直接使用他们的 KHTML 分支 WebKit 开源项目。

MDN 的诞生

Deb Richardson 加入 Mozilla Corporation 并于 2005 年 3 月推出最早的 Mozilla Developer Network

2005

Gmail 测试版

Google 公开宣布 Gmail,开启了 Ajax(不过尚未创造该术语)和 Web 应用程序时代。由于它发布于 4 月 1 日,有些人认为该公告是在开玩笑。

2004

ECMAScript 4 的第一版

草稿包含了许多新的功能:类、模块系统、可选的类型注解和静态类型、生成器和迭代器、析构赋值、代数数据类型。

2003

发布 Mozilla Firefox

 

JSLint

推出 JSLint,它是“所有 JavaScript 语法检查器的始祖”

2002

发布 Internet Explorer 6

这是未来 5 年对 Internet Explorer 的最后一次主要更新。尽管这一版本的 Internet Explorer 占据市场主导地位,但其安全问题以及不支持现代 Web 标准遭到广泛批评。它甚至还被列入“史上最差的技术产品”名单,被贴上了“星球上安全性最低的软件”标签。

2001

发布使用 ActionScript 的 Flash Player 5

 

2000

发布 ECMAScript 3

新版本添加了规则表达式和 try/catch 异常处理,可以更好地处理错误,并且增加了一些其他重要的增强功能

1999

创建 Mozilla 项目

Netscape 将其浏览器套件开源,从而创建了 Mozilla 项目

1998

发布第一版 ECMA-262

借助第一版 ECMAScript,浏览器供应商获得了一组一致的 JavaScript 语言实现指南

1997

开始标准化 JavaScript

Netscape 认识到,需要对 JavaScript 进行标准化并向 ECMA International 提交提议。Brendan Eich 后来在行业大会上分享了背后的故事

JavaScript 获得第一个方言

 

1996

Netscape 和 Sun Microsystems 宣布推出 JavaScript

在尝试制作动态网页的过程中,来自 Netscape 的 Brendan Eich 开始研究一种新的脚本语言。该语言的第一个版本在十天内开发出来并被称为“Mocha”,之后又重命名为 LiveScript,最后改为 JavaScript。

“时间线”数据开源并托管在 GitHub 上. 如果发现错误,可以随时创建 Pull Request。

特别鸣谢

帮助我们准备时间线的以下人员:

关注我们