我們應該為 JavaScript 重新命名嗎?[每日前端夜話0xDA]

  • 2019 年 10 月 29 日
  • 筆記

日前端夜話0xDA

每日前端夜話,陪你聊前端。

每天晚上18:00準時推送。

正文共:1179 字

預計閱讀時間:5 分鐘

作者:Kieran Potts

翻譯:瘋狂的技術宅

來源:kieranpotts

Should We Rebrand JavaScript?

最近,LinkedIn 的 JavaScript 組提出了一個有趣的問題:

是否需要重新命名 JavaScript?

這個問題確實讓我陷入了思考。

毫無疑問,JavaScript 的品牌存在問題:

  1. 在該語言的官方規範實際上被稱為 ECMAScript —— 負責監督該語言規範的 Ecma International 標準組織對此有點笨拙。
  2. 正確地說法應該是 「JavaScript」 是指 Mozilla 指定的 ECMAScript 的子集,但是這個詞可用來表示多個不同的 ECMAScript 超集,具體取決於其上下文意思。
  3. JavaScript 是 Oracle Corporation 的商標,這與該語言作為 Web 平台中心組件的位置不太吻合,它完全是用開放的技術和標準構建的。
  4. 甚至沒有正式的 JavaScript 徽標,更不用說像 Go 的地鼠或 PHP 的大象這樣的可愛吉祥物了。

非官方的,社區製作的JavaScript徽標。資料來源:https://github.com/voodootikigod/logo.js

眾所周知,JavaScript 與 Java 無關。數十年來,這使非技術經理和招聘人員感到困惑。

但是對我來說,JavaScript 名稱的最大問題是範圍模糊。如果一個電腦程式被證明是用 JavaScript 所編寫的,那麼這並不能告訴我運行該程式所需的一切。因為我不知道:

  • 與程式兼容的 ECMAScript 的最低版本,或者至少是程式支援的 JavaScript 引擎或運行時環境。
  • 程式依賴於哪些本機 API(運行時環境添加的語言擴展)。該程式是要在「客戶端」(在Web瀏覽器中)還是「伺服器端」(在Node.js運行時環境中)運行,還是通用的?

使用第三方庫時的困難證明了這種困惑。在 GitHub上 瀏覽可解決特定問題的開源 JavaScript 軟體包時,對於每種解決方案,為了知道這個特定的 JavaScript 軟體包是否與你自己的 JavaScript 應用兼容,都必須深入研究 README 或 package.json 文件。

(由於當前正處於模組系統之間的過渡期,這個問題變得更加嚴重:從社區的約定慣例(例如 CommonJS,AMD 和 UMD) 到 ECMAScript 的標準模組符號。

重新命名 JavaScript 可能有助於消除所有這些混亂。

新的 JavaScript

如果我們確實重命名了 JavaScript,將會如何稱呼它?

JavaScript 已經有了很多名字。設計並實現該語言的第一版的 Brendan Eich 曾想把它稱為 Mocha,但 Netscape 的市場營銷專家將其命名為 LiveScript,當時它是在 Navigator 2.0 瀏覽器的早期 Beta 版中首次交付的,然後才確定其名稱。1995 年底發布的 JavaScript。

該語言的替代實現稱為 JScript(用於 Internet Explorer 瀏覽器的 Microsoft 版本)和 ActionScript(Adobe 的版本)。還有各種 JavaScript 方言,包括 CoffeeScript 和 TypeScript。

我認為 Eich 一直都是對的。Mocha 是個好名字。在軟體領域,這個名字僅與 Node.js 的 Mocha 測試框架和 Java 的舊版反編譯器衝突。

但我個人更喜歡將 JavaScript 重命名為 JS

無論如何,很多人都用 JavaScript 的縮寫來指代 JavaScript。它與官方文件擴展名匹配。而且我們可以將無處不在的黑底黃字的社區徽標轉變為官方標誌。

隨著時間的流逝,JS 名稱的來源將在很大程度上被遺忘,就像大多數 PHP 開發人員無法告訴你 PHP 究竟代表什麼一樣。

更好的辦法是提出一個標準約定,用來為 JS 程式引用特定運行時環境所提供的擴展 API,以與主機系統進行通訊。

例如,假如 ECMAScript 成為 JS,則萬維網聯盟支援的 JS 超集的正式名稱可能是 WebJS,這是萬維網聯合會所指定的。

也許會有一個 ServerJS 標準,該標準指定了預期由伺服器端 JavaScript 運行時(例如 Node.js )提供的其他API。

最後,ECMAScript 的年度發布周期和版本約定非常方便,應該將其擴展到新品牌的 JS 的所有版本。因此,WebJS 2020 將引用 ECMAScript 的快照以及截至 2020 年標準化的所有 Web API。

那麼你怎麼看?Reddit 上的評論

原文:https://kieranpotts.com/rebranding-javascript/