咱們應該從新命名 JavaScript 嗎?

做者:Kieran Potts

翻譯:瘋狂的技術宅javascript

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

未經容許嚴禁轉載java

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

是否須要從新命名 JavaScript?

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

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

  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 所編寫的,那麼這並不能告訴我運行該程序所需的一切。由於我不知道:json

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

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

(因爲當前正處於模塊系統之間的過渡期,這個問題變得更加嚴重:從社區的約定慣例(例如 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 上的評論


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

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

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

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


相關文章
相關標籤/搜索