【译文】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?

你也许感兴趣的:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注