技术公司后端服务编程语言剖面图(图片来源:Stackshare.io)
2003年,
保罗·格雷厄姆(Paul Graham)
在文中提到,他的公司决定使用
Lisp
(一门编程语言)。在文章中他将Lisp描绘成计算机语言界的法语,它独特、深邃,能够表达难以描述的事物(亦即法语je ne sais quoi所指)。他指出自己公司相比竞争对手的优势在于Lisp。
如果Lisp像法语,那么现如今的JavaScript就像英语一般。尽管二者的语法不一致,但英语是世界上最广泛使用的语言,JavaScript是最广泛应用的计算语言。
然而,JavaScript仍未得到与其他语言同等的尊重。尽管它的使用率在创业公司和大型公司中持续增长,但若非必要,人们不会认为它是一门有用的语言。大公司的高级工程师声称它不是一门“真正的”编程语言,许多人并不知道除了操作像素外它还能被用于何处。
作为一名JavaScript工程师,我希望更深入地了解公众对这门语言的看法,并观察这些观点在现实中到底有多牢不可破。我发现,一些批评有失水准,但更多的批评则是有意义的。
不断增长的生态系统
除了样式效果外,JavaScript也被越来越多地应用于软件开发,例如后端任务、Web服务器以及数据处理。Zeit首席执行官Guillermo Rauch指出,JavaScript“不是人为设计出来的,它是在进化过程中得到的结果。它成型很快,起初只关注一个很小的目标,后来都是市场的力量改造了这门语言。
Rauch的公司提供一个仅在浏览器和服务器中使用JavaScript的开源Web框架,事实证明,许多公司都在做同样的事情。
Rauch的公司提供了一个仅在浏览器和服务器上使用JavaScript的开源Web框架。 事实证明,许多公司都在做同样的事情。根据展示公司技术栈信息的网站StackShare.io的数据,在后端语言的选取上,相比Python(4000)或Java(3900),更多公司使用JavaScript(6000)。这个网站面向的更多是创业公司,但它从侧面反映出JavaScript是一个不断增长的生态系统。以下是展示不同公司技术栈极各自市场份额的维恩图(数据来自StackShare.io)。
技术公司后端服务编程语言剖面图(市场占有率估值)
再来看看编程工作的数据吧,Indeed.com上的一个看法告诉我们,在美国,大多数编程工作都使用Java,但JavaScript并没有落后,如下图所示:
对JavaScript有正面影响的其他统计数据:
-
在Github上JavaScript开源项目的数量最多(比Java多出50%)。
-
NodeJS被评为StackOverflow 2017年开发者调查中最受欢迎的框架。
-
JavaScript是Stack Overflow中最流行的编程语言。
对JavaScript的批评
我咨询过一位Oracle的朋友,他们的工程师对JavaScript有什么顾虑。他说“由于JavaScript是一门解释型无类型语言,对于系统编程来说它不是一门理想的编程语言”,这种针对JavaScript的投诉非常普遍。JavaScript函数接受任意类型的参数,但在Java中,如果参数不是特定类型¹就会引发错误。
function doSomething(literallyAnything) {
return;
}
我又咨询另外一位在谷歌工作的朋友,他向我指出NodeJS的一些公开的问题,他说,一些错误虽然微乎其微,但他会认为这个框架不够成熟。
Rauch指出,JavaScript的垃圾回收不是最理想的。另一个批评是Java和Python更适合数据科学类的项目,如机器学习和自然语言处理。这可能与这些语言可用的库有关,而非批判JavaScript的内在缺陷。学术界对Java和Python的依赖也助长了这种论调。