仓库源文站点原文

原址:《开源指北 1.0》第一部分:初识开源/第 5 小节:有关开源的常见误区/#开源项目必须用英文命名标识符吗

编者按

此部分在整个《开源指北 1.0》文档中,仅占了极小一部分,但其意义不言而喻。

初稿起草于 2020 年 10 月末,之后颇有波折,包括一次长达一周的 pr 讨论。很高兴看到此部分在正式发布的此版文档中保留。特此感谢 Gitee 开源社区与官方的理性与包容。

期间也认识到,开源社区仍有相当对非英文母语命名标识符的误会。还请各位多多对此部分完善补充,特别是相关实践的现身说法与所见所闻。也请各位多多关注与此部分相关的 pr,时刻准备着与各种误解作切磋交流。

正文

虽然很多开发者早已知道多数常用编程语言支持中文命名标识符并付诸实践,但仍然常见“如果项目开源的话还是要用英文命名”的说法。2007 年 Python3 决定支持非 ASCII 码标识符的增强建议书中指出:

A developer wishing to make a library widely available needs to make a number of explicit choices (such as publication, licensing, language of documentation, and language of identifiers). It should always be the choice of the author to make these decisions - not the choice of the language designers.

这段话同样适用于开源项目。无论是文档还是源码中标识符使用的语言,项目作者都可以根据实际需求来灵活决定,而非简单的一刀切用英文。实际上,开源项目往往是在开发者业余的碎片时间进行,文档和测试往往从简。这种情况下,代码的清晰度和可维护性对于项目可持续性尤显重要,这恰恰是母语命名标识符的优势。正如同一文档指出:

By using identifiers in their native language, code clarity and maintainability of the code among speakers of that language improves.

下面是一些常见的顾虑:

总之,澄清这个误区的目的,绝不是排斥英文命名,而是让更多开源作者意识到可以视项目性质和自身情况因地制宜、具体情况具体分析,灵活选择何时、何处进行中文命名实践,也希望中文开源社区能以开放宽容的心态看待中文命名标识符这一并不新的“新技术”。


非英文母语命名这一技术虽早已面世,但在中文开源社区中的实例仍然寥寥,原因是多方面的。随着

可以用Rust 设计者

2007 年

本文针对开源中国这一平台所作

不。

可读性

面向何种用户

标识符 API 界面

甚至有不会英文,改用拼音甚至拼音简写的情况。

开源特性

参考: