点击上方“程序猿技术大咖”,关注并选择“设为星标”
回复“加群”获取入群讨论资格!
今年 6 月份发布的 Stack Overflow 2022 开发者调查报告曾指出,JavaScript 已经连续第十年成为最流行的编程语言,现有超过 65% 的开发人员在使用。但 JSON 之父 Douglas Crockford 却在最近的一次采访中表示,JavaScript 已经成为了进步的障碍。
“我们今天可以对 JavaScript 做的最好的事情就是让它退役。20 年前,我是 JavaScript 的少数拥护者之一。嵌套函数和动态对象的组合非常出色。我花了十年时间试图纠正它的缺陷。我在 ES5 上取得了小小的成功。但从那时起,人们对进一步扩充 Stack Overflow 2022 开发者调查报告语言而不是使其变得更好产生了浓厚的兴趣。所以 JavaScript 和其他古早语言一样,已经成为了进步的障碍。我们应该专注于下一种语言,它应该看起来更像 E 而不是 JavaScript。”
Crockford 选择取代 JavaScript 的 E 是一种面向对象的语言,为安全计算而设计;该语言由他自己、Mark Millerde 等共同创建。用 Crockford 的话说,它 "消除了 Java 许多不好的部分"。
根据介绍,Brendan Eich 在 1995 年仅用时 10 天为 Netscape 发明了 JavaScript;“5 月份,我做了 10 天的艰苦工作,我没怎么睡觉”。Eich 称,“我去做了…… 一种用于 HTML 的编程语言,供网页设计师和程序员使用,直接嵌入到网页中…… 这个名字完全是个谎言。它与 Java 的关系并不大,而是在语法上与一个共同的祖先 C 有关”。并表示,这是 “一项匆忙的工作,我知道会有错误,会有差距,所以我把它做成了一种非常具有可塑性的语言。这使得 Web 开发人员能够使其成为他们想要的样子。”
但一路发展至今,Crockford 指出,随着功能的增加,JavaScript 已经变得越来越复杂,与 Eich 的原始概念相去甚远。此外,许多 Web 开发人员并不编写 JavaScript,相反还编写了可编译为 JavaScript 的 TypeScript。TypeScript 由 Microsoft 的 Anders Hejlsberg 发明,理由是 JavaScript 的可塑性和缺乏类型安全性使其不适合大型应用程序。
TypeScript 在 Stack Overflow 的调查中也名列前茅。WebAssembly 则是一种二进制格式,可以被包括 C、C 、C# 和 Rust 在内的语言作为目标,它的出现是另一项可能破坏 JavaScript 主导地位的创新。
有开发者在 Hacker News 上的一次讨论中表示,“JavaScript 在短短的几年里已经爆炸性地流行起来。是的,这个生态系统复杂得可怕。即使是在全职的 JS 开发者中,这也是一个令人啼笑皆非的现象,它变得多么疯狂。我们都跟不上。”
Crockford 还指出,JavaScript 将很难转换,特别是因为它是每个浏览器都支持的用于 DOM(文档对象模型)操作的语言。当被问及在可预见的未来是否有什么可以取代它时,Crockford 表示,自己也一直希望可以做到,但事实上存在两个困难:“首先,我们还没有一种语言。它需要是专为安全分布式编程而设计的基于最小能力的参与者语言。其次,我们需要所有的浏览器制造商都采用它,同时用设计良好的界面替换 DOM。”
对此,Reddit 上也有网友发表观点称:
正如 Douglas 之前所说,DOM 是一种用于创建应用程序的可怕的抽象概念。它是为文本文档设计的。网络的现代用例被一项技术入侵,而这项技术从根本上说是为了适当地支持一个更有限的目的。 真正的解决方案是将每个浏览器的 DOM API 替换为用于渲染 2D/3D 图形的东西,并将可发现性、可访问性和机器可读性考虑在内。这个新的引擎可以使用任何为处理这种用例而适当设计的新语言。概念或网站将以这种方式改变。它可以成为通过 udp/tcp 的应用程序。 我相信 JS 是一个症状,而不是问题。浏览器概念本身的局限性才是问题所在,它与我们使用它的目的不匹配。