layout: post comments: true title: 最近一波对中文编程(包括中文命名)的攻势 description: 对质疑中文编程的一篇网文的追究. Back tracking a post that's questioning programming in Chinese. date: 2018-07-18 12:00:00 -0700
相信很多人看到了这篇文章: 如果我们的编程替换成中文会变成怎样?-聚能聊-云栖社区-阿里云
由于带着太明显的水文气息, 不禁花点功夫进行探究. 下面是之前的发现(原帖在专用帖: 对中文编程的质疑, 困惑, 批评, 吐槽请到此处 · Issue #44 · program-in-chinese/overview)
刚找到了第一张图的出处, 居然还是知乎贴: 四年前的田雅夫:如果计算机是由中国人发明的,那么编程时写代码会是全中文吗?相信原作者的玩笑成分为多.
还找到了这篇文章的前一版本: 如果编程替换成中文就会怎样? 程序员看了表示头疼
发现前后两个版本的一些区别, 推敲了一下. 前文的VB例子明显不如中文代码来的一目了然. 因此后文强行改为了Java代码(也不顾易语言和VB的事实关系了), 靠着编辑器的高亮功能勉强得出英文代码更清晰的结论.
而前文中的第一个易飞扬代码(“易语言.飞扬”(EF)集成开发环境 EFIDE 0.2.2 下载地址), 明显有较强的可读性, 以至于都不敢拿同样功能的英文代码进行比较. 因此后文直接删除了, 以更复杂也更难以一目了然的易语言程序代替. 加了一句在以前初中,老师在上完课后教了我们有趣的易语言中文编程,那时候感觉很有趣
, 以示自己有易语言使用经验.
全文的中心似乎是"中文并不适合现有的编程方式", 后面的"未来的发展可能超出你的想象"也是画饼而已. 最大的意外是, 后面竟然提到"现代的语言比如Java,都支持Unicode,也就是说可以用中文甚至世界其他语言做变量名和函数名". 本以为如果是全部否定中文编程的文章, 似乎应该回避这个很多初学者都不知道的点. 不过文中的调子还是中文命名不如英文命名, 看来是黑的更高级了一点.
后文的问题又提到:
2.在目前的c++、java等编程语言有使用过中文作为变量名吗?
再看看下面的多数热评对中文命名还是基本反面态度, 说的基本是汉字输入慢, 会有莫名问题, 没规范等等老生常谈.
在腾讯看到另一篇转载, 评论区看到熟人哈, 也看到其他不少对中文编程支持的声音, 不过没什么对中文命名的探讨.
另外, 更早的一个版本"假如编程交换成中文就会更简单吗?程序员看了表示头疼"(链接已失效)中, 用的是"言语", 还有一些错别字. 在后续版本里都修正了, 也是颇为用心了.
这么看来, 它不仅是黑中文编程语言. 蛮意外的是中文命名被提到台面上了, 而之前看到的绝大多数关于中文编程的网文都只关注易语言为主的中文编程语言. 无论这一波讨论的推手动机如何, 至少中文命名已经成为了中文编程中不得不提的一个方面吧.
---------------------- 2018.7.20 更新 -----------------
发现疑似主要内容的出处(2017/11): 国内码农为什么那么讨厌中文编程?-中文编程,码农,讨厌,为什么. 也许是被推手(很可能是这个问题的发起者)发现, 无意中为后续加工提供了素材. 很高兴看到有不少其他回答中表示了对中文命名的支持, 以及亲身实践.
总结一下推手的套路:
这样的水文相信会越来越多, 大家擦亮眼吧.