我們應該重新命名 JavaScript 嗎?

作者:Kieran Potts

翻譯:瘋狂的技術宅

原文:https://kieranpotts.com/rebra...

未經允許嚴禁轉載

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

是否需要重新命名 JavaScript?

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

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

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

image.png
非官方的,社區製作的JavaScript徽標。資料來源:https://github.com/voodootiki...

  1. 衆所周知,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 上的評論


本文首發微信公衆號:前端先鋒

歡迎掃描二維碼關注公衆號,每天都給你推送新鮮的前端技術文章

歡迎掃描二維碼關注公衆號,每天都給你推送新鮮的前端技術文章

歡迎繼續閱讀本專欄其它高贊文章:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章