近日,开源中国社区内居然出现了不少易语言的讨论帖,还有人说应该开一个易语言专区。对此作者首先要表示自己的惊讶,这个语言怎么还活着呢?看着争论还挺激烈,有一些人把中文编程这个伪科学观点抬得很高,甚至还有互骂对方汉奸的。 所以作者决定写一篇文章,来讨论一下现在的中文编程是什么。
要说什么是中文编程,就不能不说说中文编程出现的历史原因。这个“中文编程”似乎是中国独有的东西,至少笔者没有听说过法文编程、德文编程,乃至什么日文编程或者阿拉伯文编程。也许是我孤陋寡闻吧,但是既然我这样接触IT界快20年的人一点消息都没听说过,那么我敢说,这些编程即使有过,也和中文编程一样,要么死了,要么半死不活没人理。
中文编程为什么出现呢?这要从我们80年代改革开放的时候说起。80年代的改革开放,使得电子计算机从军方的保密单位、各个高端科研院所走出来,开始进入各个企事业单位甚至家庭。各位80后仔细回想一下,大家中小学的时候是否有听过广播电视报道某某作家使用计算机写书呢?中国的计算机普及,是从中文输入开始的。
第一个被攻克的,是中文排版。王选院士和他的方正集团在中国的IT发展史的地位为什么不可动摇,谁都比不了呢?是因为他第一个解决了中文的计算机处理问题。此后,各种输入法万码奔腾。拼音、自然码、双拼等等,特别是五笔字型第一个解决了输入速度问题。当年很多人学电脑学的是什么呢?就是五笔字型输入。
在80年代90年代这20年,中国的IT界走贸工技的道路,成了现在的世界IT工厂。有些领域我们自主研发和引进的度掌握好了,有些没掌握好。因为很多地方没掌握好,所以我们的自主研发情节特别严重。很多起点的YY小说,里面都提到了中文编程,这代表了什么呢?代表了大家希望中国在IT世界的高端领域能占有一席之地。
中文编程的探索应该是80年代开始,90年代的时候比较兴盛,我九几年曾经在电视上看到一个中文编程的报道,当时的画面我还记得,可以说就是一个汉化了的微软QBASIC。这个新闻播完了,这个软件也就没影了。我想是卖不出去,失败了。在所有的探索中,最成功的就是现在论坛里面热议的易语言了。易语言可以说是整个90年代中国人在中文编程这个方向上探索获得的最高的成果了。如果国家有保密的成果我不知道另说。但是很遗憾,自从进入21世纪,互联网大潮席卷中国,中文编程就像那些输入法一样,悄无声息了。现在还有几人用五笔字型输入?就是速记员,也改用速录机了。
当年为什么要进行中文编程的探索呢?这是因为在我们的认识中,中文这种象形文字对英文这样的拼音文字在信息量上有天然的优势。很多人自豪的说我们认识很少量的汉字就能读书看报,中国人基本上没有阅读障碍。但是在美国阅读障碍的人很多。联合国官方语言中,中文版的厚度是最低的。
在90年代,大量计算机的普及,也带来了中文软件缺乏的问题。当时到处都有软件需要开发,到处都缺程序员。北大青鸟为什么发展起来,就是因为它第一个进行了大批量工厂化速成程序员。当时社会上特别缺少程序员,无论是否合格,总比没有好,就好像改革开放的时候,任何一家企业生产电器,都会被抢光。
社会对程序员的极大需求缺口,自然让人们对如何培养中国程序员,如何提高中国的软件开发效率进行探索。其中一个探索方向就是中文编程。这是因为当时国内的IT技术资料不但少,还多是英文。而无论是咱们中国,还是日韩,英文都是一个大问题。很多人学了多少年,四六级过了说不了话读不了书的不新鲜。有人就想了,如果我们抛开英文呢?是否就可以大量培养程序员了呢?全是中文,自然资料也都是中文,不用担心阅读问题。
于是,中文编程的探索开始了。我们说理想是美好的,但是现实是很残酷的。所有公开能找到的中文编程语言基本上都停留在只是简单把关键字改成中文的水平上。低级的看着像汉化的Basic,高级的易语言,怎么看怎么像汉化的Visual Basic。就是当着易语言的作者当面,我也敢这么说,你的语言思想其实和Visual Basic没什么两样,没有本质性突破。
为什么会这样呢?中国的牛人也不少,求伯君(WPS)、王江民(KV)这些大拿为什么没人搞这个?就算这些大拿不上,咱们中国别的没有,两条腿的大活人有的是,怎么就没有一点突破呢?
因为在现有的理论体系下,中文编程是一个伪科学命题,搞这个是白费劲。为什么是白费劲呢?这要从计算机本身的理论说起。现代计算机体系,由图灵、诺依曼这些天才数学家构建,到今天为止,无论怎么变化,本质上都一样。花样玩儿再多,根上都是一个东西。
这个东西是什么呢?搞清楚这个,就要定义计算机语言到底是什么语言。我本人不是学语言学的,我的分类标准可能不准确,大家不要见笑。在我看来,所有的语言,都是信息传递的媒介。这种媒介分为两种,一种是咱们常见的理解描述性语言,比如书刊报纸上面的文章,都是这个。还有一种是符号语言,这是一种数学语言。而现代计算机的核心就是数学,无论什么,到了计算机里面都是二进制计算而已。
我们说的中文信息量大,指的是我说的理解描述性语言。你写一篇文章,中文一般会比英文短,文言文更是短到及至以至于大多数人看不懂。但是对于数学符号语言,正好倒过来。数学符号,1个符号的意思你用语言描述就要很多话。
质能等价理论如果要用文字描述,简略也要一篇文章,详述要一本书不止。但是用数学符号表示怎么表示呢?E=mc2。全算下来才5个字符。
计算机语言无论它以什么做关键字,其每条语句的实质都是数学表达式。“if”、“when”这些不是英文,是数学符号表达式。那些大拿为什么不去搞中文编程?是因为他们懂得编程的实质。在这点上,“if”和“如果”没有区别,两者的信息量一样,但是“if”只需要敲两下键盘,但是“如果”呢?就是五笔字型词组也要3下呀。放大到整个程序,我需要多敲多少键盘?这是提高效率还是降低效率?
那有人说了,中国很多人英文都不好。如果中文编程,即使我不懂英文也可以编程了。就算慢一点,但是我培养人更容易,我搞人海战术不成吗?
很可惜,不成。我们来说说一个程序员,哪怕他只是会写垃圾意大利面条代码的垃圾程序员。他用一门语言需要什么前提条件呢?首先不是文盲,有至少中学生的数学水平,然后有一定基本的电脑操作能力,懂一点基本的程序开发常识,然后就是知道基本的语法了。还有吗?没了。有了这些就可以编程了。哪怕他的程序再烂再差,他确实在编程。
那么中文编程能解决哪些问题呢?只有基本的语法了。有谁认为一个智力健全,不是文盲,有基本的数学知识、基本的电脑操作能力、基本的程序开发常识的人连26个字母都认不齐?一百来个单词都分不清呢?只怕这样的人小学都不能毕业吧。而且如果他真的连字母都认不齐,那么什么中文输入法也是白搭吧。连中文输入法都是白搭了,您这个中文编程怎么办呢?这人最基本的输入都不成呀!中文编程不是笑话了吗?
如果他成呢?可以用中文输入法,可以进行您的中文编程。但是人家为什么要这么干呀?C语言、Lisp语言、Java、C#,哪个语言我不能学不能用,为什么非要用你这个中文编程呢?就因为你关键字是中文?我至于那么白痴连着一百多个关键字都记不清吗?我为什么要放着这么多的编程语言和资源不用,放着按两下就是一个关键字的语言不用,非用你至少需要按3次的中文编程呢?这不是笑话嘛。
大家看到了吧,中文编程其实从一开始就是一个笑话。最顶级的那一层人已经知道了本质,知道这是一个笑话,没有做。一些人尝试了一下,发现是一个笑话,树了个牌子“此路不通”,干别的去了。还有一些人,并没有认识到此路不通,仍然在进行着这个笑话。
可以说,如果现代计算机数学理论基础没有突破的话,计算机语言怎么发展也不会出现真正的中文编程来。 如果真的到了人们只需要对计算机用普通话描述一下就可以做出程序来的那一天,我们当然可以说中文编程比英文好,因为中文信息量大于英文。但是如果这一天真的到来了,我们还需要编程吗?真正的硅基强人工生命已经诞生,人家已经可以自主进化了。
罢了,又去网上仔细搜索了一下CCED和吴涛的情况,发现有些报道说CCED的吴涛和易语言的吴涛就是一个人。真没想到,这个是我收集资料不谨慎,向广大网友道歉。文章再次修改,实在对不起。一股当年的老程序员里面出败类的感觉。