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

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

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

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

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

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

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

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

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

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

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

2018-12-22

相关文章
|
3月前
|
存储 前端开发 JavaScript
Rails 的国际化支持太厉害了!全球用户轻松搞定,快来看看这逆天的编程神技!
【8月更文挑战第31天】《Rails中的国际化(i18n)支持》深入探讨了Ruby on Rails框架的国际化特性。文章从翻译文件组织、翻译提取管理、动态翻译、地区语言切换及前后端国际化支持五个方面详细介绍了Rails的优势,并与其他框架进行了对比,展示了其在开发全球化应用时的强大功能与便捷性。
34 0
|
6月前
|
JavaScript 前端开发 API
如何翻译 Markdown 文件?-2- 几种商业及开源解决方案介绍
如何翻译 Markdown 文件?-2- 几种商业及开源解决方案介绍
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(四)
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(四)
123 0
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(四)
|
搜索推荐
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(三)
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(三)
101 0
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(三)
|
搜索推荐
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(五)
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(五)
127 0
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(五)
|
JSON 数据格式
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(一)
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(一)
134 0
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(一)
|
程序员 开发工具
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(六)
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(六)
104 0
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(六)
|
JSON 数据格式
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(二)
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(二)
115 0
CSDN插件新版发布、只为遇到九月更好的你 支持支持支持(二)
|
消息中间件 前端开发 NoSQL
Java智慧社区商业级别项目源码,拿来学习真不错
HC小区物业管理系统是前后端分离、分布式架构开源项目,目前我们的代码a开源在github 和gitee上, 开源项目由HC小区管理系统后端,HC小区管理系统前端,HC小区管理系统业主手机版和HC小区管理系统物业手机版
Java智慧社区商业级别项目源码,拿来学习真不错
|
数据库 开发者
Dropplets 重拾简单的开源博客平台 Markdown 撰写、上传即发布
Dropplets 是一个开源的博客平台,让写博客变得更简单。无需数据库,你可以在几十秒内在任何服务器上安装 Dropplets。博客可以离线使用 Markdown 撰写,然后上传即可发布。
274 0
Dropplets 重拾简单的开源博客平台 Markdown 撰写、上传即发布