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

简介: 对质疑中文编程的一篇网文的逐条驳斥. Detailed response to a post that's questioning programming in Chinese.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2018-07-27

相关文章
|
8月前
|
搜索推荐 算法 程序员
探索编程世界的宝藏:程序员必掌握的20大算法(上)
探索编程世界的宝藏:程序员必掌握的20大算法
104 0
|
8月前
|
存储 机器学习/深度学习 自然语言处理
探索编程世界的宝藏:程序员必掌握的20大算法(下)
探索编程世界的宝藏:程序员必掌握的20大算法
97 0
|
8月前
|
机器学习/深度学习 存储 运维
探索编程世界的宝藏:程序员必掌握的20大算法(中)
探索编程世界的宝藏:程序员必掌握的20大算法
113 0
|
9月前
|
算法 Unix Java
初学者值得一看:什么是编程/C语言,编程学习建议,编程解疑与误区注意
初学者值得一看:什么是编程/C语言,编程学习建议,编程解疑与误区注意
119 0
|
JavaScript Java 编译器
编程简单科普系列 - 什么是编程 (1)
广义上来说,编程也不仅仅是指关于计算机的范畴,现在通常也指可以diy的东西,可以通过自己想法进行自定义的东西。当然我们这里所说的是指计算机编程. 因为计算机是不能直接听懂我们人说话的,没办法直接沟通,所以我们需要通过编程语言来跟计算机进行沟通,通过编程语言把我们想表达的转化为计算机能听懂的,在这里编程语言就相当一个翻译(比如,我们不会英文,准备要和一说英文的外国人谈生意,这时候就需要找一个英文翻译,替我们把想要表达的中文翻译成对方听得懂的英文。)其实严谨点这个比喻说也不准确,因为编程语言一般是需要通过编译器或者解释器编译解释之后,才能为计算机所识别. 每个计算机编程语言,都有自己的编译器或者解
306 0
|
Java 程序员 编译器
计算机编程语言学习要点
计算机编程语言学习要点
169 0
软件设计师08-程序语言基础知识
第一次作章节的的思维导图,写的有点过于细了(⊙﹏⊙)
929 0
软件设计师07-程序语言基础知识
1 状态转换图要求:状态(结点)个数有限、至少一个初始状态,若干终止状态、每条边上标有字符(可为空字符) *即舍弃多读的字符 确定的有限自动机(DFA)五元组: 2...
815 0
【浸入式英文学习方式】山姆莱萌帮助孩子建立扎实语言功底
兴趣并不是天生的,这就需要老师的引导、培养才能形成。少儿的特点是好动、爱表演,乐于接受新的、有趣的东西,而教学方法的好坏直接影响他们的学习兴趣。
829 0