中文编程
首发于中文编程

又见套路:如果计算机是用中文编程,你能成为计算机编程专家吗?

刚发现的头条文章: 如果计算机是用中文编程,你能成为计算机编程专家吗?


这个题目又具有明显的误导性. 上来就把"用中文编程"放在一个假设性位置, 从而给人以当下不能够用中文编程的暗示, 可以想象文中不会提到即使是在英文编程语言中也可以中文命名这一可行性极强的技术手段(详见在各种编程语言中使用中文命名). 更不用说后半句的引导式疑问了.

我们知道现在已经有一个中文界面编程语言,易语言,编程的语法全部是用中文来表达,但是现在推广程度及份额不敢恭维。那我们看看有哪些原因。

了解易语言的开发者应该知道, 下面的几个点其实和易语言推广的障碍都没有直接关系. 在易语言已经处于休眠状态的现在, 为什么还要拿它说事呢? 也许更重要的目的, 是把中文编程直接局限到中文编程语言以至于易语言上, 以偏概全, 转移对中文编程其他方面比如无需中文编程语言也可以中文命名等等的关注.

1.现在市面上主流及成型的模块全部是英文写的,使用起来比较方便,交流起来也比较方便。但中文编程起步较难,容易放弃。

这里提到API都是英文的确实是个事实, 但交流/学习上对于中文母语的开发者是肯定没有优势的. "中文编程起步较难"就是睁眼瞎话, 易语言就是出名的起步容易. 但配上前一句之后, 乍一听起来似乎就有了一点说服力, 也是此类水文的一个套路.

2.开源一直是用户最喜欢,java因为时机准确,并且开源,一直受用户喜爱,但现在还没有一个开源的中文编程语言。

个人觉得易语言开源(即使是分社区版/专业版)有可能使它重获新生. 即使如此, 不开源也不是易语言推广的直接障碍. 个人了解, 商业语言开源化是从Java在2006年的开源才大规模开始的. 而易语言在那之前的推广速度很快(详见易语言_百度百科).

Z语言(详见前几篇, 如中文编程Z语言设计思想)是开源的中文语法的编程语言. 另外有不少汉化现有语言的开源项目(如5分钟入门CTS-尝鲜中文版TypeScript). 非常希望看到其他商用中文编程语言/工具加入开源的队伍.

3.编程的基础是语言,编程的思路是核心,不断修复BUG是过程。中文编程只是让你的语言全部用中文表示,但是编程思路,仍然不变。对于一个没有基础的初学者,中文和英文没差距。

第一句乍一看很有大师风范, 也许能唬住一些人, 但三个部分都是空话. 后面绕过了中文命名的问题, 强调"编程思路,仍然不变", 这也是把编程和命名割裂开的一种引导, 显然编程思路和业务逻辑的紧密关系直接决定了母语命名具有优势. 至于最后一句"对于一个没有基础的初学者,中文和英文没差距"就是完全无视易语言易于上手而且问世就迅速推广的最主要原因了.

4.要想对编程有一定理解,如果只是中文好,仅仅只是可以看的懂写的是什么,但是和中文自然语言仍然会有较大差距,还是需要去钻研。

这里又混淆了"中文编程仍需学习计算机科学才能进阶"和"中文编程不能让入门/代码开发的成本更低"两个完全不同的命题. 更具有迷惑性的是提到"和中文自然语言仍然会有较大差距". 最直接的反驳就是所有主流英文编程语言写出的程序也都和英文自然语言有很大差距.

所以如果计算机是用中文编程,仍然需要花费大量的时间和精力去学习,去研究。该能成为一方大牛,不管用什么语言,都能做到。

和前一段类似, 如果把"中文"替换成"英文", 也是完全成立的. 很明显的引导方向是: 大家都去学现在的流行语言吧, 就别惦记着用中文编程了.

此种水文层出不穷, 但套路基本相同. 还有一类是挑选一些推手问题引出的"精华"回答来证明中文编程的不被待见. 比如这篇的素材就源自知乎某问题: 看看90万程序员讨论的话题:能否用中文写代码?

编辑于 2018-07-28

文章被以下专栏收录

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