JSON 之父:“让 JavaScript 退休,是对它最好的事情!”( 二 )


一是 , BrendanEich的先见之明 。 JavaScript设计得更加容易学习与上手 , 以及对许多语言中会出现错误的代码的容忍度 , 比如将字符串和数字进行比较并得到一个常识性的结果 。 虽然后来Eich本人将这个功能称之为“一个很大的遗憾 , 因为其打破了一个重要的数据属性” , 但不影响JavaScript能够被用户接受 。
二是 , Google决心让基于浏览器的应用程序与桌面应用程序竞争 , 并开发了JavaScript运行时V8引擎(2008年) 。 同时 , Google还与Mozilla的SpiderMonkey(世界上第一款JavaScript引擎)和苹果的JavaScriptCore(Safari浏览器的JavaScript引擎)一起为JavaScript开发了惊人的JIT 。 这也极大地促进了JavaScript的广泛应用 。
JSON 之父:“让 JavaScript 退休,是对它最好的事情!”】霸榜多年的JavaScript为何惨遭嫌弃?
就是这样一款较为实用且主流的编程语言 , 为何一步一步惨遭嫌弃?为此 , DouglasCrockford在采访中提到 , 随着能力的提高 , JavaScript变得越来越复杂 , 这与Eich的原始概念相差甚远 。
这也如同今天的jQuery技术一样 , “在开发jQuery时 , 文档对象模型是一团糟 。 有必要有一个层来纠正它的错误、局限性和Bug , 并提高可移植性 。 但从那时起 , 更好的标准被开发出来 , 浏览器制造商也终于被说服遵守这些标准 , IE浏览器也终于退役了 。 与此同时 , jQuery变得臃肿 。 ”
简单来看 , 复杂性、功能不断膨胀 , 让不少开发者不得不弃用JavaScript 。 “JavaScript在短短几年内爆发式发展 , 是的 , 生态系统复杂得可怕 。 即使对全职JS开发者而言 , 这也是一种困扰 , JavaScript已经变得非常疯狂 , 我们都无法跟上它的脚步” , 一位开发者在HN评论区说道 。
也有人表示 , “试图让一个普通的新开发者在现代JS环境中跟上开发速度是非常困难的 。 JavaScript里面覆盖的东西太多了 , 就像一个大泥球 。 不过 , 作为一个大泥球 , 却又真的很难被取代掉 。 ”
JSON 之父:“让 JavaScript 退休,是对它最好的事情!”
文章图片
JavaScript真的能被取而代之吗?
DouglasCrockford在文章伊始提到取代JavaScript的E(http://erights.org/) , 是他与MarkMiller共同开发而成 , 为安全计算而设计 。 这并非是一门新的编程语言 , 而是早于1997年就被开发出来 , 后来 , MarkMiller对E进行了重新设计 , 消除了Java许多不良的部分 , 主要目标的支持安全的分布式系统的开发 。
JSON 之父:“让 JavaScript 退休,是对它最好的事情!”
文章图片
除了E之外 , 不少网友也提出了几种可能在一定程度上替代JavaScript的语言或技术:
TypeScript 。 TypeScript是由微软的AndersHejlsberg发明的 , 它是JavaScript的严格语法超集 , 提供了可选的静态类型检查 , 可用于开发大型应用 。 “作为一名Typescript开发人员 , 我早就放弃了对JavaScript的使用......除非必须 , 否则我不会碰它(在这种情况下 , 我可能会转换它)” , 一名开发者分享道 。
WebAssembly 。 作为一种二进制格式 , 可以被包括C、C++、C#和Rust在内的语言作为目标 , 它的出现是另一个可能破坏JavaScript主导地位的创新 。
“我希望用Ruby来取代JavaScript , 将其嵌入到浏览器中”;
Dart可能是目前“替换”JavaScript的最佳竞争者 。 Dart的类型和空安全 , 内置对JIT和AOT编译的支持 , 出色的开发工具以及快速增长的生态系统 , 使其成为了一种可能性 。
不过 , 虽然想让JavaScript早点退休 , DouglasCrockford指出 , 还是有些不太现实 , “目前主要有两个困难 。 首先 , 我们还没有下一种语言 , 这种语言是一种基于最小能力的参与者语言 , 专门为安全的分布式编程而设计 , 不应再考虑其他任何事情 。 其次 , 我们需要所有的浏览器制造商都采用它 , 同时用精心设计的界面取代DOM 。 祝你好运 。 ”