前传

在开源的世界里,应该讲开发者都能懂的语言!,这是李建盛的一篇博客,发在OSChina上,不过被很多人批评。我想还是需要完整的表达一下自己对于这个问题的看法,因此打算写一篇博客。

下篇

在我内心打腹稿的时候,当然是先想到的上篇的内容。不过,因为上篇的内容,批评性比较强,所以我打算先写下篇,再写上篇。

一个开源社区里,有哪些不同的层面的语言?

  • 项目本身的编程语言
  • 源代码中的变量名、函数名等所用的语言
  • 源代码中的注释所用的语言
  • 项目文档所用的语言
  • 围绕项目本身讨论,所用的语言(Issue、PR等)
  • 项目之外,社区日常交流,所用的语言

因为全世界的开源社区,90%都用英语,所以:我们的语言选择,都只能是英语,我认为这个结论,太过草率了。

一、编程语言与源代码

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

  1. 我们将一个源代码文件,看做一篇完整的文章。在这篇文章中:中英文夹杂,甚至英文加汉语拼音混杂都是严重影响阅读体验的
  2. 包命名、文件名、函数名、变量名等等,都严重建议一律使用英文
  3. 在源代码中,我的个人意见是尽量用源代码本身来说话,而无需注释。如果一定要加注释,也强烈建议使用简短英文说明

二、文档

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

三、围绕项目的讨论

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

  • 参与人家的社区:入乡随俗
  • 自己的社区:取决于社区的目标

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

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

四、项目之外的日常交流

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

上篇

秦灭六国

当年秦始皇扫灭六国,然后书同文、车同轨、统一度量衡。肯定是极其伟大的功绩,如果没有当年的统一,现在的中国,搞不好就是欧洲这样的多国语言文字并存的情况。

拉丁文

其实,欧洲也是有过统一的文字的。拉丁文在很长一段时间里,是整个欧洲的通用语,更是学术圈子里的统一用语。只不过,随着罗马帝国的衰落,黑暗的中世纪渐渐结束,欧洲各个民族国家的兴起,越来越多的文艺复兴学者,都开始用自己本国、本民族的语言来思考和写作。如果说,应该讲大家都听得懂的语言,那么:这个大家,到底是学术圈懂拉丁文的大家,还是本民族老百姓的大家呢?

世界通用的候选语言

其实,在英语之前,还有法语、西班牙语、葡萄牙语等等,候选语言。毕竟我们也曾经听说过:法语是世界上最优美的语言,是最精确的语言,是最……的语言。而事实上:英语之所以成为目前事实上的国际通用语,就是因为大英帝国,当年占领了最多的殖民地而已。

计算机编程语言候选项

李建盛在问:“为什么英文是计算机编程语言的主流,而象形文字几乎没有任何机会进入这个领域?”

其实,这个问题很奇怪,因为:除了英文,世界上并非只有中文。还有其他英法德俄西葡,都是字母类语言呀。事实上,如果不是美国打赢了二战,我们现在的计算机高级语言,很可能是德语呢?参见:Plankalkül

历史的偶然

其实,在人类历史上,有很多偶然事件,直接或间接的决定了什么语言成为主流。比如:在数学公式中,有很多希腊字母,那是因为希腊的数学家厉害。在生物、动植物和医学中,有很多拉丁文,那是因为欧洲在这方面的多年积累。现在的计算机技术、软件开发技术、开源社区,通用的语言当然是英语,并不是因为:英文天然、必然、注定会成为最适合的语言。

这只是历史的偶然!

结论:不要将偶然,解释为必然,然后将当前的现状,再预测为长远的未来。


http://www.taodudu.cc/news/show-7145250.html

相关文章:

  • 【CIPS 2016】(18-20章)多模态信息处理、医疗健康信息处理、少数民族语言文字信息处理 (研究进展、现状趋势)
  • c 语言原始字体是哪一个,语言学概论题目及答案
  • 计算机语言学研究综述,我国语言学研究现状与发展趋势
  • 自然语言处理从入门到应用——自然语言处理的应用任务
  • 语言学计算机语言应用,语言学及应用语言学
  • Fat Jar说明【官方】
  • tensorflow如何使用gpu
  • 华为OD机试 - GPU 调度(C 语言解题)【独家】
  • 硬件GPU
  • 华为OD机试题 - GPU 调度(JavaScript)| 含思路
  • 【华为OD机试模拟题】用 C++ 实现 - GPU 调度(2023.Q1)
  • 华为云GPU服务器深度学习环境搭建
  • 【GPU】
  • 【华为机试】GPU算力问题
  • 海尔台式计算机配置,海尔台式机电脑怎么设置u盘启动_海尔电脑如何设置usb启动...
  • 海尔智家的“科创土壤”和“人才密码”
  • 海尔微型计算机硬盘如何拆卸,海尔a62的详细拆机步骤【图文教程】
  • 关于Ubuntu系统重启后桌面图标和应用变大的解决方案
  • 手机计算机桌面图标恢复,怎么样把桌面图标还原
  • [附源码]JAVA毕业设计的问卷调查系统设计与实现(系统+LW)
  • 【Java在线问卷调查】Java ssm框架在线问卷调查系统的设计与实现
  • 基于java的在线问卷调查系统的设计与实现
  • DeepMind新成果:让AI做了200万道数学题,结果堪忧
  • 带二维码的RFID标签,让气瓶安全监管一步到位
  • “RFID电子标签与二维码”融合,夯实气瓶监管力度
  • 爱签电子合同成为国家区块链服务网络BSN指定合格开发者
  • 供排水行业也能做标签、画像?这里有现成的应用
  • VLAN的学习(最大的安心是自律温柔和爱自己)
  • 每一趟安心出行的背后,都有哪些黑科技?
  • antd-pro v5版本的tab页签最简实践

