仓库源文站点原文

关于中文命名的使用/被接受情况,先有些直观感受吧:

  1. 这里两个原帖评论区可见不少同好。
  2. 这个答能得五千赞,相信其中有不少是早已在用中文命名的。
  3. 不久前发布的中文代码快速补全 VSC 插件,安装数已超 600。

退一步说,你看到的所有代码都是用英文命名,这很正常。

首先,你看得到的工作之外的项目,绝大多数根源应该都是源自各个技术论坛/自媒体推送的开源项目吧。这个就很值得推敲。顺手搜了一下去年末火极一时的万星项目BullshitGenerator的自媒体文章,没看到一篇对它用了中文命名表示“惊诧”的,即使不少还引用了它的部分代码。光看这些文章波澜不惊的语气,简直像是看到司空见惯了的事。是不是很魔幻?

这不是偶然。后面再说。

即使你对国内开源项目了然于胸,恐怕也只是管中窥豹。开源项目数量占所有项目的 1% 也许是低估,但 10% 应该肯定是高估了。冰山底部是巨量的闭源项目。闭源项目中使用中文命名的比例远高于开源项目,几乎是肯定的。为何呢?

相信你也经常听到“闭源用中文命名无可厚非,开源还得用英文”的说法(驳斥在此)。而这只是针对中文编程/命名的负面言论中相对“温和”和“保守”的了。

这里搜集了一些近二十年来针对中文编程的各种负面网文,其中不少流传极广。

暗箭之外,还有明枪。2017 年阿里发布的 Java 代码风格中,开篇就提到

【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式

你觉得在这些口水下,有多少使用中文命名的敢于在开源或者博客秀出代码呢?闷声发财不好么?反正自己用着爽就是(我是越来越理解这种态度了)。

也许你更该好奇的是,为什么中文命名可行十好多年)了,仍有不小比例的开发者至今仍认为“写代码必须用英文,没有其他选择”。别问我。即使我看到了上面这些明枪暗箭,我仍然觉得这个“都市传说”能存活到现在是个奇迹。

另一方面看,2018 年的网文头一次提及中文命名,以及阿里的代码风格明确反对中文命名,本身就说明了这一实践无论当时有多弱小,却已经扎了根。

从 2017 年开始关注中文编程尤其是中文命名以来,也见证了技术论坛上风向的转变。而且看到网文的调子从毫不谈论中文命名单纯针对全中文编程语言,到试探性地在技术论坛带中文命名无用的节奏,又到在非技术论坛老生常谈中文/汉字编程无意义但避而不谈中文命名,也可以隐约感觉到形势的变化:中文命名推广已不可逆转,网文能做到的只有靠把新手带到“代码就该用英文写”的坑里而尽量延迟推广的速度。

简言之,这已经是“elephant in the room”。这种极少见于报端又很符合国情、门槛不高极易推广的技术,照理说是极佳的自媒体题材,然而要么干脆不提,要么视而不见(比如上面的万星项目),神奇吧?

无论如何,我听说的用过中文命名就入坑的情况远超过因故弃坑的,这种不逆的量变注定了,质变是迟早的事。

至于,为何在母语命名的优势看似如此明显时,很多程序员即使知道中文命名的可行性但仍在沿用英文命名,昨天这半个回答也许可以参考(后半尚未完成)。