本文已过原作者授权翻译。
JavaScript于25年前(1995年12月4日)首次向公众推出。JavaScript 最初开发仅用了10天时间,便迅速成为最受欢迎的编程语言之一,如今全球有数百万的开发人员每天都在使用它。 2020年是它的25周年纪念日——对于这个已经成为最受欢迎的编程语言之一,这无疑是一个巨大的里程碑。
JavaScript 是前端开发的首选语言,后面并催生了微软的 Typescript,它是 JavaScript的超集,具有更强的可选类型系统,供开发人员在浏览器中运行时编译成JavaScript。
JavaScript 和 TypeScript 都符合 ECMAScript,这是 JavaScript 和 node.js 的标准,这要归功于Google强大的 V8 引擎,可以在浏览器之外运行应用程序。
JavaScript 对 Web 的影响是巨大的。 科技巨头已经也拥抱了 JS。 除了Google的V8,还有开源项目,例如Facebook的React
和 Google 的Angular
。当然,还有我们的 尤雨溪 的 Vue。
1995年5月,**Netscape (网景公司)和 Sun (太阳微系统公司) 推出了JavaScript,随后微软在1995年12月推出了Visual Basic (VB)
,将其作为一个标准,用于为其Internet Explorer
浏览器使用 VB 脚本创建web应用程序。甲骨文在2008年收购Sun **主要是为了插手Java及其庞大的开发生态系统。
JavaScript 的未来并不总是像今天这么确定的。
Cory House 是开发人员培训网站 Pluralsight 的一名JavaScript教育工作者,他回忆说,早期的JavaScript 是否能成功很难确定。
“JavaScript 是几天内就完成了,最初只在一个浏览器中使用。微软的第一个浏览器附带了他们自己风格的JavaScript 叫 JScript。今天,JavaScript 还被用于构建桌面应用、移动设备应用、健身追踪器、机器人和众多嵌入式系统。它甚至是詹姆斯·韦伯太空望远镜的一部分。这个望远镜使用 Nombas 的 ES1 级嵌入式 JavaScript,作为其板载控制软件的一部分。”
”我们可以用面向对象的或函数式的方式编写代码。由于 JavaScript 有类似于c的语法,因此使用过其他类似c语言的人对它很熟悉。JavaScript 通过不断接受其他语言的好点子而保持着“更新”。
Pluralsight 的另一位作者Jonathan Mills指出,JavaScript 已不再局限于浏览器。他说:“现在,JavaScript 已经发展成为一个庞大的生态系统,对软件开发的每个领域都具有影响。”
微软的 TypeScript 在 GitHub
上越来越受欢迎,这要归功于基于 Javascript 的大型项目的存在,但它也可能被 Web Assembly
带来的新兴技术所取代。
W3C 于2019年12月批准该标准以来,主流Web浏览器现在以与HTML,CSS和JavaScript相似的级别支持WebAssembly
或Wasm
。
WebAssembly
是一个虚拟指令集架构,它支持web上的高性能应用程序,并为web上更多的AI
搭建了平台,这些AI
可以用于视频和音频编解码器、图形和加密计算。
Mills告诉ZDNet,到目前为止,Web Assembly在目标领域具有潜力。
Mills 说 “在构建 JavaScript 应用程序时,JavaScript 代码会按原样发送到浏览器,并在运行时在浏览器中进行编译和运行。WebAssembly 通过在部署之前编译代码来简化此过程,并有望在此过程中显着提高性能 ”。
“当构建图形或计算密集型的复杂Web应用程序时,这非常有用。然而,目前最主要的障碍是与WebAssembly
相关的最杰出的语言是Rust
和C
。JavaScript 之所以起飞,部分原因是因为易用性和快速开发风格,C 和 Rust 都没有这种品质。”
为了庆祝JavaScript诞生25周年,下面列出影响其历史的重要里程碑:
万维网(1989年3月)
在CERN工作时,蒂姆·伯纳斯·李(Tim Berners-Lee)在一份名为“信息管理:提案”的文档中提出了他对网络的构想。
文章地址:https://webfoundation.org/about/vision/history-of-the-web/
第一个网站 (1991年8月6日)
第一个网站于1991年8月6日上线。它被用于万维网项目本身,并托管在Tim Berners-Lee的NeXT电脑上。
更多信息:http://info.cern.ch/hypertext/WWW/TheProject.html
Mosaic (1993年6月)
NCSA Mosaic,或简称 Mosaic,是互联网历史上第一个获普遍使用和能够显示图片的网页浏览器。它是由伊利诺伊大学厄巴纳-香槟分校的NCSA组织在1993
年所发表,并于1997年1月7日
正式终止开发和支持。在当时人气爆发的大受欢迎。Mosaic 的出现,算是点燃了后期互联网热潮的火种之一。
后来网景导航者浏览器的开发工作,聘用了许多原有的Mosaic浏览器工程师,但是没有采用Mosaic网页浏览器的任何代码。传承网景浏览器代码的后裔为Firefox浏览器。
更多信息:https://en.wikipedia.org/wiki/Mosaic_(web_browser)
Netscape (网景公司) (1994年9月9日)
马克•安德森(Marc Andreessen)和吉姆•克拉克(Jim Clark)创立了后来的网景通信公司(Netscape Communications Corporation),并于1994年9月9日
推出了他们的第一个浏览器。最初它被称为Mosaic Netscape,但后来被重新命名为Netscape Navigator以避免与NCSA的商标问题。这个浏览器的内部代号是Mozilla,意思是“Mosaic 杀手”,它确实迅速成为了最受欢迎的浏览器。
更多信息:https://en.wikipedia.org/wiki/Netscape_Navigator
JavaScript (1995年5月)
马克·安德森(Marc Andreessen)设想了一个更具动态性的Web,并认为需要一种易于Web设计者使用的语言。 他招募了Brendan Eich,他在10天之内于1995年5月为Netscape浏览器编写了原型。该语言最初称为Moca,后来称为LiveScript,最后重命名为JavaScript(作为Java的辅助语言)。 JavaScript的正式发布日期是1995年12月4日
。
更多信息:https://en.wikipedia.org/wiki/JavaScript
JScript (1996年8月)
Microsoft 对 Netscape的 JavaScript 进行了逆向工程,创建JScript并将其作为Internet Explorer 3
的一部分。引入了不符合标准的专有扩展,使开发人员很难创建一个在所有浏览器中都能正常运行的网站。 最终,Internet Explorer
成为浏览器大战中的主导软件。
更多信息:https://en.wikipedia.org/wiki/Browser_wars
ECMAscript 1 (1997年6月)
Netscape向ECMA International
提交了 JavaScript,以创建标准规范,然后其他浏览器供应商可以实施该规范,这导致了1997年6月语言规范 ECMAScript 的正式发布。
更多信息: https://en.wikipedia.org/wiki/ECMAScript
Mozilla (1998年1月23日)
1998年1月23日,在浏览器市场份额急剧下降的情况下,Netscape宣布它将发布Netscape Communicator 5.0
的源代码,希望它将成为一个受欢迎的开源项目。 Mozilla项目就是这样诞生的。
更多信息:https://www.mozilla.org/en-US/about/history/
XMLHttpRequest (1999年3月)
Microsoft 于1999年3月在Internet Explorer 5.0
中发布了XMLHttpRequest
的原始形式。XMLHttpRequest
是一种API,用于在Web浏览器和Web服务器之间传输数据,它在将来会被证明是有用的。
ECMAscript 3 (1999年12月)
该版本增加了正则表达式,更全的字符串处理,新的控制语句, try/catch
异常处理,更严格的错误定义,数字输出格式和其他增强功能。 由于ECMAscript 4停滞,该版本盛行了十年。
更多信息:https://en.wikipedia.org/wiki/ECMAScript
JSON (2001年4月)
Douglas Crockford指定了JSON(JavaScript对象表示法),这是一种基于JavaScript子集的轻量级数据交换格式。 JSON数据在前端更易于加载和使用,并且到本世纪末将取代XML,成为Web上的数据交换格式。
更多信息:https://www.json.org/json-en.html
Firefox (2004年11月9日)
Firefox 于 2002 年由Dave Hyatt
,Joe Hewitt
和Blake Ross
作为Mozilla项目的实验分支开始。为了对抗Mozilla Suite的软件膨胀,他们创建了一个独立的浏览器,首先命名为Phoenix
,后来命名为Firebird
, 最后是Firefox
。 Firefox 1.0
版于2004年11月9日发布。Firefox
的速度,可用性和市场营销帮助它在Internet Explorer
上赢得了市场份额。 在启动的五年内,Firefox占了所有Web浏览的近三分之一。
更多信息:https://blog.mozilla.org/press/2004/11/mozilla-foundation-releases-the-highly-anticipated-mozilla-firefox-1-0-web-browser/
AJAX (2005年2月18日)
杰西·詹姆斯·加勒特(Jesse James Garrett)创造了AJAX(异步JavaScript + XML
)一词,用以描述新兴Web应用程序(如GMail和Google Maps)背后的异步技术,该技术允许网页动态更改内容而无需重新加载。
更多信息:https://en.wikipedia.org/wiki/Ajax_(programming)
jQuery (2006年8月)
jQuery 是一个由John Resig设计的JavaScript库,用于简化HTML DOM树的遍历和操作以及事件处理,CSS动画和AJAX。 在此期间启动的其他JavaScript框架/库包括Mootools和Prototype。
更多信息:https://openjsf.org/
Google Chrome (2008年12月)
Google于2008年12月11日发布了Chrome浏览器,该浏览器使用了与Safari
相同的WebKit
渲染引擎和一个更快的 JavaScript 引擎 V8。 不久之后,针对Windows,OS X和Linux平台的开源版本以Chromium的名称发布。 凭借快速的发布周期和对速度的关注,谷歌浏览器最终取代了所有其他浏览器。
更多信息:https://www.google.com/chrome/
Node.js (2009年3月)
Node.js 最初由Ryan Dahl于2009年3月基于Google的开源V8 JavaScript引擎开发。 它为在Web服务器上使用JavaScript铺平了道路。 Node.js函数是非阻塞的,允许服务器处理大量并发连接。 它代表了“ JavaScript无处不在”范例,统一了围绕一种编程语言的Web应用程序开发。
npm (2009 年)
npm(最初是Node Package Manager的缩写)是Isaac Z. Schlueter
开发的JavaScript编程语言的软件包管理器。 npm Registry是Node.js,前端Web应用程序,移动应用程序和其他应用程序的开源代码包的公共集合。
更多地址:https://www.npmjs.com/about
ES5 (2009年12月3日)
ECMAScript 5 是ECMAScript 3的十多年后的2009年12月发布,是ECMAScript 3
的增量升级版。雄心勃勃的ECMAScript 4
被正式放弃,代号为Harmony,某些功能成为ECMAScript6。原始ECMAScript 4计划的其他功能 将被删除以在后续版本中采用。 形成了一个新的决心,即在整个TC39的共识下开发任何新的想法,以防止将来发生分裂的可能性。
更多信息:https://en.wikipedia.org/wiki/ECMAScript
AngularJS (2010年10月20日)
AngularJS 由Misko Hevery于2010年10月发布,并迅速成为最受欢迎的JavaScript MVC框架。 它提供了双向数据绑定,依赖项注入,路由包等等。 在此期间启动的其他JavaScript框架/库包括Backbone,Ember和Knockout。 该项目由Angular在2016年继承,由Google Angular团队领导的AngularJS的完全重写。
TypeScript (2012年10月12日)
TypeScript 是一种JavaScript的超集,它将静态类型添加到语言中,经过微软两年的内部开发,于2012年10月首次发布(0.8版本)。
React (2013年5月29日)
React 是一个JavaScript库,用于构建可组合的用户界面,由Jordan Walke于2013年开发并开源。它由Facebook和一个由开发者和公司组成的社区共同维护。
更多信息:https://reactjs.org/
Vue.js (2014年2月25日)
由Evan You创建的 Vue 是一个开放源代码, 它是一个 model–view–viewmodel 的前端JavaScript框架,用于构建的用户界面和单页应用程序。 该项目的第一个源代码提交于2013年7月,Vue于2014年2月首次发布。
Next.js (2016年的10月25日)
Next.js是由Vercel创建的开源React框架。 它可以唯一满足静态和动态网站及应用程序的需求。 Next.js的增量静态再生为用户提供了静态站点生成器的所有功能,并且可以添加无限数量的页面并在以后更新它们-无需重建整个站点。
更多信息:https://nextjs.org/
Svelte (2016年11月26日)
Svelte是一个由Rich Harris创建的免费和开源的前端JavaScript框架。
Svelte 是一种全新的构建用户界面的方法。传统框架如 React 和 Vue 在浏览器中需要做大量的工作,而 Svelte 将这些工作放到构建应用程序的编译阶段来处理。
与使用虚拟(virtual)DOM 差异对比不同。Svelte 编写的代码在应用程序的状态更改时就能像做外科手术一样更新 DOM。
更多信息:https://svelte.dev/
WebAssembly (2017年三月)
WebAssembly(缩写为Wasm)是基于堆栈的虚拟机的二进制指令格式。 Wasm 被设计为可移植目标,用于编译高级语言(如 C/C++/Rust),从而可以在Web上为客户端和服务器应用程序进行部署,前驱技术是来自Mozilla和Google Native Client的asm.js。
OpenJS Foundation (2019年3月12日)
众所周知,Node.js 和 JavaScript 有着千丝万缕的关系,也有着很多的合作,但他们属于不同的fondation,办起事来非常不方便,所以有必要将这两个基金会合并以提高效率了。于是,在2019年3月13日,Node.js基金会 和 JS基金会 宣布合并为 OpenJS基金会。
OpenJS Foundation的主要目标是:
- 促进关键JavaScript和Web解决方案及相关技术的广泛采用和持续开发;
- 促进JavaScript开发社区中的协作;
- 在整个端到端JavaScript生态系统中为开源项目创建重心,指导它们迈向开放治理和多样化的协作者基础;
- 托管基础结构以支持托管的JavaScript开源项目;
- 通过推进项目和战略合作伙伴关系,来建立一个开放和可访问的网站。
更多信息:https://openjsf.org/
Deno (2020年5月13日)
Den o是一个基于V8 JavaScript引擎和Rust编程语言的JavaScript和TypeScript运行时。它是由Node.js的原作者Ryan Dahl创作的。这是他在JSConf 2018年欧盟会议上发表的题为**“10 Things I Regret About Node.js”**的演讲中宣布的。Deno 在单个可执行文件中明确承担了运行时和包管理器的角色,而不需要单独的包管理程序。
更多信息:https://deno.land/
最后
对于JavaScript的未来,有一件事很清楚:协作是关键。 “浏览器大战”已经过去了,用户和开发人员都不想重温由于缺乏互操作性而带来的问题。 幸运的是,开源已经盛行,并代表着JavaScript语言和社区的开发和治理的前进之路。
代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。
原文:
https://www.zdnet.com/article/javascript-at-25-the-programming-language-that-makes-the-world-go-round/
https://js25.org/
交流
文章每周持续更新,可以微信搜索**【大迁世界 】第一时间阅读,回复【福利】**有多份前端视频等着你,本文 GitHub https://github.com/qq449245884/xiaozhi 已经收录,欢迎Star。