庆祝 JavaScript 诞生 25 周年
今天,JavaScript 迎来了 25 岁生日。它不仅影响了我的开发者生涯,也影响了像我一样的众多开发者以及世界各地的用户。为了纪念我们最喜爱的语言,我们收集了 25 个里程碑事件,这些事件塑造了 JavaScript 生态系统的现状。
1995
1)JavaScript 已创建
1995 年,Netscape 的开发者 Brendan Eich(以 Netscape 浏览器而闻名)接到一个任务,要开发一种与 Java 完美兼容的客户端脚本语言。虽然 JavaScript 可能不是你今天所熟知和喜爱的语言,但它在 10 天内就开发出来了,并且拥有我们至今仍在使用的特性,例如“一等函数”。
1997
2)ECMAScript 发布
尽管 JavaScript 早在两年前就已创建,但如果要跨多种浏览器类型使用,就需要为其创建开放标准。1997 年,Netscape 和 Microsoft 在 Ecma International 的领导下合并,形成了 JavaScript 语言的第一个标准化版本,从而诞生了 ECMAScript 的第一次迭代。
1999
3)Internet Explorer 获得早期的 XMLHTTP 对象
有些人可能还记得,在浏览器中使用iframe
标签是为了避免新请求时重新加载用户页面。1999 年 3 月,Internet Explorer 5.0 附带了XMLHTTP
,这是一个浏览器 API,可以让开发人员利用后台请求。
2001
4)JavaScript 拥有自己的数据格式
2001 年,JSON 首次通过json.org推出。2006 年,一份提议 JSON(JavaScript 对象表示法)的 RFC 开放审核,其中提议实现多种类型的 HTTP 调用来实现网站功能:一种满足浏览器的需求,另一种提供应用程序状态。由于其简单易用,JSON 逐渐成为标准,并沿用至今。(来源)
2005
5)转向AJAX
在其他浏览器纷纷效仿 Internet Explorer,支持无需重新加载页面即可更新客户端的后台请求后,一位研究人员将该术语命名为“异步 JavaScript 和 XML”(简称 AJAX),以此凸显 Web 开发和 JavaScript 向异步代码的转变。(来源)
2006
6)首次公开发布的开发者工具
随着浏览器变得越来越复杂,需要开发相应的工具来应对。Firebug 创建于 2005 年,是 Mozilla Firefox 浏览器中第一个用于调试的开发者工具。它是第一个让开发者能够直接从浏览器进行检查和调试的工具。(来源)
7)jQuery 发布
jQuery 堪称现代前端 Web 开发的先驱,它影响了当今的众多库和框架。在其鼎盛时期,JavaScript 开发者和 jQuery 开发者的身份几乎可以互换。该库扩展了 JavaScript 语言,使其能够轻松创建具有 DOM 遍历、事件处理等功能的单页应用程序。
2008
8)V8 的诞生
随着网站从 HTML 页面演变为 JavaScript 应用程序,托管这些应用程序的浏览器必须跟上时代的步伐。从 2007 年到 2010 年,许多浏览器都发布了重要版本,以满足 JavaScript 计算能力日益增长的需求。Chrome 发布时,其 JavaScript 引擎 V8 作为一个独立的项目发布。V8 凭借其“即时”编译器成为一个里程碑式的项目,并将在未来的项目中用作可靠且快速的 JavaScript 运行时。
9)第一个原生开发者工具
除了 V8 的发布,Chrome 还为开发者带来了另一项创新:浏览器原生的开发者工具。当时,其功能仅包括元素检查和资源查看,但该工具是对现有工具的升级,并将影响一整套前端开发的开发者工具。(来源)
2009
10)CommonJS 转向标准化模块
为了模块化 JavaScript 代码,并将代码库从单文件脚本转变为多文件源代码,CommonJS 项目致力于将 JavaScript 提升为应用程序开发语言。CommonJS 模块将影响 Node.js 的模块系统。
11)Node.js 将 JavaScript 引入后端
JavaScript 在进入后端之前,作为浏览器语言已经发展多年。2009 年,Joyent 的工程师 Ryan Dahl 在 JSConf EU 上推出了 Node.js,这是一个异步事件驱动的 JavaScript 运行时。
12)CoffeeScript 增添语法糖
早在 JavaScript 中类型普及之前,就存在了 CoffeeScript,这是一种可以编译为 JavaScript 的编程语言,其灵感来自 Ruby、Python 和 Haskell。该编译器最初是用 Ruby 编写的,由于可以编译为 JavaScript,因此不需要依赖项兼容性,并且因能够以简单的方式暴露 JavaScript 的优点而备受青睐。
2010
13)Node.js 有了第一个包管理器
Node.js 推出后不久,npm 就诞生了。npm(Node 包管理器的缩写)最终将创建管理前端和后端应用程序依赖项的标准,从而可以更轻松地通过项目文件 package.json 发布、安装和管理共享源代码。npm 还提供了 npm 注册表,它将为数十万个应用程序提供一个数据库来检索 Node.js 依赖项。
14)Express 发布初始版本
受 Ruby 的 Sinatra 启发,Express.js 于 2010 年发布。它的目标是成为一个极简、不固执己见的 Web 框架,提供路由、中间件和其他 HTTP 实用程序。根据 GitHub 的数据,Express 迄今为止仍然是后端 JavaScript 开发人员最受欢迎的框架。
15)现代 JavaScript MVC 框架诞生
随着后端 JavaScript 的流行,前端 MVC 框架也开始涌现。最引人注目的是 Backbone.js 和 AngularJS(后来被重写并更名为 Angular)开始受到 JavaScript 开发者的青睐。Backbone 的前端方法非常适合镜像应用程序的业务逻辑,而 Angular 则采用声明式方法,能够在浏览器中构建健壮的 Web 应用程序。这两个框架都对后来的前端库和框架产生了影响,例如 React、Ember.js 和 Vue.js。
2011
16)Ember.js 强调约定优于配置
2011年,早期项目 SproutCore 的一个分支版本被重新命名为 Ember.js。Ember 为 JavaScript 开发者引入了“约定优于配置”的概念,开发者无需考虑那些可以跨代码库标准化的设计决策。
2012
17)向 JavaScript 开发人员介绍静态类型
2012 年对于静态类型语言来说是意义非凡的一年。在此之前,JavaScript 在设计上是动态类型语言,因为它不需要开发人员在初始化变量或其他数据结构时声明类型。TypeScript 应运而生——它是 JavaScript 的一个扩展,允许开发人员编写语法与 JavaScript 相似且可编译为 JavaScript 的类型化 JavaScript。微软于 2012 年 10 月首次发布了该项目。
2013
18)世界对 React 做出反应
2013 年,Facebook 的开发人员 Jordan Walke 提出了一个新的 JavaScript 库,它不遵循当时流行的 JS 框架的 MVC 惯例。(来源)React 是一个基于组件的库,它只是 MVC 的 V,后来成为当今最受欢迎的库之一。
19)Electron 将 Node.js 融入桌面应用程序
此外,随着 Node.js 的日益流行,人们开始重新利用其运行时或其他用途。GitHub 将 Node.js 用作 Chromium 渲染引擎的库,并创建了用于桌面应用程序的 Electron。使用 Electron 的知名桌面应用程序包括 GitHub Desktop、Slack 和 Visual Studio Code。
2015
20)ES2015/ES6 发布
ECMAScript 第六版于 2015 年 6 月发布。许多 JavaScript 开发者都翘首以盼该规范,因为它包含了一些热门特性,例如支持模块(ES 模块)的导出和导入、常量声明等等。(来源:http://es6-features.org/)虽然 ECMAScript 的上一版本(ES5)已于 6 年前发布,但大部分发布的标准都是自 16 年前发布的 ES3 以来制定的。(来源:)
21)GraphQL 作为 REST 的替代方案出现
2015 年,Facebook 发布了 GraphQL 作为开源项目,这是一种用于 API 的查询语言,可简化客户端和服务器之间的请求调用,以解决服务器端数据模式和客户端数据需求之间的差异。(来源)由于其受欢迎程度,该项目最终将转移到其自己的 GraphQL 基金会。
22)Node v4 发布
2015 年对于后端 JavaScript 开发者来说意义非凡,因为它标志着 io.js 重新并入 Node.js。就在一年前,为了适应更快的发布周期,Node 被分叉为 io.js。当 io.js 重新并入时,它已经发布了 v3 版本,因此合并后发布 Node v4 版本顺理成章,为合并后的项目开启了一个新的起点。此后,Node 将调整发布周期,使其与最新的 V8 版本保持同步。
2016
23)JavaScript 开发人员被引入来锁定文件
在臭名昭著的“left-pad”事件(来源)发生后的几个月里,Yarn 被发布到 JavaScript 生态系统。Yarn 的诞生是为了在运行相同 JavaScript 应用程序的机器和离线环境中实现更高的一致性。Yarn 向 JavaScript 生态系统引入了自动生成的 lockfile,这将影响包管理器今后以不同的方式看待开发者体验。(来源)
2019
24)Node + JS = OpenJS
JS 基金会和 Node.js 基金会多年来一直独立运营,如今这两个组织合并成为 OpenJS 基金会,旨在加强协作,为整个 JavaScript 生态系统的项目提供一个统一的平台。(来源)
2020
25)Deno 首次发布就引起轰动
今年,Node.js 创始人 Ryan Dahl 发布了 Deno 的初始版本,这是一个基于 V8 引擎构建的 JavaScript 和 TypeScript 引擎。该项目因其一流的 TypeScript 支持以及源自 Node.js 的灵感而备受关注。
这些里程碑不仅彰显了 JavaScript 历史上一些激动人心的时刻,还有无数其他值得尊敬的奖项和重要贡献。如果没有当今世界各地开发者的辛勤付出,JavaScript 生态系统就不会有今天的成就。每一个拉取请求、每一个会议演讲和每一篇博客文章都激发了下一个创新。为此,我们感谢你们所有人的贡献,并期待 JavaScript 的光明未来。
文章来源:https://dev.to/heroku/celebating-25-years-of-javascript-2c29