图灵社区用户威灵顿原创,阅读原文给出链接。 我从事软件开发的相关工作,已经有15年了。目前的工作,主要集中于Web和移动应用方面。在这么多年里面,我对JavaScript的态度可能会代表一大群程序员的看法:从一开始对js的不屑一顾到最后惊奇它的表现和潜力。 JavaScript的创造者:Brendan Eich,在今年年5月份做了一个PPT,回顾了js语言的创造过程和这20年的发展、前景。地址在:http://brendaneich.github.io/ModernWeb.tw-2015/ 在2000年那会儿,我也从事过一段Web应用开发。开发平台是Windows,主要使用Asp。那个时候的JavaScript,主要用途是检验页面输入数据是否正确,错误的时候,弹出个警告窗口。整个Web开发、应用环境,实际上都是十分简陋的。Web开发者看待JavaScript,估计就如同玩具一般。因为它能做的,真的是十分有限。如果你能找到2000年时候的有关js的IT图书,内容多半大同小异,充斥着告诉你怎么用js做个什么跑马灯,怎么制造烦死人的弹窗,如此这般。这些内容也进一步抑制了大家对js的期望。 后来,我转向C/C ,因为“真正的程序员使用C ”。这一转身就是很多年,我对js的印象,也就止于那点功用了。 这几年,因为种种变化,我又转回来了。这个时候再回顾Web开发,已经可以用天翻地覆来形容。相关的概念,层出不穷。发展出的各种技术、工具,五花八门,让人眼花缭乱。而且更要命的是,这些知识除了基础的几类,大部分都十分的不稳定,迅速发展、以疯狂的速度淘汰更新。今天还在用的工具,可能明天就有更新、更好的了。 为什么会这样,因为社会需要的热点在这里,需求推动。这个社会的生活、生产,逐渐转移到了网站上、移动端,这就是这些领域快速发展进步的主因。 这个时候再回头看当年的玩具语言 -JavaScript,早已今非昔比。它已经成长为网络时代不可或缺的前端顶梁柱。现在已经不可想象没有js的网站,是否还能正常运行。不仅如此,它的触角居然还深入到了后端服务,Node.js方兴未艾。一些新一代的产品,如MongoDB,甚至内置了js语言支持,作为应用交互的工具。 这是很多人都无法想象到的情景,包括我在内。对此,我不得不回过头看一下,思考JavaScript为什么会拥有现在的地位? JavaScript的总体设计有亮点,这稍后再说。但问题也很多,它是作者在10天内设计出来的。因为时间仓促,很多细节未及推敲、深思熟虑就推上了市场。未经打磨,以至于充斥了漏洞、糟粕。Douglas Crockford在《JavaScript语言精粹》(英文名:JavaScript: The Good Parts)里面提到:“JavaScript中糟粕的比重超出了预期。”连Brendan Eich自己都说:"与其说我爱JavaScript,不如说我恨它。它是C语言和Self语言一夜情的产物。十八世纪英国文学家约翰逊博士说得好:'它的优秀之处并非原创,它的原创之处并不优秀。'(the part that is good is not original, and the part that is original is not good.)" 但是,似乎是在冥冥之中注定,JavaScript在一开始就抓到了未来编程语言的方向:函数式编程。Crockford大叔说:”JavaScript设计的最出色的就是它的函数的实现。它近乎接近于完美。...... 函数在JavaScript中是顶级对象,它是第一个成为主流的Lambada语言,它是披着C外衣的Lisp。”读过那本《黑客与画家》的人,都会记得作者的预言:Lisp才是语言的终极趋向。 这几年,函数式编程有流行的趋势。函数式编程并不是新发明,它的历史甚至比一些主流语言还早。因为性能和实现等问题,一直饱受冷落。而如今,计算机的硬件性能大大提高,改变了很多事物。原本不够经济的,变得可行;原本不够好的,在新条件下变得不错。鉴于函数式编程的优良特性和强大能力,它的流行其实并不意外。过程化- |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|