17611538698
webmaster@21cto.com

建议退役!JSON之父:JavaScript已阻碍进步

资讯 0 1202 2022-08-14 07:05:15
导读:JSON之父近日提出惊人之语:JavaScript应该消失。


今年 6 月份发布的 Stack Overflow 2022 开发者调查报告曾指出,JavaScript 已经连续第十年成为最流行的编程语言,现在有超过 65% 的开发人员在使用。

近日,程序员、企业家以及 JSON 之父,同时也是众多 JavaScript 语言开发工具的创造者 Douglas Crockford 在最近的一次采访中表示,JavaScript 已经成为了进步的障碍。

“我们今天可以对 JavaScript 做的最好的事情就是让它退役。20 年前,我是 JavaScript 的少数拥护者之一。嵌套函数和动态对象的组合非常出色。我花了十年时间试图纠正它的缺陷。我在 ES5 上取得了小小的成功。

但从那时起,人们对进一步扩充 Stack Overflow 2022 开发者调查报告语言而不是使其变得更好产生了浓厚的兴趣。所以 JavaScript 和其他古早语言一样,已经成为了进步的障碍。我们应该专注于下一种语言,它应该看起来更像 E 而不是 JavaScript。”

Crockford 选择取代 JavaScrip t 的 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。”

Douglas Crockford 提到取代 JavaScript 的 E(http://erights.org/),是他与 Mark Miller 共同开发而成,为安全计算而设计。这并非是一门新的编程语言,而是早于 1997 年就被开发出来,后来,Mark Miller 对 E 进行了重新设计,消除了 Java 许多不良的部分,主要目标的支持安全的分布式系统的开发。


图片

E语言的Logo


Reddit 上的开发者发表观点称:

如 Douglas 之前所说,DOM 是一种用于创建应用程序的可怕的抽象概念。它是为文本文档设计的。网络的现代用例被一项技术入侵,而这项技术从根本上说是为了适当地支持一个更有限的目的。


真正的解决方案是将每个浏览器的 DOM API 替换为用于渲染 2D/3D 图形的东西,并将可发现性、可访问性和机器可读性考虑在内。这个新的引擎可以使用任何为处理这种用例而适当设计的新语言。概念或网站将以这种方式改变。它可以成为通过 udp/tcp 的应用程序。


我相信 JS 是一个症状,而不是问题。浏览器概念本身的局限性才是问题所在,它与我们使用它的目的不匹配。


有一些人提出了几种可能在一定程度上替代 JavaScript 的语言/技术:


  • TypeScript。TypeScript 是由微软的 Anders Hejlsberg 发明的,它是 JavaScript 的严格语法超集,提供了可选的静态类型检查,可用于开发大型应用。“作为一名 Typescript 开发人员,我早就放弃了对 JavaScript 的使用......除非必须,否则我不会碰它(在这种情况下,我可能会转换它)”,一名开发者分享道。

  • WebAssembly。作为一种二进制格式,可以被包括 C、C++、C# 和 Rust 在内的语言作为目标,它的出现是另一个可能破坏 JavaScript 主导地位的创新。

  • “我希望用 Ruby 来取代 JavaScript,将其嵌入到浏览器中”;

  • Dart 可能是目前“替换” JavaScript 的最佳竞争者。Dart 的类型和空安全,内置对 JIT 和 AOT 编译的支持,出色的开发工具以及快速增长的生态系统,使其成为了一种可能性。


JavaScript 的历史沿革


在 1995 年,网络浏览器先驱网景(Netscape)意识到,他们需要为人们提供一个更简单的选择。那时候他们处境艰难,与微软的大战正在紧锣密鼓,即将与 Sun 微系统公司达成重大战略合作伙伴关系,时间紧迫。他们雇佣了布兰登·艾奇(Brendan Eich),要求他尽可能快地创造一种新的语言。他在 10 天内就完成了 JavaScript 的第一个版本,正好赶上了这个漂亮的浏览器——Netscape 2。 


图片



1996 年,Netscape 将 JavaScript 提交至 ECMA International(European Computer Manufacturers Association, 一个欧洲标准化组织)。


1997 年,ECMAScript 标准第一版发布。ECMA 组织控制的标准控制着 JavaScript 语言的各个方面,帮助确保不同 JavaScript 版本兼容性,有时也称为 ECMAScript。


1999 年, ECMAScript 第三版的形式进行了更新,从那之后这个标准没有发生过大的改动。由于委员会在语言特性的讨论上发生分歧,ECMAScript 第四版遭遇“难产”并被废除,但随后于 2009 年 12 月发布的 ECMAScript 第五版引入了第四版草案加入的许多特性。


2015 年,第六版标准(ES6)发布,又称为 ES2015。ES6 语法引入了大量的语法特性,很大程度上改善了最初 JavaScript 设计上的很多缺陷,让 JavaScript 这个语言获得了一次现代化的重生。自此 JavaScript 慢慢从一个被普遍鄙视、嘲笑的粗糙语言变成了一个颇有竞争力的语言。


之后,ES 的标准更新开始加快了脚步,每年都有一个版本发布,只不过每次发布,加入的新特性比较少。今年 6 月份,第 123 届 Ecma 大会批准了 ECMAScript 2022 语言规范,这也是 ECMAScript 的第十三版。


相关链接:


  • https://evrone.com/douglas-crockford-interview

  • https://devclass.com/2022/08/04/retire_javascript_says-json-creator-douglas-crockford/

  • https://www.reddit.com/r/programming/comments/whipmk/the_best_thing_we_can_do_today_to_javascript_is/


评论