打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JavaScript 终于成了一流语言

题图:by click_vision From Instagram

注:本文节选自「极客时间」大前端专题,有删改。

编程语言到底有没有生产力之分呢,当然是有的,尤其对于初中级选手。功夫到了绝顶,拈花飞叶皆是武功,工具就不重要了。但能到绝顶的,毕竟是少数,所以对大多数人来说,工具和编程语言的选择同样重要。《黑客与画家》的作者保罗·格雷厄姆(Paul Graham)就在文章中写过,他决定在公司使用 Lisp,就是因为他认为 Lisp 比当时所有的语言都高出一筹,独特、深邃,能够表达难以描述的事物。保罗说,自己公司相比竞争对手的优势就在于 Lisp。

Lisp 始终没有成为程序员主要的开发语言,但是另一门类似英语表达一般的编程语言 JavaScript 在最近几年却获得了突飞猛进的发展,目前成为 Github 上使用最广泛的开发语言,可谓编程语言生产力的代表。

然而,JavaScript 仍未得到与其他语言同等的尊重。尽管它的使用率在创业公司和大型公司中持续增长,但很多人依然不认为它是一门有用的语言。大公司的高级工程师声称它不是一门「真正的」编程语言,许多人还以为 JavaScritp 只能操作一些表单和样式,并弹出一个警示框。

作为一名老程序员,我希望通过这篇文章让大家深入了解公众对这门语言的看法。在我来看,一些批评有失水准,有一些批评则是有意义的。

不断增长的生态系统

除了样式效果外,JavaScript 也被越来越多地应用于软件开发,例如后端任务、Web 服务器以及数据处理和原生移动应用的开发。JavaScript 并不是人为设计出来的一门语言,它是在进化过程中找到了自己的位置。它成型很快,起初只关注一个很小的目标,后来是市场的力量改造了这门语言。

Rauch 的公司提供了一个可以同时在浏览器和服务器上使用 JavaScript 的开源 Web 框架。事实证明,许多公司都在做同样的事情。根据统计公司技术栈信息的网站 StackShare.io 的数据,在后端语言的选取上,相比 Python(4000)或 Java(3900),更多公司使用 JavaScript(6000)。这个网站面向的更多是创业公司,但它从侧面反映出 JavaScript 是一个不断增长的生态系统。

再来看看编程工作的数据,Indeed.com 上的一篇文章告诉我们,在美国,大多数编程工作都使用 Java,但 JavaScript 并不落后。比如:

1、在 Github 上 JavaScript 开源项目的数量最多(比 Java 多出 50%)
2、NodeJS 被评为 StackOverflow 2017 年开发者调查中最受欢迎的框架
3、JavaScript 是 Stack Overflow 中最流行的编程语言

对 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 是否是一种「真正的」编程语言的时代已经过去,现在的问题是,你有没有准备好投入到这门语言中,进行真正的学习。


如何成为一名优秀的前端工程师呢?学习和实践。如果你已经是一名前端工程师了,自然具备实践的机会。如果从零开始,实践机会就比较少,耗时也会比较长,对自制力的要求也很高。

最有效率的方式是跟着一门课程学习,比如优达学城的前端开发课程。这门课程帮助你从零基础体系化学习前端开发,并提供实战项目、一对一码审阅和技术辅导。课程是和 Google、GitHub 公司合作开发,按照真实工作中的需求设计的课程和实战项目,相比传统的IT教育,硅谷工程师的情景化短视频 + 互动问答,容易保持注意力和即时巩固知识,读者可以在家利用业余时间学习一门新的技术。 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
编程入门学习路线
一位“老程序员”的反思:C、Python、Java 不可兼得,专心学好一门编程语言就行!
2017哪门编程语言最受欢迎?想不掉队就赶紧收藏(附榜单)
2017 年度编程语言榜,Java 最流行、JavaScript 最没价值?
2021 年最佳的后端编程语言会是谁?
计算机系应届生求职指北
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服