作为程序员,我的工作主要集中于Web和移动端应用方面的开发。在这么多年里,我对JavaScript的态度可能比较能代表一大群程序员的看法:从一开始对js的不屑一顾到后惊奇它的表现和潜力。
曾经的JavaScript像玩具一样
在2014年那会儿,我开始从事web网站建设方面的程序工作。所用的语言是PHP,那个时候的JavaScript主要用途是检验页面输入数据是否正确。错误的时候,会弹出个警告窗口。所以那时javascript用得并不多。
后来随着移动端的崛起,以及异步数据调用的实用性。javascript慢慢开始成了后台程序遇经常使用的语言。
为什么会这样?因为社会需要的热点在这里:需求推动。这个社会的生活、生产,逐渐转移到了网站上、移动端,这就是这些领域快速发展进步的主因。
这个时候再回头看当年的玩具语言:JavaScript,也早已今非昔比。
它已经成长为网络时代不可或缺的前端顶梁柱。现在已经不可想象没有js的网站是否还能正常运行。不仅如此,它的触角居然还深入到了后端服务,Node.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引擎的Node.js出现了,它意味着js向其它领域开始进军,发挥它的语言威力。微软当年也宣称在服务器端可以内置支持jscript,不过这完全不可比。
网络时代的需要,JavaScript捷足先登。浏览器一开始就绑定了js脚本技术,这让它取得先发优势。当年的浏览器大战后,微软的浏览器占据统治地位,IE里面是可以编写vbscript的,但微软在网络时代的停滞不前,让他丢失了很多机会。
由于网络带来的低成本信息交互以及更低的开发、部署成本,越来越多的产品基于浏览器做为界面。js在应用开发上当仁不让。业界出于需求,制定了几版相关的技术标准,比如HTML、CSS、JS便都有了自己的位置和开发标准规范,它们相互紧密协作,融为一体。Web应用开始侵蚀以往的桌面应用。
相比于那些突然名声大噪,又突然消沉的编程语言,JavaScript虽然一直走得比较慢,它无需盛名满载,也不气馁自哀,在历史长河中,它一直默默前行。
亚星管理平台菁思福科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!
亚星管理平台菁思福科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。亚星管理平台菁思福科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、DIY体验、720全景展厅及3D虚拟仿真)、移动端应用(手机站、APP开发)、微信定制开发(微信亚星官网、微信商城、企业微信)、微信小程序定制开发等一系列互联网应用服务。
责任编辑:亚星管理平台菁思福科技
版权所有:https://www.uzncsrj.com (亚星管理平台菁思福科技) 转载请注明出处