编程语言那么多为何Google独爱JS

2019年05月15日 来源:

我从事软件开发的相干工作已经有15年了。目前的工作主要集中于Web和移动运用方面。在这么多年里,我对JavaScript的态度可能比较能代表一大群程序员的看法:从一开始对js的不屑一顾到惊奇它的表现和潜力。

曾经的JavaScript像玩具一样

在2000年那会儿,我也从事过一段web应用开发。开发平台是Windows,主要使用Asp。那个时候的JavaScript主要用途是检验页面输入数据是否正确。毛病的时候,会弹出个正告窗口。当时全部Web开发、应用环境,实际上都是十分简陋的。Web开发者看待JavaScript估计就如同玩具一般。由于它能做的真的是十分有限。如果你能找到2000年时候的有关js的IT图书,内容多半大同小异,充斥着告诉你怎样用js做个甚么跑马灯,怎么制造烦死人的弹窗,如此这般。这些内容也进一步抑制了大家对js的期望。

后来,我转向C/C++,因为真正的程序员使用C++。这一转身就是很多年,我对js的印象,也就止于那点功用了。

这几年,由于种种变化,我又转回来了。这个时候再回顾Web开发,已可以用天翻地覆来形容。相干的概念层出不穷,发展出的各种技术、工具,五花八门,让人眼花缭乱。而且更要命的是,这些知识除了基础的几类,大部分都十分的不稳定,并且在这种不稳定的情况下迅速发展,以疯狂的速度淘汰更新。今天还在用的工具,可能明天就有更新、更好的了。

为何会这样?由于社会需要的热门在这里:需求推动。这个社会的生活、生产,逐渐转移到了站上、移动端,这就是这些领域快速发展进步的主因。

这个时候再回头看当年的玩具语言:JavaScript,也早已今非昔比。

它已经成长为络时代不可或缺的前端顶梁柱。现在已经不可想象没有js的站是否还能正常运行。不仅如此,它的触角竟然还深入到了后端服务,方兴未艾。一些新一代的产品,如MongoDB,甚至内置了js语言支持,作为运用交互的工具。

这是很多人都没法想象到的情景,包括我在内。对此,我不得不回过头看一下,思考JavaScript为什么会具有现在的地位。

冥冥之中注定的语言

JavaScript的总体设计有亮点,但问题也很多。它是作者在10天内设计出来的。因为时间仓促,很多细节未及推敲、深思熟虑就推上了市场,以至于充斥了漏洞、糟粕。Douglas Crockford在《JavaScript语言精粹》(英文名《JavaScript:The Good Parts》)里面提到:Javascript中糟粕的比重超越了预期。(注:Douglas Crockford,JavaScript开发社区知名的权威,是JSON、JSLint、JSMin和ADSafe之父,著有《JavaScript: The Good Parts》。)

连Brendan Eich(JavaScript的创造者)自己都说:"与其说我爱它,不如说我恨它。它是C语言和Self语言一夜情的产物。十八世纪英国文学家约翰逊博士说得好:'它的之处并不是原创,它的原创之处其实不。'(the part that is good is not original, and the part that is original is not good.)"

但是,似乎是在冥冥之中注定,JavaScript在一开始就抓到了未来编程语言的方向:函数式编程。

JavaScript设计的出色的就是它的函数的实现。它近乎接近于完美。...... 函数在javascript中是对象,它是个成为主流的Lambada语言,它是披着C外衣的Lisp。

Douglas Crockford

读过《黑客与画家:硅谷创业之父Paul Graham文集》(主要介绍黑客即程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等话题)的人,都会记得作者的预言:Lisp才是语言的趋向。(注:LISP源自列表处理LISt Processing的缩写,由来自麻省理工学院的人工智能研究先驱John McCarthy在1958年基于演算所创造,是一种通用高级计算机程序语言,长期以来垄断人工智能领域的运用,也是个函数式程序设计语言。)

硅谷创业之父Paul Graham

函数式编程的流行之势

函数式编程并不是新发明,它的历史甚至比一些主流语言还早。由于性能和实现等问题,一直饱受冷落。而如今,计算机的硬件性能大大提高,改变了很多事物。原本不够经济的,变得可行;原本不够好的,在新条件下变得不错。鉴于函数式编程的优良特性和强大能力,它的流行其实并不意外。进程化-面向对象-函数式的应用开发范型发展趋势是可以预感的。

这些年,脚本语言大行其道,使用Python/Ruby/PHP代替原本静态语言开发的应用比比皆是,传统的C/C++运用开始逐渐缩减到桌面应用、高性能服务器运用、驱动、系统接口等领域。因为大部分的应用的性能已经不是问题,CPU相对多余,I/O、速才是瓶颈,由于人们总是更重视开发效力。而JavaScript由于一开始就有这样的设计能力,把握住了技术的先机,紧随了这股浪潮。

固然,运气也不可或缺。世界上的编程语言至少也有个几百种。一种语言想获得认可并得到流行,光有好的技术设计是不够的,它还需要位置乃至契机。

编程语言要找到适合自己应用的领域,深深的扎下根来,并以此为基地,向外舒展。这个时间,有时候需要20年以上。比如PHP专注于Web开发,C对于系统开发不可缺少,Python在科学计算、络编程有诸多运用。

在2004年,JavaScript就得到了一次契机:Google推出了使用Ajax技术的Gmail邮箱,那堪比桌面的无刷体验,引发了业界轰动和模仿浪潮。而Ajax的操作核心就是JavaScript。此后,js在浏览器中的地位变得十分稳固,已经成了事实标准。在2009年,基于Google强大V8 js引擎的出现了,它意味着js向其它领域开始进军,发挥它的语言威力。微软当年也宣称在服务器端可以内置支持jscript,不过这完全不可比。

络时期的需要,JavaScript捷足先登。浏览器一开始就绑定了js脚本技术,这让它取得先发优势。当年的浏览器大战后,微软的浏览器占据统治地位,IE里面是可以编写vbscript的,但微软在络时代的停滞不前,让他丢失了很多机会。

由于络带来的低成本信息交互以及更低的开发、部署成本,愈来愈多的产品基于浏览器做为界面。js在运用开发上当仁不让。业界出于需求,制定了几版相关的技术标准,比如HTML、CSS、JS便都有了自己的位置和开发标准规范,它们相互紧密协作,融为一体。Web应用开始侵蚀以往的桌面运用。

时间证明了JavaScript的价值,它并没有被淹没在历史的发展里。只要应用领域有足够的渴求,本来有很多不足的东西也会获得强大的推动力,把它改造的更好。

Brendan Eich在今年年5月份做了一个PPT,回顾了js语言的创造过程和这20年的发展、前景。(观看地址: )

那么我也借用他的话来结尾吧:

My advice:always bet on JS.

经间期出血小腹痛
经期推后有血块量少
月经量少吃什么药
相关文章
  • 视频大熊猫八喜映雪完成诱捕即将同时放归大
    视频大熊猫八喜映雪完成诱捕即将同时放归大

    中国大熊猫保护研究中心工作人员在天台山野化培训圈对野化大熊猫“八喜”、“映雪”进行两天的诱捕后,于20日成功回捕两只大熊猫。 在放归前一周,身着熊猫服的工作人员便开始通过无线电接收器搜寻两只大熊猫的活动区域,并用竹笋逐步将两只大熊猫从高...

  • 宝宝调皮捣蛋怎么办没规矩表现及教育方法
    宝宝调皮捣蛋怎么办没规矩表现及教育方法

    宝宝调皮捣蛋怎么办?没规矩表现及教育方法【导语】:宝宝的性格也是多种多样,有些宝宝比较安静,有些宝宝则很调皮捣蛋,那么,宝宝调皮捣蛋该怎么教育?  宝宝没规矩表现一:与同伴吵架、抢夺玩具  有趣“惩罚”方式:  1、规劝。先放下手边的工...

  • 南宁大沙田一男子被发现死在街头警方介入调查
    南宁大沙田一男子被发现死在街头警方介入调查

    广西南宁讯(余锋)3月27日上午,南宁市大沙田平和街一家宾馆的老板上午开门时,突然发现宾馆门口躺着一具男尸。南宁警方接报后,到现场调查该男子死因。当日上午11时20分许,南宁市良庆区大沙田平和街。我们当日凌晨3时关门时一切正常,天亮开门发现尸体...

  • 2012年A股成交量明显下降日均成交额同比降三成
    2012年A股成交量明显下降日均成交额同比降三成

    中新2月1日电 据央行站消息,中国人民银行今日公布《2012 年金融市场运行情况》,较2011年减少30.5%。2012年,股票指数总体上行。年末上证指数收于2269.13点,比2011年底上涨69.71点,涨幅3.17%。本年,上证指数为2460.69点,为1959.77点,波幅为500.92点。(中新证...

  • 途牛同程被约谈1元出境游下线1元门票还在卖
    途牛同程被约谈1元出境游下线1元门票还在卖

    1元出境游活动页截图给你1元钱,让你把它花掉,很多人可能还要想半天,这1元钱能买什么?在途牛、同程等线上旅游站,1元钱不但可以逛景点,还可以出境玩一趟。不过,针对1元旅游产品,近日旅游主管部门约谈了同程、途牛,并且叫停途牛的1元出境游,这引起...

  • 陈大强带领市直有关部门现场检查推进五大战役有关项目建设工作
    陈大强带领市直有关部门现场检查推进五大战役有关项目建设工作

    本资料复制自看福清: 本报讯 8月30日下午,福州市委常委、福清市委书记陈大强带领市直有关部门负责人前往玉屏街道、阳下街道及洪宽工业村,现场检查推进“五大战役”有关项目建设工作。陈大强要求,各级各部门一定要按照省委书记孙春兰提出的“抓项目要...