在国内原创开源项目中使用中文命名的意义与方式

简介: 在国内原创开源项目中用中文命名带来的好处, 以及几种方式.

注: 个人支持踊跃参与国外开源项目. 此文面向读者仅为母语是中文的并有意原创开源项目的开发者.

源自在代码中推广中文命名对中国开源软件的意义 - V2EX. 中文命名的技术优势在对在代码中使用中文命名的质疑与回应"没有好处"已明, 对于原创者本身来说, 使用中文命名可以让代码可读性更高, 维护成本更低. 此文更侧重开发者参与度和推广方面.

类似功能的两个库, 一个提供中文API, 一个提供英文API, 个人相信对国内用户来说前者的接受度会更高. 因此无论代码命名选择的是英文或中文, 基于已有英文API额外提供一套同样功能的中文API对国内推广有益无害, 而维护这套API的投入相对较小. 用户群越大, 潜在的参与开发者也会越多. 这对于独立开源项目(非商业公司支持的)来说尤为重要, 直接决定项目的可持续性.

之前在 v2 碰到一个小程序开发请求帖(结贴), 之后催生了五笔编码编辑器这个微型开源项目. 项目开始时, 请求者并无编程经验, 在原型搭建时, 我提到会使用中文命名, 之后的维护希望由他多出力, 感觉那时他的动力并不大. 但最后实现基本功能后, 他提交了之后的一系列改进 PR 及相关测试, 基本上我除了合并和审核之外没有投入其他精力.

可见中文命名对于鼓励非专业程序员参与开源项目的作用. 开源项目的基本架构搭建之后, 如果项目本身使用的是中文命名, 用户(往往是非专业开发者)应该会更有动力去学习代码. 并不是说英文命名肯定会阻止参与, 但肯定会让很大一部分非专业程序员望而却步. 而且开源项目很大一部分工作量就在于后期维护, 界面改进, 相似功能的堆积, 以及相关测试. 这部分本可以由原作者之外的参与者(用户)来实现, 原作者就可以专心投入到架构/大功能的优化改进上. 久而久之, 新手也会逐渐成为核心贡献者.

对此最常见的一个问题是, "用中文命名之后, 国外开发者如何参与"? 前文对在代码中使用中文命名的质疑与回应的"不利于非中文编程者贡献"以及阐述过. 这里补充一些.
国内开源项目大概分类如下:

  • 针对用户群较小, 或者用户群限于国内(如与中文处理相关的工具), 自然维护的也是国内开发者. 对这些项目, 不会中文的国外开发者几乎不会使用, 更不用说合作.
  • 针对用户群很广并且国际化, 但已有类似功能的国外开源项目. 大多数国外开发者一般首选那些代码可读性更好也更成熟的项目. 在代码质量和整体功能没有级别差距的情况下, 代码可读性决定了开发者更偏好哪个项目, 而国人的代码在国外开发者看来, 可读性很难超过母语是英文的开发者编写的代码.
  • 功能非常独特并且用户群很国际化, 而且还未有国外类似功能的开源项目 -- 暂时还没看到这样的项目, 欢迎指点.

中文命名最适用的是第一类, 因为无论用户还是开发者都会限于国内. 这类从数量上应该占到国内开源项目的绝大部分.

至于第二类, 项目开始时决定采用中文还是英文命名取决于原创者对国内外开发者参与度的判断. 如果认为在很长时间内国外用户会很少, 可以采用首先在代码中使用中文命名但提供额外的英文API的方式, 再根据国外用户参与开发的倾向性和项目本身的需要进行调整, 当然如果国内开发者的参与已经足够项目持续, 就不需再改用英文命名.

2018-12-22

相关文章
|
20天前
|
人工智能 自然语言处理 机器人
解读:chatGPT国内版_chatGPT国内中文版本网站地址
国内版ChatGPT网站因OpenAI官网访问限制应运而生,如奥特AI、AI COG、百科GPT、HeiGPT、速搜AI,提供中文实时对话服务,无网络障碍,适用于多场景。这些镜像基于GPT模型,适应国内用户需求,可在境内无缝使用。
|
2月前
|
JavaScript 前端开发 API
如何翻译 Markdown 文件?-2- 几种商业及开源解决方案介绍
如何翻译 Markdown 文件?-2- 几种商业及开源解决方案介绍
|
SQL 前端开发 JavaScript
阿里、腾讯、百度大厂的程序员编程指南规范
整理了几个大厂的编程规范,语言包含:**Javascript、Css、Java、C#**,这些文档不仅是初学者有必要看,有经验的程序员也是可以学习的,编程规范不仅是规则,更是可以从大厂的规范中学习到很多知识,比如大厂为什么这么订规范、他们是考虑原则是什么,带着类似问题的思考,都有非常有利于我们提高编程能力的。
1067 0
阿里、腾讯、百度大厂的程序员编程指南规范
|
数据库 开发者
Dropplets 重拾简单的开源博客平台 Markdown 撰写、上传即发布
Dropplets 是一个开源的博客平台,让写博客变得更简单。无需数据库,你可以在几十秒内在任何服务器上安装 Dropplets。博客可以离线使用 Markdown 撰写,然后上传即可发布。
243 0
Dropplets 重拾简单的开源博客平台 Markdown 撰写、上传即发布
|
JavaScript 前端开发 Java
在线编程网站对中文代码的支持
检验多个在线编程网站对中文标识符的支持, 包括运行和编译反馈信息. Verify support of Chinese identifiers on online programming websites, including running and compile messages.
1099 0
|
IDE 程序员 开发工具
13年后的共鸣-在代码中用中文命名的优势和问题
与13年前的博文有同感, 分析在代码中用中文命名的优势和问题. Echoing a blog article 13 years ago, with the topic of pro and cons of Chinese naming in code.
829 0
|
算法 Python Java
【开源】2018中文机器阅读理解竞赛第四名代码开源
机器阅读理解(Machine Reading Comprehension)是指让机器阅读文本,然后回答和阅读内容相关的问题。“2018机器阅读理解技术竞赛”由中国中文信息学会、中国计算机学会和百度公司联手举办,使用了百度提供的面向真实应用场景的大规模中文阅读理解数据集。
5138 0
|
SQL JavaScript Java
对开发者有用的英文网站合集,建议收藏!
这是一份对开发者有用的英文网站清单,涉及到从初学者到行业大牛成长的方方面面,还有很多事英语学习的网站,请相信我,这些肯定会对你有所帮助的。
3265 0