开源社区应该选择什么语言?相关推荐

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

    微信搜索逆锋起笔关注后回复编程pdf 领取编程大佬们所推荐的 23 种编程资料! 编者按: 近日,有位 Apache APISIX 用户在 comment 中用中文写下这样一句话,"能不能语 ...

  2. 聊一聊:开源社区应该用中文吗?

    小编早在求学时,脑子里经常冒出一些奇怪的念头,比如为什么编程语言是英语?而就在最近,在Apache顶级项目APISIX中,有一个名为zcgewu的用户在在comment中,来了一句: 能不能语言自信点 ...

  3. 如何借助Vale减少开源社区文档中的负面和偏见语言

    ​ 整理 | 西狩xs   校对 | 山河已无恙 出品 | CSDN云原生 声明:本文出自CNCF,由技术作家Chris Ward在Chronosphere博客上发表.CSDN将文章翻译成中文,分享给 ...

  4. 独家专访 | 从跨国投行到开源社区,IBM Spark总工程师Nick Pentreath的传奇经历

    2019独角兽企业重金招聘Python工程师标准>>> 原创 2016-12-04 李泽南 杜夏德 机器之心 机器之心原创 作者:李泽南.杜夏德 Nick Pentreath 是 I ...

  5. 如何在开源社区贡献代码_如何在15分钟内从浏览器获得您的第一个开源贡献

    如何在开源社区贡献代码 Matt Mullenweg, founder of Automattic, recently offered this advice to aspiring develope ...

  6. “开源社区运营就像种菜”,黄东旭谈开源商业化 | 独家

    <CSDN编者按><程序员>于 2000 年创刊,其理念为技术改变世界,创新驱动中国.2021 年,全新的<程序员>2.0 重新起航,以专业的内容为立足点,以音视频 ...

  7. 小程序「Github开源社区」

    来自公众号 : DeveloperPython 01.初衷 大概上上周我花了周末两天的时间编写了一款小程序并顺利提交审核. 也就在前两天我的小程序 「Github开源社区」 历经了两周的审核,终于.. ...

  8. 从黑客文化看区块链开源社区的自我组织与成功之道

    来源 | 链闻 ChainNews 撰文 | 李画 原书作者 | 埃里克·斯蒂芬·雷蒙 出品 | 区块链大本营(blockchain_camp) 「要尊重能力,要珍视和捍卫自由.」--罗伯特·安森·海 ...

  9. 初学者如何选择开发语言

           编程语言(programming language),是用来定义计算机程序的形式语言.它是一种被标准化的交流技巧,用来向计算机发出指令.一种计算机语言让程序员能够准确地定义计算机所需要使 ...

最新文章

  1. 在决策树类相关算法中,一个接点的基尼系数通常是大于还是小于他的父节点?是总是大于还是总是小于?
  2. 1.4. Rosegarden
  3. 基于ssm的用户管理系统_基于SSM的高校学生实习管理系统
  4. char* 和char[] 内存分配的区别(转载)
  5. 将devexpress中控件添加到vs工具箱中
  6. android5.0 v4a,【图】多图讲解V4A提高G5音效详细步骤(G5音效可以更棒的)
  7. 一个阿里产品经理眼中的“垃圾分类”
  8. Oracle修改SID(实例名)
  9. 拉普拉斯变换_拉普拉斯变化(s变换)定义与性质
  10. console线驱动安装_文通证件识别SDK和驱动安装使用说明
  11. 什么叫内部银团_什么样的户型是好户型
  12. 使用vue-cli来搭建vue项目
  13. Django模板标签regroup方法对对象进行分组
  14. Windows10重装系统教程(超详细)
  15. Free Download Manager
  16. 保送北大,连发三篇Science,这位80后川妹子近日再发重磅级研究成果!
  17. 【编程原则】预则立,不预则废
  18. 工具篇 之 简单掌握 Chrome 以及 IE DeBug 。。。
  19. Sendrawpdu—Iphone短信欺骗工具发布下载
  20. 沐阳学爬虫11 Requests+PyQuery+PyMongo基本案例实践

热门文章

  1. 解决若依框架中只适配MySQL的问题,若依框架完美适配达梦数据库的代码生成,适配其他框架原理相似。
  2. go每日新闻--2020-02-25
  3. matlab画xyz的等高线图,matlab如何画等高线图
  4. 麻省理工教授Gilbert Strang最新「线性代数」课程上线
  5. 因子分析原理及结果解析
  6. 韩松老师模型压缩--三步剪枝法学习笔记
  7. Verilog学习笔记(3)Modelsim仿真_补码转换_七段译码逻辑设计
  8. 成都市城区土(石)方外运处置价格补贴执行标准的说明[2013]06
  9. 转载---编写高质量代码:改善Java程序的151个建议(第2章:基本类型___建议26~30)
  10. 转载:使用delphi+intraweb进行微信开发4—微信消息加解密