天天看点

“汉语编程”有何意义?

目前世界上绝大多数程序设计语言都是使用ASCII字符作为其关键字,而且其中绝大部分关键字是英语单词。但是程序设计语言采用英语单词作为关键字并不能降低英语母语人群学习程序设计的难度。举例来说,对于一个没有学习程序设计基础的美国人来说,C语言中的 for、while、do...while 这些关键字无异于天书;没有学习过初级数据结构知识的话,也难以理解何为 array、何为 hash table。在 Perl 中,我们可以看到相当多的关键字是一些诸如$、@之类的标点符号,而在 Smalltalk 当中,关键字则只有屈指可数的几个。

程序设计既是一门科学也是一门工程技术,我们可以横向比较一下其他科学或者工程领域中的情况。拿我们大多数人在小学就学习过的算术来说,在整个算术系统中,数字符号、运算符号没有一个是中文——这一点丝毫不影响中国学生学习数学的能力,反而因为阿拉伯数字符号、+-*/符号的简练,让算术的教授和学习变得更加容易起来。试想如果我们在一年级时学习加法时,采用全中文的记数和运算符的话,会是什么样子,或许是:

五加卅六等于卌一      

再比方说,在集合论中我们常常用希伯来字母 א 来表示可数集的基数。希伯来字母对于世界上绝大多数人来说都是很遥远的一套字符体系,但是这一点也不妨碍数学家和数学系的学生们学习这个概念。类似的例子还有很多,比如说质能守恒公式

e = mc2      

请问如果用任何一门自然语言来描述这个公式,会比物理学家们发明的这套“黑话”体系更好吗?

现代工业领域的程序设计工作,并不仅仅是使用一门程序设计语言书写几行代码,这只是该领域中很小的一部分工作。从宏观上说来,程序设计牵涉到软件工程、项目管理、分析设计等方面的系统工作,从微观上来说,软件开发涉及到数据结构与算法、设计模式、单元测试等专业知识。程序设计属于一门工程技术的本质,就已决定了这不是一项可以全民参与的公众活动。仅仅是将几个关键字改成中文,就吹嘘成能够做到“上到九十九,下到刚会走,只要认识汉字,就可学会编程。”恐怕不是神经错乱,便是缺乏专业素养。

中国软件开发界所面临的语言障碍,不是来自于程序设计语言中的几个拉丁字母关键字,而是由于世界上绝大多数计算机科学、技术的文献资料都不是中文写成的。如果要去解决这个语言障碍的问题,至少可以明确一点的是,搞什么“汉语编程”对此是毫无帮助的。

参考阅读:

徽剑博客

中国本土化编程(汉语编程)之我见

无聊的中文编程和背后的“中国特色”