在开源的世界里,应该讲开发者都能懂的语言!
Wed Mar 17, 2021 | 3900 Words | 大约需要阅读 8 分钟 | |
引子
2021年3月16号,其实没什么特别的事情,当然开源世界里最大的城市——GitHub,也是波澜不惊,大家按部就班的做着日常的事情,偏偏其中的一个issue的回复,来自Apache顶级项目 APISIX , 引来了一阵邪风,触动了一些人, 就是因为一名id 叫做zcgewu的GitHub 用户在探讨技术细节的长长的comment 中,来了如此一句话:
能不能语言自信点,母语不说飙英文,就能国际化成功吗
无独有偶,刚刚入选Apache 软件基金会董事的吴晟甚至发起了一个小组:https://twitter.com/wusheng1108/status/1371847479193432074?s=20。吴晟老师更是深受其中困扰,除了在Apache SkyWalking 的项目中也会类似APISIX的事情,还会在社交媒体上遇到,笔者亲历在一个开源中国CTO红薯组建的群里被质问过为何没有中文文档。
这些事情不是个例,它似乎每天都在开源世界里发生着,这意味着这是一种现象,现象则具有普遍问题。于是脑子里开始检索起以前发生的事情,乘机把这个理掰扯掰扯。不吐不快。
不过在正式的开始之前,我需要给大家讲一个近代以来最为关键的一个文化事件。
从胡适先生的《文学改良刍议》说起
1916年底,在美国留学的胡适,将其《文学改良刍议》的文稿寄给了陈独秀主编的《新青年》,发表在第2卷5期上。开篇即震惊文学界:
今之谈文学改良者众矣,记者末学不文,何足以言此。然年来颇于此事再四研思,辅以友朋辩论,其结果所得,颇不无讨论之价值。因综括所怀见解,列为八事,分别言之,以与当世之留意文学改良者一研究之。
吾以为今日而言文学改良,须从八事入手。八事者何?
一曰,须言之有物。 二曰,不摹仿古人。 三曰,须讲求文法。 四曰,不作无病之呻吟。 五曰,务去滥调套语。 六曰,不用典。 七曰,不讲对仗。 八曰,不避俗字俗语。
自此以后,一场轰轰烈烈的文学改良运动开始了,也从此改变了中国的文学创作和发表。能够使用像笔者现在所写的白话文,得益于胡适、陈独秀、鲁迅等一干有为青年。从此文字再也不是被少数群体垄断的,任何人都可以使用日常的用于表达自我。
《刍议》的发表,我们看到其中的谦逊和前辈的尊重,尽管这是一个釜底抽薪式的革命。请大家注意几点:
- 该文式发表在国内的《新青年》
- 该文使用的是文言文
- 中国当时的全国识字率不超过5%
汉语表达日常与软件工程开发之间不同的空间和沟壑
人类发明文字,以记录,这是人类最为强大的能力之一,它可以塑造出一个全新的空间,不是,是无数的空间,让后代人类受益无穷。在施展教授的新书《破茧:隔离、信任与未来》的序言中引用了如此一段话:
美剧《权力的游戏》中肥宅山姆,这个懦弱又善良的人,在北境长城的雪原中经历了各种生死之变,在绝望之际到学城来领受自己的召唤。他从荒蛮残暴的丛林世界中挣扎着来到学城,进入学城的图书馆时,突然看到无数排高耸的书架,瞬间感受到一种撼人心魄的威严。这里储存着世界的记忆,外面那些荒蛮残暴的人,可能完全不知道这里的存在,但这是正是挣扎在血污当中的人们,无论是强者还是弱者,最终有机会获得作为人的尊严的希望所在。学城的大学士对山姆说:“在学城,我们活着有不同的目的。我们是这个世界的记忆,山姆威尔·塔利。没有我们,人类只会比狗强一点。
是的,没错,文字打造了完全不同的现实空间。但是这个空间也不是单纯的、统一的,而是博尔赫斯笔下的那座梦中的图书馆:将全天下所有知识都囊括的图书馆。有着不同的语言,不同的领域,无穷无尽、无边无际。
那么其中有个空间的世界,它就是开源的世界,这个世界由数以千万计的开源项目、数以千计的开源组织、各种围绕开源的商业公司、数不清的电子邮件和即时聊天、大大小小的会议、社交垂直媒体的热议……所塑造。而这个世界的主要群体是受过专业训练的计算机程序设计人员,他们大多数接受过系统的现代教育,有着很好的数学逻辑素养,掌握计算机的原理,以及各种算法,当然包括计算机程序设计语言——英语的子集。这个开源的空间,尽管大多是发生在互联网空间,但是也会和现实所混杂。
汉语有着数以千年的伟大优秀传统,也是目前世界上最为发达的语言系统之一,也拥有着巨大的使用人口。中国的教育和日常书面交流等也是以汉语为主。当然,在巨大无边的互联网,以中文为主要语言的服务站点规模也是巨大无比的,社交媒体、电子商务、知识问答等等无所不包,在这些空间里的人,大家讲的都是中文,偶尔蹦出零星的hi、love、bye等等英文词汇也是稀松平常。但是这些空间,和开源世界是完全不同的。
上述两个空间的交集:所使用的人,有不多。他们之间的沟壑也是非常的深:
- 开源的世界是专业的、精深的,
- 开源的空间多数是在探讨解决某一个具体的技术问题
- 开源的空间融入互联网,无处不在
开源世界的讨论所使用的语言
在开源世界里,通用的语言当然是计算机程序语言,以及围绕计算机程序所进行的验证、探讨。
毫无疑问,全部都是以英语的子集,象形文字的编程语言是不存在的,至少现在没有人发明出来。就目前全球开源编程语言排名而言:
说的直白一点,我们是看不到中文的任何影子的。
从计算机科学的角度来谈谈逻辑表达
那么这个时候我们不仅要问了,为什么英文是计算机编程语言的主流,而象形文字几乎没有任何机会进入这个领域?这还要追溯到语言学本身的特性。
从词法分析、语法分析、语义分析的角度(编译原理术语),词法分析注重的是每个单词是否合法, 以及这个单词属于语言中的哪些部分。语法分析的上下文无关文法注重的是输入语句是否可以依据文法匹配产生式。那么, 语义分析就是要了解各个语法单位之间的关系是否合法。实际应用中就是对结构上正确的源程序进行上下文有关性质的审查, 进行类型审查等。象形文字的歧义太多,保留字难以取舍,势必增加解释器、解析器的难度。
因为计算机只能认识0、1二进制的数字,想要将人类的自然语言翻译为二进制的目标码,是需要进行严格的逻辑推理和编码的。如此看来,源自昂格鲁的英文是最佳选择。就目前看来,博大精深的中文想要实现已经实现如上节提到的现有的编程语言,外加适配的CPU处理,难度恐怕是高不可及。
高深的编码、编译、分析技术,我们留给想将中文等象形文字的语言的计算机编程语言专家们,希望他们能早日克服这个难关。
为什么我要使用汉语来写这篇文章
其实答案很简单:如果我用英文写了的话,还能让那位在issue 的comment里讲中文的看到吗?
回到我们所举的胡适先生的《文学改良刍议》上来,假如胡适先生当年没有使用文言文,而是用英文写了一篇文章,他能让需要改革的老一辈传统文人的捍卫者们知晓吗?
再说回来,开源之道就是用自然语言,将开源相关的思想、知识和价值,以中文为母语的群体为目标,进行开源的普及、解释与传播。也就是说我在这个它应该所在的空间进行议论。
作为公共空间的探讨和议论,需要在合适的同类人相处的空间。在不合时宜的场合下说不合时宜的话,通常是在电影、戏剧等艺术表现中常用的讽刺、幽默等效果。在现实中就显得非常的古怪、别扭。
“鸡同鸭讲”的跨空间的通用应对方法
中国有句古话,叫做“入乡随俗”,也就是说,我们首先要分辨出自己所处的空间,然后根据空间的形势和状态进行观察、学习,然后在进一步的找人沟通。
那Apache APISIX 这个issue的回答来说,哪位叫嚣汉语自信的同学,显然是走错了门,他应该去榕树下之类的网站寻找自己的自信,比如和《三体》的作者刘慈欣探讨下未来宇宙中汉语的声音,或者是给诺贝尔文学奖得主莫言先生最近的《晚熟的人》进行评论。
在专业的共同体里,有其独特的文化和传统,使用什么样的语言、鼓励什么样的措辞、配合什么样的语气表达都是由其自主特色的。后来跟进的人,应该尊重共同体的做法。
这个世界上没有任何统一的标尺,将所有事情都囊括。自然语言自信应该在其自身的领域里寻找,而不是到非常专业的计算机专业领域里寻找存在感,这无异于缘木求鱼。
由X-lab发起,同济大学开源学博士赵生宇领导的《GitHub 2020全域报告》里明确指出“孤岛项目”多数是非英语项目,是没有融入开源世界的,或者是想进入开源世界的通道没有打开,语言成为了不可逾越的沟壑。
开发者们遇到类似的情况应该怎么办?
面对类似本文引子部分情况,开源世界有一部分人的表现是失望、无奈、甚至有点寒心,但更多的是无法理解,世上怎么会有这种青红皂白不分之人?愤慨之余,还真没有什么好的办法。
但是,仔细思考,利用开源世界的同理心文化,不妨想想如下几个问题:
- 这位同学年龄多大?身居何处?
- 教育背景如何?
- 会不会是真的英文差?理解不了内容而将自我贬低映射到他人身上?
- 他想由此而获得什么目的?
然后,利用Google 等搜索引擎,根据其 ID 进行搜索,以及撰写的代码、文章和零碎的评论。此时,基本上就可以判断出ta是否具有恶意。如果是恶意行为的话,永久禁止其在项目的任何行为即可,而且要广而告之,警示上下游项目的同行,遇到此人则一律封杀。
如果并非恶意,而是巨婴行为,其实这个现象居多,成熟晚是我们这个时代的重要特征,则我们还是要试一试换一种做法,如果可以取得联系的话,还是要打个电话或当面谈谈,更加深入的了解一下需求的情况和需求。
当然,可能有很多开发者会说自己时间那么紧张,那么忙,哪里有时间理会这个,应该是社会来承担,可是不要忘了我们自己也是社会的一部分,开源项目的建立是依靠的共同体,那么共同体就要有其鲜明的开放包容姿态,相信大多数人是友好而具有良知的,只是在处理问题上缺乏一些知识和想象力,能被启蒙的话,还是可以为开源争取一份力量的。
感谢
特别感谢Apache SkyWalking 吴晟、柯振旭提供的线索。