
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
为什么 JavaScript 会如此成功? 由 Eich 10 天匆忙赶出来的一门语言为何能流行至今呢?
其中的原因有很多,第一个原因就是 Eich 的远见、易于学习和容忍在许多语言中可能出错的代码,比如将字符串与数字进行比较并得到一个常识性的结果——尽管 Eich 后来称这是“一个很大的遗憾,因为它破坏了一个重要的数学特征”。
另一个重要原因是谷歌决心让基于浏览器的应用程序与桌面竞争,这给世界带来了 V8 引擎 (2008),再加上 Mozilla 的 SpiderMonkey 和苹果的 JavaScript Core,使语言具有惊人的 JIT 编译性能。2009 年,Ryan Dahl 提出了 Node.js,使 V8 能够在浏览器之外运行。Dahl 考虑的是服务器应用程序,但今天在大多数 Web 应用程序的开发过程中 Node.js 和 NPM(节点包管理器) 也已经必不可少。
得益于上述原因,JavaScript 一路发展至今。不过 Crockford 指出,随着性能的提高,JavaScript 已经变得非常复杂,今天一个典型的应用程序包括使用 webpack、Rollup 或其他绑定器的构建过程,已经与 Eich 最初的概念相去甚远。
此外,许多 Web 开发人员不编写 JavaScript,而是编写 TypeScript,然后编译成 JavaScript。TypeScript 由微软的 Anders Hejlsberg 发明,它的出现是由于 JavaScript 的可延展性和缺乏类型安全。在上面提到的调查中,TypeScript 排名第三,这证明 JavaScript 也并不是受到了所有人的欢迎;WebAssembly 则是一种二进制格式,可以针对于包括 C、C++、C# 和 Rust 在内的多种语言,它的出现是可能削弱 JavaScript 主导地位的另一项创新。
“JavaScript 在短短几年内迅速流行起来,是的,这个生态系统非常复杂。这一直以来都是个大笑话,即便在全职 JS 开发者中也显得如此疯狂,我们中没人能跟上。”一名开发者在 Hacker News 的讨论中谈到。
JavaScript 还在不断发展着许多新特性,尽管兼容性的要求意味着一些缺陷无法被纠正,但从另一方面讲,特性膨胀是一个持续存在的风险。
Crockford 选择替代 JavaScript 的 E 是一个例外。由 Mark Miller、Crockford 和其他人创建的 E 是一种面向对象的语言,用于安全计算。用 Crockford 的话说,它“消除了 Java 中许多不好的部分”。
Crockford 还指出,JavaScript 很难改变,特别是因为它是所有浏览器都支持的 DOM(文档对象模型) 操作语言。当被问及有什么可以取代它时,Crockford 谈道:“有两个困难。第一,我们还没有下一种语言。它需要是一种专门为安全分布式编程而设计、基于最低限度能力的参与者语言。其次,我们需要所有的浏览器制造商都采用它,同时用一个设计良好的界面取代 DOM。”