【译文】Javascript 真是在 10 天之内开发完成的吗?
我曾听说,Javascript 之所以有这么多缺点,是因为它的第一个版本是在短短十天内完成的。我很好奇:1)这是否属实;2)这是否能解释这种语言的缺陷。
经过一番研究,我只能含糊的说:这很复杂。
事实上,JavaScript 的 “第一版 “确实花了十天时间。确切日期没有得到证实,但布伦丹-艾奇(Brendan Eich)回忆说是 1995 年 5 月 6 日至 15 日。但这只是一个用于内部演示的最小原型(”Mocha”)。JavaScript 1.0 于 1996 年 3 月公开发布(第 10 页),第一个 “完整 “版本于 1996 年 8 月发布(同上)。即使在那之后,网景团队也会定期调整 JS 的设计;Eich 回忆说,1996 年秋天,”比尔-盖茨一直在抱怨我们不停地修改 JS”。
艾奇在语言设计和编译器开发方面也有十年左右的经验,网景公司明确聘请他在浏览器中使用编程语言(第 7 页)。最初这应该是 Scheme,但后来网景公司与 Sun 签订了协议,同意让它更 “像” Java。
这是否可以解释这些缺陷?
可以说,JavaScript 的大部分现代缺陷都不是因为开发时间太短造成的:
- 原型 Mocha 最初并没有隐式类型转换功能,但用户要求 Eich 在 1.0 中添加这一功能(视频链接)。他对此深表遗憾。
- JS 1.0 添加 null 是为了与 Java 更加兼容(第 13 页)。与 Java 兼容也是 typeof null = object 的原因。
- 任何 JavaScript API 的缺陷都是在此之后出现的,因为所有 API 的工作都是在 Mocha 之后进行的。Mocha 是一种相当简约的语言!
- 所有数字都是浮点数 的问题最初出现在Mocha中,但我认为这一直都是Mocha想要解决的问题。JavaScript 1.0 手册将 HyperTalk 作为主要灵感来源。我从未使用过 HyperTalk,但略读手册后,我觉得它做了同样的事情(第 102 页,第 517 页)。
我发现 10 天速成肯定会对 JavaScript 造成损害:布伦丹-艾奇(Brendan Eich)没有时间添加垃圾回收器,后来试图添加垃圾回收器时又造成了很多安全漏洞(43:04)。
本文创下了我 “每字研究时间最长 “的新纪录。
本文文字及图片出自 Was Javascript really made in 10 days?
你也许感兴趣的:
- ECMAScript 2024新特性
- 【外评】JavaScript 变得很好
- 一长串(高级)JavaScript 问题及其解释
- 不存在的浏览器安全漏洞:PDF 中的 JavaScript
- Python 里的所有双下划线(dunder)方法、函数和属性
- 【程序员搞笑图片】JavaScript
- JavaScript 膨胀于 2024 年
- 解码为什么 JS 中的 0.6 + 0.3 = 0.89999999999999 以及如何解决?
- 用 JavaScript 实现的 17 个改变世界的方程式
- 【译文】Dropbox:我们如何将 JavaScript 打包程序的大小减少 33% 的
你对本文的反应是: