中文编程
首发于中文编程
最近一波对中文编程(包括中文命名)的攻势

最近一波对中文编程(包括中文命名)的攻势

相信很多人看到了这篇文章: 如果我们的编程替换成中文会变成怎样?-聚能聊-云栖社区-阿里云

由于带着太明显的水文气息, 不禁花点功夫进行探究. 下面是之前的发现(原帖在专用帖: 对中文编程的质疑, 困惑, 批评, 吐槽请到此处 · Issue #44 · program-in-chinese/overview)


刚找到了第一张图的出处, 居然还是知乎贴: 四年前的田雅夫:如果计算机是由中国人发明的,那么编程时写代码会是全中文吗?相信原作者的玩笑成分为多.

还找到了这篇文章的前一版本: 如果编程替换成中文就会怎样? 程序员看了表示头疼

发现前后两个版本的一些区别, 推敲了一下. 前文的VB例子明显不如中文代码来的一目了然. 因此后文强行改为了Java代码(也不顾易语言和VB的事实关系了), 靠着编辑器的高亮功能勉强得出英文代码更清晰的结论.

而前文中的第一个易飞扬代码(“易语言.飞扬”(EF)集成开发环境 EFIDE 0.2.2 下载地址), 明显有较强的可读性, 以至于都不敢拿同样功能的英文代码进行比较. 因此后文直接删除了, 以更复杂也更难以一目了然的易语言程序代替. 加了一句`在以前初中,老师在上完课后教了我们有趣的易语言中文编程,那时候感觉很有趣`, 以示自己有易语言使用经验.

全文的中心似乎是"中文并不适合现有的编程方式", 后面的"未来的发展可能超出你的想象"也是画饼而已. 最大的意外是, 后面竟然提到`现代的语言比如Java,都支持Unicode,也就是说可以用中文甚至世界其他语言做变量名和函数名`. 本以为如果是全部否定中文编程的文章, 似乎应该回避这个很多初学者都不知道的点. 不过文中的调子还是中文命名不如英文命名, 看来是黑的更高级了一点.

后文的问题又提到:

2.在目前的c++、java等编程语言有使用过中文作为变量名吗?

再看看下面的多数热评对中文命名还是基本反面态度, 说的基本是汉字输入慢, 会有莫名问题, 没规范等等老生常谈.

在腾讯看到另一篇[转载](评论 - 腾讯网), 评论区看到熟人哈, 也看到其他不少对中文编程支持的声音, 不过没什么对中文命名的探讨.

另外, [更早的一个版本](假如编程交换成中文就会更简单吗?程序员看了表示头疼)中, 用的是"言语", 还有一些错别字. 在后续版本里都修正了, 也是颇为用心了.

前文中有的部分:

后文中被改成了Java, 和更复杂的易语言代码:

前文中有的代码示例, 后文中被删去了:

这么看来, 它不仅是黑中文编程语言. 蛮意外的是中文命名被提到台面上了, 而之前看到的绝大多数关于中文编程的网文都只关注易语言为主的中文编程语言. 无论这一波讨论的推手动机如何, 至少中文命名已经成为了中文编程中不得不提的一个方面吧.

---------------------- 2018.7.20 更新 -----------------

发现疑似主要内容的出处(2017/11): 国内码农为什么那么讨厌中文编程?-中文编程,码农,讨厌,为什么. 也许是被推手(很可能是这个问题的发起者)发现, 无意中为后续加工提供了素材. 很高兴看到有不少其他回答中表示了对中文命名的支持, 以及亲身实践.

总结一下推手的套路:

  1. 首先, 试探性地发起一个争议性题目, 拉高赞一个最合意的答案, 并将其收入素材之中
  2. 搜集对题目本身的质疑, 比如一个回复中指出, "上来就是国内码农讨厌中文", 在后续加工中进行改进, 以减轻对发起者动机的质疑. 可以看到后面的一篇题目就改成了"如果编程替换成中文就会怎样? 程序员看了表示头疼"
  3. 过一段时间后, 将素材再加工, 润色, 包括加上天书般的中文示例代码, 加入自己的"易语言学习经验"等等, 再在更多平台上传播.

这样的水文相信会越来越多, 大家擦亮眼吧.

编辑于 2018-07-25

文章被以下专栏收录

    在所有编程语言和领域中尝试编写中文代码,开发相关工具,总结经验,一致代码风格。包括中文命名,汉化现有语言,创造中文语法的编程语言等等。作为最熟悉的母语,用来编写代码会让代码更容易被自己和母语相同的其他开发者理解。基于英文的编程语言和框架中,使用中文命名有时有技术问题。希望这里为后人趟雷,填坑。多数现有API是英文的,这里也会对其中一些常用的进行汉化。当然,这里也会对基于中文的编程语言进行探讨。包括汉化基于英文的编程语言,以及创造新的编程语言。