世面上有很多编程语言。为什么要使用 JavaScript?本章将探讨在选择编程语言时需要考虑的七个重要方面,并论证 JavaScript 在总体上表现出色:
JavaScript 可以说是现存最开放的编程语言:其规范 ECMA-262 是 ISO 标准。该规范得到了来自独立方的许多实现的密切遵循。其中一些实现是开源的。此外,该语言的演变由 TC39 处理,该委员会由包括所有主要浏览器供应商在内的多家公司组成。这些公司通常是竞争对手,但为了语言的利益,他们走到了一起。
既是又不是。我用几种不同范式的编程语言编写了相当数量的代码。因此,我很清楚 JavaScript 并不是优雅的巅峰。但是,它是一种非常灵活的语言,具有相当优雅的核心,并且允许您混合使用面向对象编程和函数式编程。
JavaScript 引擎之间的语言兼容性曾经是一个问题,但现在不再是了,这在一定程度上要归功于test262 套件,该套件会检查引擎是否符合 ECMAScript 规范。相比之下,浏览器和 DOM 的差异仍然是一个挑战。这就是为什么通常最好依靠框架来隐藏这些差异的原因。
世界上最美丽的编程语言,除非它能让你写出你需要的程序,否则毫无用处。
在图形用户界面领域,JavaScript 受益于它是HTML5的一部分。在本节中,我使用术语 HTML5 来指代“浏览器平台”(HTML、CSS 和浏览器 JavaScript API)。HTML5 已被广泛部署,并且在不断发展。它正逐渐成为一个完整的层,用于编写功能齐全的跨平台应用程序;类似于 Java 平台,它几乎就像一个嵌入式操作系统。HTML5 的一个卖点是它允许您编写跨平台的图形用户界面。这些始终是一种妥协:您放弃了一些质量,以换取不局限于单一操作系统。过去,“跨平台”意味着 Windows、Mac OS 或 Linux。但我们现在还有两个额外的交互式平台:网络和移动设备。借助 HTML5,您可以通过PhoneGap、Chrome Apps和TideSDK等技术来定位所有这些平台。
此外,一些平台将网络应用程序作为原生应用程序,或者允许您以原生方式安装它们,例如 Chrome OS、Firefox OS 和 Android。
除了 HTML5 之外,还有更多技术可以补充 JavaScript 并使该语言更有用:
JavaScript 正在获得更好的构建工具(例如,Grunt)和测试工具(例如,mocha)。Node.js 使得通过 shell(而不仅仅是在浏览器中)运行这些工具成为可能。这个领域的风险是碎片化,因为我们正在逐渐获得太多这样的工具。
JavaScript IDE 领域仍处于起步阶段,但正在迅速发展。Web 开发的复杂性和动态性使该领域成为创新的沃土。两个开源示例是Brackets和Light Table。
此外,浏览器正在成为功能越来越强大的开发环境。特别是 Chrome,最近取得了令人瞩目的进步。未来 IDE 和浏览器将如何进一步集成,这将是一件很有趣的事情。
JavaScript 引擎已经取得了巨大的进步,从缓慢的解释器发展到快速的即时编译器。它们现在的速度足以满足大多数应用程序的需求。此外,新的想法已经在开发中,以使 JavaScript 的速度足以满足其余应用程序的需求:
mapPar
、filterPar
和reducePar
(现有数组方法map
、filter
和reduce
的可并行化版本)的 JavaScript 代码。为了使并行化工作,回调必须以特殊样式编写;主要限制是您不能改变未在回调内部创建的数据。被广泛使用的语言通常有两个好处。首先,这样的语言有更好的文档和支持。其次,更多的程序员了解它,这在您需要雇用人员或为基于该语言的工具寻找客户时非常重要。
JavaScript 被广泛使用,并且获得了上述两项好处
有几件事表明JavaScript 有着光明的未来:
考虑到前面列出的使一种语言具有吸引力的因素,JavaScript 的表现非常出色。它当然不完美,但在目前,它很难被击败,而且情况只会越来越好。