查看原文
其他

炸了,开源社区应该用中文吗?

OSCHINA OSC开源社区 2022-05-28

喜欢就关注我们吧!


编者按:

近日,有位 Apache APISIX 用户在 comment 中用中文写下这样一句话,“能不能语言自信点,母语不说飙英文,就能国际化成功吗”。

一石激起千层浪,很快就引发了关于“开源社区应该使用什么语言”的大讨论。

OSCHINA 基于此话题转载、征集了相关稿件,并发起动弹讨论活动。目前该系列已发表稿件四篇,近 500 位用户贡献优质长评:

《在开源的世界里,应该讲开发者都能懂的语言!》,作者:李建盛

《开源社区应该选择什么语言?》,作者:庄表伟

《开源项目必须用英文命名标识符吗?》,作者:吴烜

《开源项目用英文标识符就能招徕国外用户吗?》,作者:吴烜

以下为 4 篇文章精彩内容截选,全文阅读可点击文末“阅读原文”查看。



在开源的世界里,应该讲开发者都能懂的语言


作者|李建盛


中国有句古话,叫做“入乡随俗”,也就是说,我们首先要分辨出自己所处的空间,然后根据空间的形势和状态进行观察、学习,然后在进一步的找人沟通。

拿 Apache APISIX 这个 issue 的回答来说,哪位叫嚣汉语自信的同学,显然是走错了门,他应该去榕树下之类的网站寻找自己的自信,比如和《三体》的作者刘慈欣探讨下未来宇宙中汉语的声音,或者是给诺贝尔文学奖得主莫言先生最近的《晚熟的人》进行评论。

在专业的共同体里,有其独特的文化和传统,使用什么样的语言、鼓励什么样的措辞、配合什么样的语气表达都是由其自主特色的。后来跟进的人,应该尊重共同体的做法。

这个世界上没有任何统一的标尺,将所有事情都囊括。自然语言自信应该在其自身的领域里寻找,而不是到非常专业的计算机专业领域里寻找存在感,这无异于缘木求鱼。

由 X-lab 发起,同济大学开源学博士赵生宇领导的《GitHub 2020全域报告》里明确指出“孤岛项目”多数是非英语项目,是没有融入开源世界的,或者是想进入开源世界的通道没有打开,语言成为了不可逾越的沟壑。


开源社区应该选择什么语言?


作者|庄表伟


一、编程语言与源代码

这个其实应该是最少争议的环节。因为几乎所有的编程语言,都是“类英语”的形式。所以,从阅读体验的角度来说:

我们将一个源代码文件,看做一篇完整的文章。在这篇文章中:中英文夹杂,甚至英文加汉语拼音混杂都是严重影响阅读体验的

包命名、文件名、函数名、变量名等等,都严重建议一律使用英文

在源代码中,我的个人意见是尽量用源代码本身来说话,而无需注释。如果一定要加注释,也强烈建议使用简短英文说明

二、文档

我的建议是:最开始写文档的人,用你最熟悉的语言来写。然后再量力而为,翻译成其他需要的语言。

三、围绕项目的讨论

这个问题,需要从两个层面来看,一个是:你参与到一个已经存在的社区。另一个是:你管理自己的社区。

参与人家的社区:入乡随俗

自己的社区:取决于社区的目标

所谓入乡随俗,其实很简单:人家社区都用英文,或者都用中文,你就不要冲过去说:“能不能语言自信点?”

社区的目标,就比较麻烦了。我只能说:无论基于何种目标,一个健康的社区,与是否使用英语,并无必然的相关性。或者,换言之:下定决心,一开始就用全英文交流,并不是一个繁荣发展的开源社区的,天然保障。

四、项目之外的日常交流

这个其实更少争论,大家在微信群、QQ群、邮件列表、Slack里,自然就会选择自己最常用的语言交流。如果是一个国际化的社区,自然就会更加多的使用英语。而如果中国人占大多数,自然就会使用中文。强行规定,并无必要。


开源项目必须用英文命名标识符吗?


作者|吴烜


开源项目的基本架构搭建之后,如果项目本身使用的是中文命名,用户(往往非程序员)应该会更有动力去学习代码。并不是说英文命名肯定会阻止参与项目,但会让很大一部分人望而却步。

实际上开源项目很大一部分工作量在于后期维护、界面改进、相似功能的堆积,以及相关测试。这部分完全可以由原作者之外的参与者,即普通用户来实现,原作者就可以专心投入到架构/大功能的优化改进上。久而久之,编程新手也会逐渐成为熟练程序员、核心贡献者。

能够吸引更多人来投入项目,而不是点个星就走,是开源项目能够壮大和持久的关键。任何能够降低参与门槛的技术,都应该值得项目作者认真考察,根据项目酌情决定。

回忆一下,无论是开源还是闭源项目,过去几周有没有碰到如下情况之一:

翻自己之前写的代码,发现某个标识符不知所谓

看别人的代码,不懂某个标识符

同事来问你某个标识符啥意思

在我看来,这种时候就可以考虑一下,将这个标识符改成中文会不会少些麻烦。大可以从需要的地方开始改,不用上来就把整个项目的标识符全部中文化。


开源项目用英文标识符就能招徕国外用户吗?


作者|吴烜


一个国内开源项目,如果没有国外用户,何谈国外开发者参与贡献?而没有完备的英文文档(wepy 项目首页的英文版在 2020 年 7 月编写,而这位发言早在 2018 年),国外开发者几乎不会去了解项目内容。以 wepy 为例,个人很难想象这位 Rust 语言开发组成员打算写微信小程序,也就是说他没找到英文文档很可能就没细看 wepy 项目到底是啥。

那么,像 wepy 这样首先面向国内市场,在数年没有英文说明的项目开发时间内,用英文命名标识符有什么必要呢?

至于 API 用非英文命名,国外开发者往往已有英文命名的相似 API 可用,几乎没有“缺你不行”的情况。想从其他方面与现有英文 API 竞争的话,为何不从国内市场开始呢?用中文命名无疑会对国内用户更友好,如再转战国外市场时,大可再开发一套英文 API。

无论国内国外市场,也无论开源闭源,软件项目的推广首先是“让人知道好用”。而“让人知道”和“好用”两者都不依赖于用英文命名标识符。




“开源社区应该用什么语言”你怎么看?留言区等你~



AWS推出OpenSearch:基于Elasticsearch的开源分支

2021-04-13

曾火极一时的Apache Mesos已死?

2021-04-11

Edge市占激增1300%,Firefox占比下降,网友:Firefox挺住!

2021-04-10



觉得不错,请点个在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存