编程语言到底有没有生产力之分呢,当然是有的,尤其对于初中级选手。功夫到了绝顶,拈花飞叶皆是武功,工具就不重要了。但能到绝顶的,毕竟是少数,所以对大多数人来说,工具和编程语言的选择同样重要。
Lisp 始终没有成为程序员主要的开发语言,但是另一门类似英语表达一般的编程语言 JavaScript 在最近几年却获得了突飞猛进的发展,目前成为 Github 上使用最广泛的开发语言,可谓编程语言生产力的代表。
然而,JavaScript 仍未得到与其他语言同等的尊重。尽管它的使用率在创业公司和大型公司中持续增长,但很多人依然不认为它是一门有用的语言。大公司的高级工程师声称它不是一门「真正的」编程语言,许多人还以为 JavaScritp 只能操作一些表单和样式,并弹出一个警示框。
不断增长的生态系统
除了样式效果外,JavaScript 也被越来越多地应用于软件开发,例如后端任务、Web 服务器以及数据处理和原生移动应用的开发。JavaScript 并不是人为设计出来的一门语言,它是在进化过程中找到了自己的位置。它成型很快,起初只关注一个很小的目标,后来是市场的力量改造了这门语言。
Rauch 的公司提供了一个可以同时在浏览器和服务器上使用 JavaScript 的开源 Web 框架。事实证明,许多公司都在做同样的事情。根据统计公司技术栈信息的网站 StackShare.io 的数据,在后端语言的选取上,相比 Python(4000)或 Java(3900),更多公司使用 JavaScript(6000)。这个网站面向的更多是创业公司,但它从侧面反映出 JavaScript 是一个不断增长的生态系统。
对 JavaScript 的批评有哪些呢?
并没有致命的批评。
我咨询过一位 Oracle 的朋友,他们的工程师对 JavaScript 有什么顾虑。他说“由于 JavaScript 是一门解释型无类型语言,对于系统编程来说它不是一门理想的编程语言”,这种针对 JavaScript 的投诉非常普遍。JavaScript 函数接受任意类型的参数,但在 Java 中,如果参数不是特定类型就会引发错误。
我又咨询另外一位在谷歌工作的朋友,他向我指出 NodeJS 的一些公开的问题,他说,一些错误虽然微乎其微,但他会认为这个框架不够成熟。
上述几位工程师都曾提到,每当讨论编程语言时,经常听到其他工程师贬低 JavaScript。大家对于 JavaScript 用于后端任务依然心存疑虑,但是大部分敌意似乎又与语言和生态系统的现状无关。
JavaScript 的现状
JavaScript 在过去 5 年中已经走过很长一段路,早期 JavaScript 实现类似 Facebook 的“Like”按钮这样的功能,都需要刷新页面,点一下,刷一次。后来可以做到点一次页面不刷新,但会改变页面状态。
再后来开发者开始通过 JavaScript 来制作单页面应用程序(SPA)。SPA 指在浏览器中应用程序只加载一次,所有后续视图都是通过 JavaScript 生成的。反对者认为,用户需要花很长时间才能完成初始下载,在手机上时间更长。在过去的两年中,向管理和打包 JavaScript 代码的技术已得到显著提高(比如 webpack)。这解决了 JavaScript Web 应用缓慢的加载速度,提升了性能并创建更好的用户交互体验。
随着技术进步,JavaScript 出现了新的编程范式。状态管理库将计算机和操作系统的设计原理使用到了用户的交互体验上,JavaScript 工程师的门槛变高了。在这些变化的背景下,对于早期阶段的公司来说,使用 JavaScript 作为后端语言就开始变得有意义。如果您已拥有了优秀的前端 JavaScript 攻城师,这种做法可以让他们更轻松地协作,审核和共享代码。
尽管 JavaScript 最初是一门浏览器中的语言,但在计算机科学的各个方面 —— Web、移动端、物联网和后端服务中,它都变得更加普遍。无论你是否承认这一点,JavaScript 都在各个编程领域大展身手。
毫无疑问,JavaScript 已经成为了一门一流的编程语言,使用 JavaScript 的程序员们正变得无所不能。质疑 JavaScript 是否是一种「真正的」编程语言的时代已经过去,现在的问题是,你有没有准备好投入到这门语言中,进行真正的学习。
更多java小知识探讨可询462403503或点击下方蓝色字体了解。