網(wǎng)站建設(shè)維護(hù)多少錢企業(yè)建站公司
我曾聽說,Javascript 之所以有這么多缺點(diǎn),是因?yàn)樗牡谝粋€(gè)版本是在短短十天內(nèi)完成的。我很好奇:1)這是否屬實(shí);2)這是否能解釋這種語言的缺陷。
經(jīng)過一番研究,我可以不自信地說:是的,但有點(diǎn)復(fù)雜:
- 事實(shí)上,JavaScript 的 "第一版 "確實(shí)花了十天時(shí)間:確切日期沒有得到證實(shí),但布倫丹-艾奇(Brendan Eich)回憶說是 1995 年 5 月 6 日至 15 日。但這只是一個(gè)用于內(nèi)部演示的最小原型("Mocha")。
- JavaScript 1.0 于 1996 年 3 月公開發(fā)布(第 10 頁),第一個(gè) "完整 "版本于 1996 年 8 月發(fā)布(同上)。
- 即使在那之后,網(wǎng)景團(tuán)隊(duì)也會(huì)定期調(diào)整 JS 的設(shè)計(jì);Eich 回憶說,1996 年秋天,"比爾-蓋茨一直在抱怨我們不停地修改 JS"。
艾奇在語言設(shè)計(jì)和編譯器開發(fā)方面也有十年左右的經(jīng)驗(yàn),網(wǎng)景公司明確聘請(qǐng)他在瀏覽器中使用編程語言。最初這應(yīng)該是 Scheme,但后來網(wǎng)景公司與 Sun 簽訂了協(xié)議,同意讓它更 "像 Java"。
這是否解釋了JavaScript的缺陷?
可以說,JavaScript 的大部分現(xiàn)代缺陷都不是因?yàn)殚_發(fā)時(shí)間太短造成的:
- Mocha 最初并沒有隱式類型轉(zhuǎn)換功能,但用戶要求 Eich 在 1.0 中加入這一功能(視頻鏈接)。他對(duì)此深表遺憾。
- JS 1.0 添加 null 是為了與 Java 更加兼容(第 13 頁)。與 Java 兼容也是 typeof null = object 的原因。
- 所有 JavaScript API 的缺陷都是在 Mocha 之后才出現(xiàn)的,因?yàn)樗?API 的工作都是在 Mocha 之后進(jìn)行的。Mocha 是一種相當(dāng)簡約的語言!
- 所有數(shù)字都是浮點(diǎn)數(shù) "的問題最初出現(xiàn)在Mocha中,但我認(rèn)為這一直都是Mocha想要解決的問題。JavaScript 1.0 手冊(cè)將 HyperTalk 作為主要靈感來源。我從未使用過 HyperTalk,但略讀手冊(cè)后,我覺得它做了同樣的事情(第 102 頁,第 517 頁)。
我發(fā)現(xiàn) 10 天沖刺肯定會(huì)對(duì) JavaScript 造成損害:
- 布倫丹-艾奇(Brendan Eich)沒有時(shí)間添加垃圾回收器,
- 后來試圖添加垃圾回收器時(shí)又增加了很多安全漏洞(43:04)。
原文:https://www.jdon.com/68717.html