加载中…

加载中...

编程语言那么多,为什么Google独爱JS? x15lk

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

      曾经的JavaScript像玩具一样

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

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

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

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

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

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

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

      冥冥之中注定的语言

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

      连BrendanEichJavaScript的创造者自己都说 "与其说我爱它,不如说我恨它。它是C语言和Self语言一夜情的产物。十八世纪英国文学家约翰逊博士说得好 '它的优秀之处并非,它的之处并不优秀。'thepartthatisgoodisnotoriginal,andthepartthatisoriginalisnotgood."

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

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

      DouglasCrockford

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

      硅谷创业之父PaulGraham

      函数式编程的流行之势

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

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

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

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

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

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

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

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

      BrendanEich在今年年5月份做了一个PPT,回顾了js语言的创造过程和这20年的发展、前景。观看 brendaneich.github.ioModernWeb.tw2016

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

      Myadvice alwaysbetonJS.

      延伸阅读 互联网的发展怎样改变了编程语言的发展方向?谷歌升级自家编程语言Go支持APP开发最受黑客们青睐的编程语言、系统有哪些?TIOBE编程语言7月排行榜 ObjectiveC又降了2016年4月编程语言排行榜TOP100 Java夺冠2016年最值得学习的编程语言是? 。

      原‍文‌地‍址‌:‍徐‌汇‍软‌件‍园 ‌w‍w‌w‍.‌x‍h‌s‍p‌.‍o‌r‍g
阅读(0) 评论(0) 收藏(0) 转载(0) 举报/Report

评论

重要提示:警惕虚假中奖信息
0条评论展开
相关阅读
加载中,请稍后
鐜嬫晱鐚村瓙榻愮帇鏁忕尨_78906
  • 博客等级:
  • 博客积分:0
  • 博客访问:150
  • 关注人气:0
  • 荣誉徽章:

相关博文

推荐博文

新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有