仓库源文站点原文


layout: post comments: true title: 对中文语法的编程语言的质疑与回应 description: 对常见的对中文语法的编程语言的反对声音进行小结, 并作针对回应. Q&A for creating programming language in Chinese grammar. date: 2017-11-27 00:43:00 -0700

categories: 语言设计

有感于编程软件有没有用中文编写的?, 提取了一些比较典型的声音回应如下, 如有遗漏的论点请补充.

英语和编程无关

  1. 只要会几十个英文关键词, 就可以学编程了 -- 所有的API都是英文的, 看中文文档已经比直接理解API名称间接了一层, 还不用说中文文档的质量和覆盖面问题.
  2. 编程使用的符号(标识符等等), 与自然语言无关 -- 参考对在代码中使用中文命名的质疑与回应一文中关于可读性的部分
  3. 编程的门槛是逻辑, 而不是英文 -- 从逻辑不好会导致编程学习困难不能推导出编程入门困难的就逻辑不好. 随着编程经验的积累, 反过来肯定会使逻辑更加清晰, 而英文导致的额外入门难度本是可以避免的.
  4. 英文不会提高编程门槛 -- 即使是国外开发者, 也对非英语国家学习编程的自带难度有认可. 详见吴烜:编程软件有没有用中文编写的?前半部分. 一个可能是他们都误会了, 另一个就是这个明确的中文编程语言的市场需求被出于各种原因视而不见了.

很多英文编程语言都是由非英文母语的开发者创造的

如: (转载)python-荷兰; pascal-瑞士; Erlang-瑞典; php-以色列; ruby-日本.

回应: 与对在代码中使用中文命名的质疑与回应"芬兰人Linus,使用英语而非自己的母语来编写Linux代码"一节同理, 上述所有语言都没有与中文/英文同等量级的使用人口数量. 最接近的日语也有十几倍的差距.

中文比数学表达式繁琐

最常给出的例子是1+2-3*4 用中文写就是一加二减三乘以四,以此说明中文不适宜作代码.

回应: 也没有英文编程语言这样设计one add two minus three multiply by four. 中国本身的平均数学水平就在第一梯队, 对阿拉伯数字和这些基本数学符号基本做到了全民普及, 为何一定要选择在编程语言中用汉字表达数学呢? 当然, 不是说不能用加 減等等作为关键字, 而是说很容易做到两种模式都支持, 根据具体情况使用.

从硬件接口到语言/接口都是英文的, 不可能突破

中文编程语言的设计实现, 瓶颈不在于编译器技术. 而是走出第一步, 开发一套实用的语言和配套的中文接口的标准库(后者的设计难度和实现工作量也许不亚于语言本身的设计和实现). 之后的迭代和演进将水到渠成. 当然, 突破垄断总是难的, 但技术上可行, 也已经有人才储备了.

中文输入效率低

对在代码中使用中文命名的质疑与回应 "中文输入太慢, 降低开发效率"一节

难以国际化

首先, 对在代码中使用中文命名的质疑与回应 "不利于非中文编程者贡献"一节阐述了绝大多数国内项目的本土特性. 其次, 如果实力和需求已经达到招募国外程序员的地步, 相信国外开发者也会去学中文的. 正如孔子学院的兴起, 综合国力的提高必将催生文化输出. 中文编程语言相信会使国内的编程效率获得进一步提升, 进而提升IT行业整体的国际竞争力, 进而扭转劳力输出的趋势, 中文编程也将成为文化输出的一部分.

不如做好各种文档以及编程工具的翻译

这是迫于现状不得不为, 长远看只能跟着别人后面亦步亦趋.

而中文编程语言是属于自己的路, 节奏和方向都在自己把握中, 也是摆脱跟跑的更可能途径(为何更难以创造新的英文编程语言请见国人创造中文编程语言的优势)

需要推翻现有的一切从头来

就像很多JVM语言(如Scala)都可以调用Java库, 中文编程语言一样可以在设计时就加入类似特性, 从而在创始时就可以使用所有或者部分现有语言的实用功能. 这种情境下的中英混用与在现有英文编程语言中使用中文命名同理. 在此基础上, 可以逐渐完善自身的中文接口的标准库.