草率的回答:为什么有这么多人执着于中文编程?

头一次,应该也是最后一次吧,两千赞,超过两年以来所有其他210篇文章和216回答(大多都关于中文编程)的总和,值得纪念一下。

首先,问题提出者在回答中提及本人,理应回应。另外,本人回答下的一百多评论,有心一一回复,但不希望信息分散,于是一并回复在此,如无特殊情况不挂账号。

我不是唐吉坷德

看了题主的回答,才发现早先听闻过题主编写的脚本语言。先要道歉,因为之前回答时匆忙间没有注意到题主背景,是作为钓鱼问题来作答的(尤其看到连发了两次同样问题)。在知乎和头条看到了太多语出不逊又没有来由的对中文编程的带节奏式发问,而看到的高赞回答往往都是抖机灵式的挖苦讽刺。因此回答时憋着一口怨气,也带上了之前在头条舌战时的戾气。

无论如何,覆水难收。既然题主在自己的回答中补充了一些相关背景,这里也结合自身(参考:一年前的专栏一岁了-我为什么投身于普及用中文编程)做些探讨,希望能够弥补一些隔阂。

我在 2000 年读大学之前完全没机会编程。大学从 C 和汇编(选修)开始学。在 2015 年之前并不了解中文编程,或者说,唯一的印象就是早先听过的关于易语言的新闻。从上学开始,英语一路来属于优势科目,在阅读英文文献或者在国外工作时在命名标识符上并没有碰到什么障碍。对母语在代码可读性上的优势是在国外参与可读性互评(readability review)时才逐渐意识到的。而意识到中文命名对于国人的益处还在之后。

题主对中文编程的偏见,我并不清楚来由,恐怕是冰冻三尺非一日之寒。个人非常希望,不要被偏见蒙蔽了双眼。如有兴趣探讨,欢迎到对在代码中使用中文命名的质疑与回应切磋。

另外,既然题主在今年仍在推进自创脚本语言,再推一下之前的浅见:国人创造中文编程语言的优势。与其在客场与英文编程语言竞争,不如立足本土市场为先,最大发挥本土优势。

最后,题主恐怕没有看到本专栏来自多方的投稿和“中文编程”GitHub组的讨论。一路以来,碰到很多实干者,比本人坚持更久和投入更大的比比皆是。如有兴趣交流,也欢迎组里一聚,或到此贴留言:专用帖: 对中文编程的质疑, 困惑, 批评, 吐槽请到此处 · Issue #44 · program-in-chinese/overview

我不是唐吉坷德,英文编程也不是风车。用中文编程是国内市场的硬需求,等待有心者顺势而为,仅此而已。

评论回复

只是他们说的中文编程,似乎不是这个意思,而是易语言那样的中文编程。 比如:如果 xxx 则 xx xx 结束

回应:最好先了解一下易语言。把它曲解成只有中文关键字太露怯了。API 呢?

如果是开源代码,你不用英语而用你的母语,其他国家的人不是还得用google翻译一个一个地翻译标识符?

回应:在国内原创开源项目中使用中文命名的意义与方式。以及最近的文章:RFC#2457——Rust语言选择支持非ASCII码标识符在 GitHub 引发的激辩(一)中的片段:

Manishearth 对此回应:早已有大量库除了命名之外的所有文档都用非英文编写,比如腾讯的 wepy,他就不会用。用了中文命名之后,也不会更糟。如果一个库流行到有英文文档的程度,很可能那时也会用英文命名了。至于如果库用了不认识的语言,那就——不用。

某回复:

Rect过了四级都能猜到是什么,再说了这不是你们自己活该,英语不行又喜欢缩写

回应:回答中的截图是 p5js 代码。rect() 是 p5js 的 API,并非我的缩写。

中文编程原来是中文标志符的意思?

换汤不换药,真正用中文开辟一个新语言才是牛逼。

只是把个别定义换成中文了而已

然而门槛根本不在这几个单词

#define 不就行了

回应:一些非常大的误区——“只有中文编程语言才能用中文标识符”、“只有(要)中文关键字才(就)是中文编程”。使用中文标识符是中文编程的一个非常重要方面,详见中文编程专栏目录, 初衷和希冀。意义请见:对在代码中使用中文命名的质疑与回应的“没有好处”一节。

中文的输入效率太低了,输入一个中文词语的时间够输入n个英文单词了(搭配上编辑器/ide的自动提示)

你这中英文切换不麻烦?

可是打打中文又要切回英文模式输入括号点点什么的,好累啊

回应:对在代码中使用中文命名的质疑与回应“中的“中文输入太慢, 降低开发效率”一节。强调一下,输入法可以设置:“中文下使用英文标点”,还可以指定特定程序(如 IDE)

楼主这种才是真正有意义的中文编程

回应:中文命名标识符是重要方面,不意味着中文编程语言没有意义:对中文语法的编程语言的质疑与回应

各大顶会,期刊都是英文,你中文编程看得懂人家的论文? 还是说你只看清华大学学报?

现在大家为什么都学英语呢?

回应:用中文编程绝不意味着学英文没有意义。我没有英文能力有国外学习工作的机会,恐怕也不会这么早接触到可读性互评。另一方面,我的英文够好,绝不意味着我必须或者应该在所有项目中使用英文命名

看着难受的要死。就跟听到人中文夹英文说话一样。

回应:这个,我也不想。一步一步来吧。标识符->API->语法:既然开发新中文编程语言离不开API, 何不从开发API开始呢? 更进一步, 何不从例程开始呢?

先搞出一套字符编码让中文和英文所占内存差不多,就不说比英文更小了

回应:不知从何说起。”内存“是指…?

现有的库和框架从代码,API到文档全是英文的,要搞一套中文的,可以类比在中国再搞一套欧美标准铁路网,就算搞完了,估计还不如英文意义清楚呢,到时候英文和拼音混合,想想都恶心。而且翻译的书看的多了,大部分词不达意

回应:在一开始选择汉化库时,可以扬长避短。可以从国人开发的库入手,因为已有完备的中文文档,覆盖了大部分相关术语。其他的一些考虑因素前几天小结在此:把最常用的开源的英文API进行中文化 · Issue #9 · program-in-chinese/overview

【暂时到此,如需再续】