N-API 是用来给 Node.js 构建本机插件的 API,它由 Node.js 官方维护。此 API 将是 Node.js 的应用程序二进制接口(Application Binary Interface,ABI)稳定版。它旨在将插件与底层 JavaScript 引擎中的更改隔离开来,这样低版本已经编译好的模块可以直接在高版本的 Node.js 上运行而无需重新编译。

但是 Node.js 成员 James M Snell 指出:N-API 的发音是 “En-Ay-Pee-Eye”,这个发音和 “nappy” 比较接近。nappy 的意思是“尿片、尿布”。

你以为他是因为这个名字不好听才建议改名的吗?不。他随后又指出:“nappy” 经常被用来形容黑人的头发,而且含贬义。而且 N-API 不能明确的表示这个 API 的含义。所以他建议改名。

我们都知道,最近美国的舆论是“黑命贵”,而没想到现在已经发展到了“黑发贵”了。

这个 API 是用来开发本机插件的,也就是 Native Addons,所以叫 N-API。如果不用这个名字,那么用什么呢?于是 James M Snell 建议使用 “Stable ABI”,也就是“稳定的 ABI”,简写为 S-ABI。

看到这儿我就不淡定了!如果因为 N-API 发音是对黑人的头发不友好,那这个发音简直是对十几亿中国人不友好。S-ABI,发音 “SABI”,音同……算了,我不写了,这种词汇我都不好意思写出来。

最终 N-API 被改名为了 Node-API。

当我去 GitHub 去看相关的 issue 和 pr 时,发现另一个不解的事情。Node 仓库的默认分支还是 master,而不是 main:

众所周知,受美国大规模的 “Black Lives Matter” 运动影响,为了安抚愈演愈烈的民众情绪,GitHub 把默认分支从 master 修改为了 main。因为 master/slave 会让人联想起主从,进而联想到奴隶制,进而联想到黑奴。很多软件的 blacklist/whitelist(黑名单/白名单)也修改为了 dennylist/allowlist(禁止名单/允许名单)。

Node.js 这么担心 N-API 发音涉嫌不尊重黑人头发,那又为什么不把 master 修改为 main 呢?

这个 issue 是 2021 年 1 月 1 日提的:https://github.com/nodejs/abi-stable-node/issues/420 美国文字狱进入了新阶段。

因 N-API 发音对黑人的头发不友好,Node.js 官方将其改名为 Node-API相关推荐

  1. 一个迷你的 Node.js 基于 Express 的 MVR 模式的 API工程 的分析

    1. 工程说明 该工程是基于 Express 库,编写的一个 API 查询返回的一个微型应用. API Resource 就是把 API 的内容当做网络资源去处理.工程中的路由访问也是返回 API 内 ...

  2. 使用Node.js express 开发上传文件/图片api接口

    我是傲夫靠斯,欢迎关注我的公众号[前端工程师的自我修养],每天更新. 今天我们来搞一个Node.js Express的上传文件功能,我使用了busboy这个库. Busboy是一个基于事件的文件流解析 ...

  3. node JS獲取GPS_Node.js 14 正式发布:V8 引擎升级,新增异步本地存储 API

    Node.js 14 版本于近日正式发布, 此版本包含的亮点如下: 对诊断功能的改进 升级 v8 引擎 新增实验性的异步本地存储 API 强化流 API 移除实验性模块中的警告 移除一部分早期版本中废 ...

  4. puppeteer api_使用Node.js和puppeteer API从URL创建PDF文件

    puppeteer api We will continue using Node.js and puppeteer which is a node library. As we saw in our ...

  5. node.js api接口_如何在Node.js API客户端中正常处理故障

    node.js api接口 by Roger Jin 罗杰·金(Roger Jin) 如何在Node.js API客户端中正常处理故障 (How to gracefully handle failur ...

  6. Node.js API参考文档(目录)

    Node.js v11.5.0 API参考文档 Node.js®是基于Chrome的V8 JavaScript引擎构建的JavaScript运行时. 关于文档 用法和示例 断言测试 稳定性:2 - 稳 ...

  7. 使用Node.js写一个简单的api接口

    引入Http模块 默认你已经安装了Node.js Node当中内置了Http模块: 可以使用 var http= require("http"); 复制代码 引入http模块: H ...

  8. node aws 内存溢出_如何使用Node.js和AWS快速创建无服务器RESTful API

    node aws 内存溢出 by Mark Hopson 马克·霍普森(Mark Hopson) 如何使用Node.js和AWS快速创建无服务器RESTful API (How to quickly ...

  9. 使用node.js进行API自动化回归测试

    概述 传统的QA自动化测试通常是基于GUI的,比如使用Selenium,模拟用户在界面上操作.但GUI测试的开发.维护成本和运行的稳定性一直是测试界的老大难问题.投入大量的人力物力开发.维护.运行,却 ...

最新文章

  1. h5压缩图片上传 php_一键压缩,图片上传大小不得超过200K?
  2. 深入理解JVM(5)——虚拟机类加载机制
  3. 放个手机在单位自动打卡_1秒识别打卡,无感知考勤系统重磅来袭!
  4. 系统优化方法与智能优化算法
  5. 2018.12.08 codeforces 939E. Maximize!(二分答案)
  6. odbc spoon连接postgre_ado、odbc连接Postgre SQL
  7. java 常量变量使用_java常量和变量入门教程
  8. P1993 小 K 的农场
  9. 基于消息队列 RocketMQ 的大型分布式应用上云实践
  10. CPU设计学习-流水线
  11. python机器学习案例系列教程——GBDT构建新特征
  12. java一维数组的使用_Java初步认知和使用一维数组
  13. 用java实现编译器-算术表达式及其语法解析器的实现
  14. 两台电脑如何实现共享文件
  15. Java正则表达式全解
  16. MagicDraw二次开发过程
  17. java自动生成一年中工作日和休息日(公休日及假期国家法定假日)
  18. css字间距 与 Photoshop里字间距关系
  19. 2021-08-11好奇心
  20. 正版Mincraft登录问题:微软账号不能登录

热门文章

  1. 学会这20招PS操作技巧,提高80%的工作效率
  2. 一文看懂Linux内核的整体架构
  3. 关于RISC-V成为印度国家指令集的一些看法
  4. android 自定义铃声 代码,Android通过代码设置铃声
  5. MTK介绍MTK平台介绍
  6. 杰理之测试主副麦的频响及幅度【篇】
  7. HTML+CSS基础文字和字体
  8. 【java毕业设计】基于javaEE+SSH+mysql+strust2的超市积分管理系统设计与实现(毕业论文+程序源码)——超市积分管理系统
  9. 三篇文章彻底搞懂Java面向对象之一
  10. 安全系列之——数据传输的完整性、私密性、源认证、不可否认性