7

【译文】Javascript 真是在 10 天之内开发完成的吗?

 8 months ago
source link: https://www.techug.com/post/did-brendan-eich-really-make-javascript-in-10-days/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK