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

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

本文选自“图灵教育”微信。

曾经的JavaScript像玩具一样

澳门新葡亰游戏网址 1


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

世界上最好的编程语言是什么?相信每个程序员都有自己的答案。硅谷创业之父Paul
Graham说:“在商业竞争中使用Lisp语言就会带来优势,如果我有幸见到一家招聘Lisp黑客的公司,就会真的感到如临大敌。”而更多的企业级开发团队则用他们的行动证明,他们信任的是更加朴实可靠的“蓝领语言”——Java。Java的设计虽然相对保守
,但却是世界上使用范围最广的编程语言之一。就在理论派和实用派的老大哥争得面红耳赤时,软件界却涌现出了一些平易近人,但又功能强大的年轻语言。

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

澳门新葡亰游戏网址,Python的优点多多:可读性高、语法简洁,免费……但是大家选择Python的最关键理由却可能出乎你的意料:大家都喜欢它。另外一门广受大家喜爱的开源语言Ruby起源于日本,因为在Web开发方面的优势,它已经引起了全世界的关注。有人问Ruby之父松本行弘:“你为什么开发
Ruby?”他的回答就像Linux的开发者Linus
Torvalds对“为什么开发Linux”的回答一样——“因为它给我带来了快乐。”


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

就在各种新老编程语言争奇斗艳之时,另一些语言却悄悄地主宰了互联网时代的命脉。JavaScript的出身有些尴尬,连名字都是为了搭Java的顺风车。但是在JS广为普及的今天,Web已经成为了JS事实上的运行环境。Douglas
Crockford指出,JS正日益成为支配世界的程序设计语言。另一方面,在互联网的大背景下,人们对“云”的需求越来越强烈。许式伟把Go语言称为互联网时代的C语言,他创立的七牛云存储全部都是用Go语言来搭建的。面对别人的质疑,他说:“人们只有在不了解背后的具体原理时,才会局限于最保守的方案。”严谨不是创新的对立面,而是创新的基础。

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

本期码农“人物”阿朱曾立志成为中国一流的程序员,可是现在却做起了京东技术学院院长,开始了关于“人”的工作。曾几何时,他是一位热衷在大富翁论坛刷分的程序员,但是经历了零售、医疗、汽车、地产四大行业,而他的职位也从首席架构师、技术总监,做到了CTO之后,他的梦想发生了改变。他坦言,“如果今生能够经历50人、500人、5000人的研发团队并亲自打造,我应该此生无憾了。”虽然他现在是京东的“技院老板”,但心里仍然是当年那个注重“实效”的程序员,他希望自己能够用手中抓着的杠杆,撬动地球。

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

如果本期《码农》能为你带来任何启示,都请到图灵社区来发表意见。赞美无风险,吐槽别谨慎。

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

码农论剑

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

梦寐以求的编程语言

澳门新葡亰游戏网址 2

欢迎你,很高兴你选择了Java 8

冥冥之中注定的语言

Python的禅定一刻

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

我为什么开发Ruby

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

Clojure哲学

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

掌控Web的语言JavaScript

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

—— Douglas Crockford

为什么我们需要的新语言是Go

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

<人物>

澳门新葡亰游戏网址 3

阿朱:从50到5000,从技术到人

硅谷创业之父Paul Graham

<践行>

函数式编程的流行之势

Rest API 的那些事儿

网站地图xml地图