我们应该重新命名-JavaScript-吗

45次阅读

共计 2202 个字符,预计需要花费 6 分钟才能阅读完成。

作者: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 的大象这样的可爱吉祥物了。


非官方的,社区制作的 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 上的评论


本文首发微信公众号:前端先锋

欢迎扫描二维码关注公众号,每天都给你推送新鲜的前端技术文章

欢迎继续阅读本专栏其它高赞文章:

  • 深入理解 Shadow DOM v1
  • 一步步教你用 WebVR 实现虚拟现实游戏
  • 13 个帮你提高开发效率的现代 CSS 框架
  • 快速上手 BootstrapVue
  • JavaScript 引擎是如何工作的?从调用栈到 Promise 你需要知道的一切
  • WebSocket 实战:在 Node 和 React 之间进行实时通信
  • 关于 Git 的 20 个面试题
  • 深入解析 Node.js 的 console.log
  • Node.js 究竟是什么?
  • 30 分钟用 Node.js 构建一个 API 服务器
  • Javascript 的对象拷贝
  • 程序员 30 岁前月薪达不到 30K,该何去何从
  • 14 个最好的 JavaScript 数据可视化库
  • 8 个给前端的顶级 VS Code 扩展插件
  • Node.js 多线程完全指南
  • 把 HTML 转成 PDF 的 4 个方案及实现

  • 更多文章 …
正文完
 0