中文编程与中文自然语言编程的大讨论

中文编程与中文自然语言编程的大讨论,大家各抒己见,理性讨论。

1 个赞

发这个帖子是因为2024年1月8号,中文编程相关话题在微信群引发了一场剧烈的争吵(这也是PLOC社区首次发生这种程度的争吵),下面是我对一些争议论点的看法:


“中文不使用空格做分隔符”、“又不支持中文自然语言编程,有什么资格自称中文编程”……

这一系列论点属于典型的“稻草人谬误”。目前以实用为目的的项目,都没有把自然语言编程作为目标。真正的中文编程从业者(或者说实践者)对它的定义各有不同,我的定义是:将中文元素引入传统编程语言中,其中的中文元素包括:中文标识符、中文句式、中文语法习惯等等。本文的后续论述,均以此为准。


“中文编程是伪需求”

大多数同学用不到下面这个物品:


这个东西叫“顶针”,是手工缝纫时常用的一个工具,缝制厚布时,戴在手指上协助穿针动作。
举这个例子是什么意思?认为我既是全世界,我没有需求既全世界没有需求,是一种傲慢


“不使用中文元素也不影响任何语言的表达力”

这话反过来说一样成立:“增加中文元素也不会削弱语言的表达力”,所以,这并不构成反对引入中文元素的理由。
另外,面对越来越多语言支持unicode标识符的大潮,阁下该如何应对?


一向认为,程序员这个职业跟过去的木工非常像,都需要创造力、大型项目需要良好的规划与协作、经常需要自己加工工具。相比木工,程序员这个职业出现不过半个世纪,在这么年轻的一个行业,竟然有那么多不可变的祖宗之法,实在让人唏嘘不已。编程语言说到底是生产工具,一群为左撇子设计工具的人,遭到一些右撇子的暴打,过于魔幻。


这次争论让部分同僚产生了“公地悲剧”的担忧,我倒觉得不至于,所有人都放弃管理责任的时候,才会变成公地。新的社区交流规范已经发布:

  1. PLOC 宗旨是“从业者互助”,从业者的定义请参考理事会章程。PLOC 项目之间互相平等,贬低、污名化其他项目,是禁区;
  2. PLOC 成员之间互相平等,任何形式的人身攻击——歧视学历、质疑经验、挖他人简历等,都是禁区;
  3. 我们欢迎任何根技术相关问题的讨论,但是如果话题不满足社区宗旨,大篇幅的讨论请移步论坛或私聊。霸屏太久严重占用公共资源会被警告,警告无效会被踢;
  4. 社区不是打辩论争输赢的地方,即便你把它当辩论来打,双重标准、稻草人、滑坡等方式也是禁招;
  5. 利用争议话题制造矛盾的,也会被踢;
  6. 最后,也是最重要的一点:如果某些话线下面对面时你不会说,那么线上也别说。

只要建设性的共识够强,就可以避免滑向不好的方向。

严重支持中文汉字编程生态的健康发展,

我已实践汉化现有源码为中文标识符编程很多年. 也积累了很多认识, 大多记录在知乎与GitHub上.

对于中文编程, 我有一个新观点, 最近认识到的;
不单单0101二级制才是数字,
0-9, 0-F, 十进制 十六进制一样是数字.
不管是拉丁字母还是中文汉字,都是首先被翻译为数字的,
底层一直运算的是数字,

希望大家设计中文编程的时候, 最好站在数字的角度思考, 特别是通用于全人类的十进制0-9.

对存储空间的焦虑是8位 16位时代带来的, 现在早已普及64位, 完全没必要再拿这种焦虑说事.