任何一项技术的发展都不是一蹴而就的,总是会经历这样或者那样的挫折,或许是周围环境造成的,抑或是某些技术的基因决定的,关键的问题是如何看待自身和周围环境,一个人的成长也是如此,尤其是当决定权在我们自己手中的时候,更应该看认清自我。
渐入佳境
没错,我还是那个被Java、C、VB嘲笑的JavaScript,虽然我能做很多事,表单的验证,隐藏显示某一部分内容,获取一段文本的值,改变文本的值,甚至我都还可以控制浏览器打开窗口,在一个窗口里面自由的前进后退,在海量的网页之间肆意穿行,但是我离开了浏览器,我一无是处,我被困在了浏览器和网页里,别的什么也做不了,但是随着互联网的发展,我并没有觉得自己永远都是一只井底之蛙,我反而相信总有一天自己能看到大海。
90年代,互联网的发展超出了所有人的预期,每个人都对这种新的技术有着无限的需求,而我也被应用到了每一个网站上,不过我有着自己的烦恼,我作为一个编程语言,在浏览器中运行,没办法调用服务器端的接口来获取数据,我根据用户的Get、Post向服务器发送请求的时候,服务器返回的数据是整个页面,讲人话就是,你在浏览器的做几乎所有操作,我都得刷新一下整个页面给你展示处理啊,即便是这样,我仍然获得了不是人的青睐,然而我并不满足于此。
误打误撞
90年代末,我和当时有着微软做靠山的IE开始了一段新的征程,为什么是IE,而不是Netscape呢,是因为IE有着和我一样强烈驱动力,IE想迅速抢占属于Netscape的市场,而我想的是得到同行的认同,IE中引入一个新的功能:XMLHttpRequest,这个新功能将允许我直接向服务器发出接口调用,每当发起调用时,我拿这个用户名和密码访问一下服务器端处理登陆的接口,我得到服务器端的返回数据以后,再去调用下这个函数,这也叫做异步调用,后来我还有了更先进的Ajax引擎,把更多又服务器负担的工作转移到客户端,利用客户端闲置的资源进行处理,减轻服务器和带宽的负担。只要服务器处理和网络速度都足够快的话,用户就会发现:咦,我没有刷新整个页面,竟然已经登录了啊。我和IE都没有料到,这个功能带来了一场革命。
这种方式可以使得网页局部刷新,让用户浏览网页的体验非常的好,尤其是Google地图,Gmail等应用让互联网应用火了起来。当时的浏览器市场虽然还是Netscape的天下,但是IE有微软作为靠山,微软为了抢占浏览器市场规模,同时还使出了一记必胜绝招,将IE与Windows 98捆绑在一起免费提供,由于此时的IE也慢慢变得好了起来—既然操作系统中提供了浏览器,为什么还要单独购买一个呢?绝大多数用户都有这样的想法,结果在很短的时间内IE的市场占有率急剧上升,各种各样交互性极佳的网站如雨后春笋般出现。VB和Delphi慢慢的不再嘲笑我了,因为他们发现,他们擅长的桌面应用慢慢的都被搬到了互联网上。
成功逆袭
虽然越来越多的人使用和关注我,但是我明白自己心中仍然有个心结,这个心结就是Java在我脑海中种下的一个种子,那就是服务器端才是核心。而这个心结直到谷歌的Chrome V8引擎的出现才算解开,在2009年,我的新主人Ryan Dahl对Chrome V8引擎进行了封装,使用Node.js对一些特殊的用例进行优化,而Node.js作为JavaScript的一个运行时环境在V8引擎上运行的非常快,性能非常好,这下Java无话可说了,虽然他还是对我在服务器端执行持怀疑态度,但越来越多使用node.js的网站证明,javascript的确可以在服务器端立足,并且有一个巨大的优势:前端和后端都用同样的开发语言:那就是我javascript。
一种新技术的发展,再没有比“天下大事顺之者昌”更贴切的了,其实最初的形态根本不重要,往往是他是否能顺应这个时代的需要,如果是,那么它对时代的影响,以及带来的社会变革,常常是出人意料的。