JavaScript于25年前(1995年12月4日)首次向公众介绍。JavaScript最初开发仅需10天,但很快成为最流行的编程语言之一,现在全世界每天都有数百万开发人员使用它。2020年是它诞生25周年——对于已成为最流行的编程语言之一的语言来说,这是一个巨大的里程碑。JavaScript是前端开发的首选语言,后来诞生了微软的Typescript,它是JavaScript的超集,具有更强的可选类型系统,供开发者在浏览器中运行时编译成JavaScript。JavaScript和TypeScript都符合ECMAScript,这是JavaScript和node.js的标准,这要归功于Google强大的V8引擎,它可以在浏览器之外运行应用程序。JavaScript对网络的影响是巨大的。科技巨头也纷纷拥抱JS。除了谷歌的V8,还有Facebook的React、谷歌的Angular等开源项目。当然,还有我们游玉玺的Vue。1995年5月,**网景(Netscape)和太阳微系统(SunMicrosystems)推出了JavaScript,随后微软于1995年12月推出了VisualBasic(VB),作为其InternetExplorer浏览器使用VB脚本创建网络应用程序的标准。Oracle在2008年收购Sun主要是为了获得Java及其庞大的开发生态系统。JavaScript的未来并不总是像今天这样确定。开发人员培训网站Pluralsight的JavaScript教育工作者CoryHouse回忆说,早期JavaScript的成功很难确定。“JavaScript是在几天内完成的,最初只用于一个浏览器。微软的第一个浏览器带有自己的JavaScript风格,称为JScript。今天,JavaScript还用于构建桌面应用程序、移动设备应用程序、健身追踪器、机器人、以及众多的嵌入式系统。它甚至是詹姆斯·韦伯太空望远镜的一部分。该望远镜使用Nombas的ES1级嵌入式JavaScript作为其机载控制软件的一部分。""我们可以用面向对象或函数式的方式编写代码。由于JavaScript具有类C的语法,因此使用过其他类C语言的人会很熟悉。JavaScript通过不断接受其他语言的好想法来保持“最新”。Pluralsight的另一位作者JonathanMills指出,JavaScript不再局限于浏览器。“JavaScript现在已经发展成为一个庞大的生态系统,对软件开发的每个领域都有影响,”他说。微软的TypeScript在GitHub上越来越受欢迎,这要归功于基于Javascript的大型项目的存在,但它也可能被WebAssembly带来的新兴技术所取代。自W3C于2019年12月批准该标准以来,主要的Web浏览器现在支持与HTML、CSS和JavaScript类似级别的WebAssembly或Wasm。WebAssembly是一种虚拟指令集架构,支持Web上的高性能应用,为Web上更多的AI构建平台,可用于视频和音频编解码、图形和加密计算。Mills告诉ZDNet,到目前为止,WebAssembly在其目标领域具有潜力。“当你构建一个JavaScript应用程序时,JavaScript代码将按原样发送到浏览器,并在运行时在浏览器中编译和运行,”Mills说。WebAssembly通过在部署前编译代码简化了这个过程,并承诺显着提高性能,“这在构建图形或计算密集型的复杂Web应用程序时非常有用。然而,目前的主要障碍是与WebAssembly相关的最突出的语言是Rust和C。JavaScript的起飞部分是由于易用性和快速开发风格,这些品质是C和Rust都不具备的。“为了庆祝JavaScript诞生25周年,这里列出了影响其历史的重要里程碑:万维网(1989年3月)在CERN工作期间,TimBerners-Lee写了一篇名为“他对网络的愿景在文件“信息管理:提案”。文章地址:https://webfoundation.org/about/vision/history-of-the-web/第一个网站(1991年8月6日)第一个网站于1991年8月6日上线,用于WorldWideWeb项目本身并托管在TimBerners-Lee的NeXT计算机上。更多信息:http://info.cern.ch/hypertext/WWW/TheProject.htmlMosaic(1993年6月)NCSAMosaic,简称Mosaic,是Internet历史上第一个被广泛使用并能够显示图像的网络浏览器。它由伊利诺伊大学厄巴纳-香槟分校的NCSA组织于1993年发表,并于1997年1月7日正式终止开发和支持,当时人气爆棚,大受欢迎。Mosaic的出现可以算是点燃后来互联网热潮的一把火。后来,NetscapeNavigator浏览器的开发聘请了许多原来的Mosaic浏览器工程师,但没有采用Mosaic网络浏览器的任何代码。Netscape浏览器代码的后代是Firefox浏览器。更多信息:https://en.wikipedia.org/wiki/Mosaic_(web_browser)Netscape(1994年9月9日)MarcAndreessen和JimClark创立了NetscapeCommunicationsCommunicationsCorporation),并于1994年9月9日推出了他们的第一个浏览器。最初它被称为MosaicNetscape,但后来更名为NetscapeNavigator以避免与NCSA的商标问题。该浏览器的内部代号为Mozilla,意思是“马赛克杀手”,它确实迅速成为最受欢迎的浏览器。更多信息:https://en.wikipedia.org/wiki/Netscape_NavigatorJavaScript(1995年5月)MarcAndreessen设想了一个更加动态的Web,并认为需要一种易于使用的Web设计语言。他招募了BrendanEich,后者在10天内于1995年5月为Netscape浏览器编写了原型。该语言最初称为Moca,后来称为LiveScript,最后更名为JavaScript(作为Java的第二语言)。JavaScript的正式发布日期是1995年12月4日。更多信息:https://en.wikipedia.org/wiki/JavaScriptJScript(1996年8月)Microsoft对Netscape的JavaScript进行逆向工程,创建JScript作为InternetExplorer3的一部分。专有扩展不是引入了符合标准的标准,这使得开发人员很难创建一个在所有浏览器中都能正常运行的网站。最终,InternetExplorer成为浏览器大战中的主导软件。更多信息:https://en.wikipedia.org/wiki/Browser_warsECMAscript1(1997年6月)Netscape将JavaScript提交给ECMAInternational,以创建其他浏览器供应商随后可以实施的标准规范,从而导致语言规范的正式发布1997年6月的ECMAScript。更多信息:https://en.wikipedia.org/wiki/ECMAScriptMozilla(1998年1月23日)1998年1月23日,在浏览器市场份额急剧下降的情况下,Netscape宣布将发布NetscapeCommunicator5.0源代码,希望它成为一个流行的开源项目。Mozilla项目就是这样诞生的。更多信息:https://www.mozilla.org/en-US/about/history/XMLHttpRequest(1999年3月)Microsoft于1999年3月在InternetExplorer5.0中发布了XMLHttpRequest的原始形式。XMLHttpRequest是一种用于在Web之间传输数据的API将来会证明有用的浏览器和Web服务器。ECMAscript3(1999年12月)此版本添加了正则表达式、更完整的字符串处理、新的控制语句、try/catch异常处理、更严格的错误定义、数字输出格式和其他增强功能。随着ECMAscript4停滞不前,这个版本盛行了十年。更多信息:https://en.wikipedia.org/wiki/ECMAScriptJSON(2001年4月)DouglasCrockford指定了JSON(JavaScript对象表示法),这是一种基于JavaScript子集的轻量级数据交换格式。JSON数据更容易在前端加载和使用,到本世纪末将取代XML成为Web上的数据交换格式。更多信息:https://www.json.org/json-en.htmlFirefox(2004年11月9日)Firefox于2002年作为DaveHyatt、JoeHewitt和BlakeRoss的Mozilla项目的实验性分支启动。为了对抗Mozilla套件的软件膨胀,他们创建了一个单独的浏览器,首先命名为Phoenix,然后是Firebird,最后是Firefox。Firefox1.0版于2004年11月9日发布。Firefox的速度、可用性和营销帮助它获得了超过InternetExplorer的市场份额。在推出后的五年内,Firefox占所有网络浏览量的近三分之一。更多信息:https://blog.mozilla.org/press/2004/11/mozilla-foundation-releases-the-highly-anticipated-mozilla-firefox-1-0-web-browser/AJAX(2005年2月18日)杰西詹姆斯·加勒特(JesseJamesGarrett)创造了术语AJAX(异步JavaScript+XML)来描述GMail和Google地图等新兴Web应用程序背后的异步技术,它允许网页动态更改内容而无需重新加载。更多信息:https://en.wikipedia.org/wiki/Ajax_(programming)jQuery(2006年8月)jQuery是JohnResig设计的一个JavaScript库,用于简化HTMLDOM树和事件处理、CSS动画和AJAX的遍历和操作.在此期间推出的其他JavaScript框架/库包括Mootools和Prototype。更多信息:https://openjsf.org/GoogleChrome(2008年12月)谷歌于2008年12月11日发布了Chrome浏览器,它使用与Safari相同的WebKit渲染引擎和更快的JavaScript引擎V8。不久之后,Windows、OSX和Linux平台的开源版本以Chromium的名义发布。凭借其快速的发布周期和对速度的关注,GoogleChrome最终取代了所有其他浏览器。更多信息:https://www.google.com/chrome/Node.js(2009年3月)Node.js最初由RyanDahl于2009年3月基于Google的开源V8JavaScript引擎开发。它为在Web服务器上使用JavaScript铺平了道路。Node.js函数是非阻塞的,允许服务器处理大量并发连接。它代表了“JavaScriptEverywhere”范式,围绕一种编程语言统一了Web应用程序开发。更多信息:https://nodejs.org/en/npm(2009)npm(最初是NodePackageManager的首字母缩写词)是由IsaacZ.Schlueter开发的JavaScript编程语言的包管理器。npmRegistry是Node.js、前端Web应用程序、移动应用程序和其他应用程序的开源代码包的公共集合。更多地址:https://www.npmjs.com/aboutES5(December3,2009)ECMAScript5于2009年12月发布,比ECMAScript3晚十多年,是ECMAScript3的增量升级,雄心勃勃的ECMAScript4是正式放弃,代号为Harmony,某些功能成为ECMAScript6。为原始ECMAScript4计划的其他功能将被删除,以便在后续版本中采用。形成了新的决心,在整个TC39的共识下发展任何新的想法,以防止未来出现分裂的可能。更多信息:https://en.wikipedia.org/wiki/ECMAScriptAngularJS(2010年10月20日)AngularJS由MiskoHevery于2010年10月发布,并迅速成为最流行的JavaScriptMVC框架。它提供双向数据绑定、依赖注入、路由包等。在此期间推出的其他JavaScript框架/库包括Backbone、Ember和Knockout。该项目于2016年由Angular成功完成,这是对由GoogleAngular团队领导的AngularJS的完全重写。更多信息:https://angularjs.org/TypeScript(2012年10月12日)TypeScript是JavaScript的超集,它在语言中添加了静态类型,经过Microsoft两年的内部开发后于2012年发布10月首次发布(版本0.8).React(2013年5月29日)React是一个用于构建可组合用户界面的JavaScript库,由JordanWalke于2013年开发并开源。它由Facebook以及开发人员和公司社区维护。更多信息:https://reactjs.org/Vue.js(2014年2月25日)Vue,由EvanYou创建,是一个开源的,它是一个模型-视图-视图模型前端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是由RichHarris创建的免费开源前端JavaScript框架。Svelte是一种构建用户界面的全新方法。React和Vue等传统框架在浏览器中完成大量工作,而Svelte则在构建应用程序的编译阶段处理这些工作。与使用虚拟DOM差异不同。Svelte编写的代码可以在应用程序状态发生变化时通过外科手术更新DOM。更多信息:https://svelte.dev/WebAssembly(2017年3月)WebAssembly(缩写为Wasm)是一种用于基于堆栈的虚拟机的二进制指令格式。Wasm被设计为编译高级语言(如C/C++/Rust)的可移植目标,以便它可以部署在Web上用于客户端和服务器应用程序。前身技术是来自Mozilla和GoogleNativeClient的asm.js。更多信息:https://webassembly.org/OpenJSFoundation(2019年3月12日)众所周知,Node.js和JavaScript有着千丝万缕的联系,有很多合作,但它们属于不同的基金会。做事很不方便,所以需要合并两个基础来提高效率。因此,2019年3月13日,Node.js基金会和JS基金会宣布合并为OpenJS基金会。OpenJS基金会的主要目标是:促进关键JavaScript和Web解决方案及相关技术的广泛采用和持续发展;促进JavaScript开发社区的协作;在整个端到端JavaScript生态系统中为开源项目创建一个重心,引导它们走向开放治理和多样化的合作者基础;托管基础设施以支持托管的JavaScript开源项目;通过推进项目和战略合作伙伴关系,建立一个开放且易于访问的网站。更多信息:https://openjsf.org/Deno(2020年5月13日)Deno是一个基于V8JavaScript引擎和Rust编程语言的JavaScript和TypeScript运行时。它由Node.js的原作者RyanDahl创建。这是他在JSConf2018欧盟会议上题为“我对Node.js感到遗憾的10件事”的演讲中宣布的。Deno在单个可执行文件中明确承担运行时和包管理器的角色,而不需要单独的包管理器。更多信息:https://deno.land/最后,对于JavaScript的未来,有一件事是明确的:协作是关键。“浏览器大战”已经结束,用户和开发人员都不想重温因缺乏互操作性而导致的问题。幸运的是,开源已经盛行,代表了JavaScript语言和社区的发展和治理的前进方向。原文:https://www.zdnet.com/article/javascript-at-25-the-programming-language-that-makes-the-world-go-round/https://js25.org/本文为转载自微信公众号“大招天下”,可通过以下二维码关注。转载本文请联系大千世界公众号。
