第二章 为什么选择 JavaScript?
目录
购买本书
(广告,请勿屏蔽。)

第二章 为什么选择 JavaScript?

世面上有很多编程语言。为什么要使用 JavaScript?本章将探讨在选择编程语言时需要考虑的七个重要方面,并论证 JavaScript 在总体上表现出色:

  1. 它是免费可用的吗?
  2. 它是一种优雅的编程语言吗?
  3. 它在实践中有用吗?
  4. 它有好的工具吗,特别是好的集成开发环境(IDE)?
  5. 它的速度足以满足您的需求吗?
  6. 它被广泛使用吗?
  7. 它有未来吗?

JavaScript 是免费可用的吗?

JavaScript 可以说是现存最开放的编程语言:其规范 ECMA-262 是 ISO 标准。该规范得到了来自独立方的许多实现的密切遵循。其中一些实现是开源的。此外,该语言的演变由 TC39 处理,该委员会由包括所有主要浏览器供应商在内的多家公司组成。这些公司通常是竞争对手,但为了语言的利益,他们走到了一起。

JavaScript 优雅吗?

既是又不是。我用几种不同范式的编程语言编写了相当数量的代码。因此,我很清楚 JavaScript 并不是优雅的巅峰。但是,它是一种非常灵活的语言,具有相当优雅的核心,并且允许您混合使用面向对象编程和函数式编程。

JavaScript 引擎之间的语言兼容性曾经是一个问题,但现在不再是了,这在一定程度上要归功于test262 套件,该套件会检查引擎是否符合 ECMAScript 规范。相比之下,浏览器和 DOM 的差异仍然是一个挑战。这就是为什么通常最好依靠框架来隐藏这些差异的原因。

JavaScript 有用吗?

世界上最美丽的编程语言,除非它能让你写出你需要的程序,否则毫无用处。

补充 JavaScript 的其他技术

除了 HTML5 之外,还有更多技术可以补充 JavaScript 并使该语言更有用:

JavaScript 有大量的库,使您能够完成从解析 JavaScript(通过Esprima)到处理和显示 PDF 文件(通过PDF.js)的各种任务。
Node.js
Node.js 平台允许您编写服务器端代码和 shell 脚本(构建工具、测试运行器等)。
JSON(JavaScript 对象表示法,在第二十二章中介绍)
JSON是一种源于 JavaScript 的数据格式,已成为在 Web 上交换数据的流行方式(例如,Web 服务的结果)。
NoSQL 数据库(例如CouchDBMongoDB
这些数据库紧密集成了 JSON 和 JavaScript。

JavaScript 有好的工具吗?

JavaScript 正在获得更好的构建工具(例如,Grunt)和测试工具(例如,mocha)。Node.js 使得通过 shell(而不仅仅是在浏览器中)运行这些工具成为可能。这个领域的风险是碎片化,因为我们正在逐渐获得太多这样的工具。

JavaScript IDE 领域仍处于起步阶段,但正在迅速发展。Web 开发的复杂性和动态性使该领域成为创新的沃土。两个开源示例是BracketsLight Table

此外,浏览器正在成为功能越来越强大的开发环境。特别是 Chrome,最近取得了令人瞩目的进步。未来 IDE 和浏览器将如何进一步集成,这将是一件很有趣的事情。

JavaScript 的速度够快吗?

JavaScript 引擎已经取得了巨大的进步,从缓慢的解释器发展到快速的即时编译器。它们现在的速度足以满足大多数应用程序的需求。此外,新的想法已经在开发中,以使 JavaScript 的速度足以满足其余应用程序的需求:

  • asm.js是 JavaScript 的一个(非常静态的)子集,可以在当前引擎上快速运行,速度大约是编译后的 C++ 的 70%。例如,它可以用来实现 Web 应用程序中性能至关重要的算法部分。它也被用来将基于 C++ 的游戏移植到 Web 平台。
  • ParallelJS可以并行化使用新的数组方法mapParfilterParreducePar(现有数组方法mapfilterreduce的可并行化版本)的 JavaScript 代码。为了使并行化工作,回调必须以特殊样式编写;主要限制是您不能改变未在回调内部创建的数据。

JavaScript 被广泛使用吗?

广泛使用的语言通常有两个好处。首先,这样的语言有更好的文档和支持。其次,更多的程序员了解它,这在您需要雇用人员或为基于该语言的工具寻找客户时非常重要。

JavaScript 被广泛使用,并且获得了上述两项好处

  • 如今,JavaScript 的文档和支持有多种形式:书籍、播客、博客文章、电子邮件简报、论坛等等。第三十三章为您指出了重要的资源。
  • JavaScript 开发人员的需求量很大,但他们的队伍也在不断壮大。

JavaScript 有未来吗?

有几件事表明JavaScript 有着光明的未来:

  • 该语言正在稳步发展;ECMAScript 6 看起来不错。
  • 有许多与 JavaScript 相关的创新(例如,前面提到的 asm.js 和 ParallelJS、微软的 TypeScript 等)。
  • JavaScript 所属的 Web 平台正在迅速成熟。
  • JavaScript 得到了广泛的公司联盟的支持,没有任何个人或公司控制它。

结论

考虑到前面列出的使一种语言具有吸引力的因素,JavaScript 的表现非常出色。它当然不完美,但在目前,它很难被击败,而且情况只会越来越好。

下一章:3. JavaScript 的本质