看JavaScript历史的感想

218 阅读5分钟

开天辟地,十日创世

在90年代,万维网中重要的http协议、html发布。人们发现html需要一种胶水语言,可以让程序员更好的操作网页元素,比如插入图片。1995年,布兰登·艾克在网景公司用10天时间开发了JavaScript,推出后大受欢迎。别看名字里面有java,不过是蹭了java的流量,和java没有任何关系。

双雄争霸,网景鲸落

JavaScript的巨大成功,引起了微软注意。在不久之后,微软在自家的IE3浏览器中,推出了自己的JSscript,要和网景的JavaScript展开竞争。可是微软和网景在具体实现上,各自为战,各家都在里面加入了私有的属性。这就导致了开发者要去兼容照顾不同的页面,开发异常艰苦乏味。这个时候JavaScript还没有一个统一的标准,这就为JavaScript的发展形成了阻碍。

在1996年,网景向ECMA提交了自己的语言标准。1997年6月,ECMA以JavaScript语言为基础制定了ECMAScript标准规范ECMA-262。JavaScript成为了ECMAScript最著名的实现之一。但是这并不能阻止网景在同微软的竞争中被餐食。随着网景的节节败退,网景失败已成定局。1998年11月24日,美国在线收购网景;2003年7月15日,时代华纳(当时称为美国在线时代华纳)解散了网景,网景大部分的程序员被解雇,网景的标志亦消失于建筑物。网景公司为互联网作为了伟大的贡献。即便现在,中还能随处可见他留下的遗产,除了JavaScript,他们还发明了显示图片的img标签、http协议中的cookie、互联网加密协议SSL。网景公司虽然死了,但是他在死之前,建立了Mozilla基金会,该基金会下的Firefox浏览器主打安全和隐私,作为网景浏览器的继任者,依然占有一定份额与IE抗争着。

至暗时刻,失去的十年

微软采用在window中预装IE的垄断方法的那一刻,就注定了网景浏览器的灭亡只是时间问题。网景浏览器消失后,微软开始躺在对手的尸体上睡大觉,浏览器开发的投入曾一度削减到1人,这就导致了IE6的bug多如牛毛,各种私有怪诞的问题。在css中,不能用*就是从IE6开始的,至今一些有点年头的开发都已久沿用这条规则。之后,微软觉得还是应该重视浏览器市场,于是又另起炉灶,重新招人开发IE7、8,这又导致前面的问题没有解决,有增加了新的浏览器问题。微软浏览器统治浏览器市场近10年的时间,JavaScript标准发布完全停滞,1999年发布3.0版本,是寿命非常长的一个版本。在这几年中,标准的正式发布都相继流产,不能完全说这是微软的责任,但是微软的JSscript作为标准的一个重要实现,在标准推动上没有用心是肯定的。这十年中,其他语言如java,php都如火如荼,JavaScript就像被遗弃在角落里面,前端的工作大部分都是后端工程师兼职来做。回过头来想,如果当初赢的是网景,未来会不会提前到来?不过幸好,寒冬就要过去。

天不生chrome,万古长如夜?

谷歌公司成立于1998年,那时浏览器大战已经分出胜负。谷歌的搜索业务,在IE统治浏览器市场的十年里,发展相当迅速。之后,谷歌浏览器作为互联网的入口,能更加有效的扩展公司业务和利润,于是,开发浏览器就成了顺理成章的事情。2008年,谷歌发布了chrome浏览器,主打特性就是快速。两年后就超过了Firefox浏览器的份额。之后的几年,IE的浏览器份额被谷歌一步一步餐食。到2020年,其占有份额上升到进65%。谷歌凭借Gmail和移动端等多个重量级应用,引领这前端技术的潮流。同时2009年12月,作为又一个广泛使用的版本,ECMAScript5.0版正式发布。在这个标准下,用chrome的v8作为引擎的nodejs为基础,前端工程话工具如雨后春笋,requireJs、grunt、gulp等等,前端的基础雏形已经形成。之后,ECMAScript6.0,babel、webpack等重量级工具,又似的前端工程化上了一个台阶。可以说,前端开发的演进,在谷歌浏览器发布之后,迎来了一个大爆发。

在这个时候,微软也转变了策略,开始拥抱标准和开源世界。首先发声明劝导用户使用和谷歌一样的基于Chromium的edge浏览器,未来也将减少老版浏览器的维护。JavaScript经过了20年的发展,标准上终于能统一了。

回顾过去,展望未来

尽管JavaScript在标准上迎来了统一,但是现在形式却已经发生了变化。首先,PC市场已经饱和,移动浪潮也过去了,纯HTML环境的发展似乎遇到了瓶颈。JavaScript领域,在三大框架(vue、react、angular)之后,再也没有重量产品的发布。现在腾讯开启的小程序浪潮,如火如荼,各家也开始跟进,不过现在好像又回到了之前没有标准的时期,各家有各家的标准,实现效果上也有好有坏。很难说小程序未来是否会有如浏览器一样统一的一天。因为一项技术的再好,如果没有强力的商业公司去花资源推动,还是会被人遗忘。比如java的长寿,正是因为它是吃百家饭长大的。JavaScript虽然在微软的十年里停滞了,但是起码还有很高的市场占有率。所以我们在注重技术的同时,也应该注意商业上的环境变化。