一、关于中文编程的争论关于计算机编程语言的中文化问题,经常在网上看到两种相互对立的观点,一种观点是认为中国应该弄出个中文编程,让大家能够通过中文来编写程序;另一种观点认为中文编程没有意义,编程所用的英文就是那么几个关键字,并不难。前面的观点主要来自于非专业编程的普通大众,后面的观点主要出自专业程序员。网上这两种观点之间的争论非常激烈,有时候甚至到了互相攻击的地步。我认为,这两种观点都不错,之所以产生这种冲突,主要是因为两者看待问题的角度不同。对于专业程序员来说,他们早已熟练掌握了已有的优秀编程语言, 并且在语言方面也不再有多少障碍,他们需要的是更多的中文化技术资料而不是中文编程语言。而对于有编程需求的普通大众来说,他们还没有接触计算机编程或者才刚刚入门,在面对满屏的英文语句时感到使用起来很艰难,而中文编程里面的关键词和函数、变量、方法、事件等等都是中文,能够即看即懂、即用即会,节省大量时间精力。所以,对于这两种观点,我觉得不必放到对立面来,普通大众不强求程序员从现有的编程语言中转换到中文编程上来,程序员也不应该要求普通大众远离中文编程。实际上,有不少程序员在熟练掌握其他编程语言的同时,也在使用着中文编程,并且在中文编程与其他编程语言之间架起了无数个技术桥梁,既方便了自己,也方便了其他人。
二、软件产业与大众化编程世界上软件产业发达的国家基本上是经济发达国家,此外还有一个发展中国家印度。他们都有一个共同点,就是英语普及率非常高。欧美发达国家的母语虽然不都是英语,但是在他们数百年的交往中,使用英语并不是什么难事,而且思维方式几乎是一样的。此外日本很早就将自己西化,其所使用的自然语言也是西方语言和东方语言的结合体。至于印度,它的母语就是英语,在长期的殖民统治下早已融入了西方文化环境。这就存在一个我们平时看不到的优势,在使用编程工具时,这些国家的人可以做到“顾名思义”,无需翻译,也不需要做过多的语言培训就能顺畅地使用。这样就能够保证普通人只要愿意,通过付出较少的学习成本(包括时间、精力、经济成本)就能够使用编程工具做一些自己需要的软件。当编程能够大众化之后,软件产业所需的巨量优质人力资源也能够得到保证。而在中国,编程还只是“精英化”而非“大众化”。中国的软件行业只能够集中突破,而不能真正建立一个完善的软件产业。产业是基于大众的。中国既不是以英语为母语的国家,也不是像日本那样很早就融入西方的国家,中国人的思维方式跟西方还存在巨大差异。中国网民虽然是世界最多的,但是他们所使用的软件、游戏和网页都是中文界面,他们只能“消费”本地化的软件,而不能用外来的工具“生产”软件。一个消费者众多,生产者却凤毛麟角的市场,可能是一个很好赚钱的市场,但却不是能够支撑一个产业的的市场。因为这个市场中能够为产业提供的人力资源非常贫乏,只能走精英化路线。精英化编程不但会限制产业的发展,而且会导致创新不足,在总体局面上只能跟随国外亦步亦趋。
三、操作系统与软件生态环境这里不得不说到国产操作系统。操作系统的开发当然是必须“精英化”的,但是它的发展却必须是“大众化”的。精英化的技术可以开发一个功能强大的操作系统,然而操作系统的功能再强大,如果没有多少应用软件的支持也只能是空中楼阁。Windows 的成功固然一部分是因为它的雄厚技术实力,但是更大的原因是它拥有一个非常强大的软件生态环境,这个生态环境是由巨量的五花八门、大小不一、良莠不齐的软件所支撑的。另一个成功的例子,就是智能移动设备上运行的Android 操作系统,它的成功也源自于软件生态环境的搭建。现在我们所说的软件编程,在桌面端基本上是基于Windows 系统,在移动端大部分集中在Android系统。Windows 和Android 早已通过各自难以动摇的软件生态环境分别在桌面端和移动端占据垄断地位,国产操作系统要想争夺它们的市场,仅仅以精英化路线埋头研究操作系统技术已经是太迟了。最根本要做的事情,就是以已有的自主操作系统为中心,大力构建软件生态环境。而要想构建一个完善的生态环境, 单靠精英化编程是难以实现的,它所需的以万计的应用软件要靠大众化编程才能完成。从这方面来说,需要拥有一个或多个能够让普通大众快速上手的,具有跨平台特性和优秀性能,并且被相关方面大力支持、向自主操作系统生态环境引导的中文编程语言及其开发工具。
五、中文编程的质疑网上有很多人对中文编程提出质疑,其质疑的角度五花八门,比如计算机底层的实现、中文编程的效率、编程所需的少量关键字、对中文代码感到不适应等等。
1、计算机最底层的语言是机器语言,它的关键字只有两个字符,一个是“0”一个是“1”,分别代表物理层面的低脉冲和高脉冲。它既不是英语也不是中文,在原理上不存在中文编程在编译执行后比英文效率低的问题。只要中文编程工具具有完善的编译器,能够完全编译成机器码,就能够得到跟英文编程一样高的执行效率。2、计算机编程语言的发展是不断向自然语言靠拢的,高级语言和面向对象编程的出现,目的是更接近于人类的自然语言和思考方式,让人们能够更顺畅地编程。只不过由于高级语言是外国人先搞出来的,就用了英语作为计算机语言的表述形式。而中文编程的出现,也是顺应这个发展方向,让使用中文的人群能够顺畅地进行编程。这是从编程者的角度来看问题,而不是从计算机的角度看问题。3、中文编程的输入效率并不像多数程序员想象的那样慢,只要结合一个完善的IDE,有时候甚至不需要输入汉字而直接输入拼音的首字母即可。由于编程所用的关键字不多,编程时添加的变量名称重复的也少,所以不会出现多少重码的现象。比如要打出“如果”,只需在编程环境中输入“rg”加上空格即可,并不比英文的“if”差多少。再比如要打出“编辑框”只需输入“bjk”加空格,这就比英文的“textbox”要快一些了。另一方面,在英文编程中,常常需要定义一长串字符构成的变量,以便能够明确表达该变量的意思和用途,而在中文编程中,由于中文天生具有的丰富表意功能,通常只需输入两到四个汉字即可完整表达变量的意义。这就使得在拥有大量代码的程序中,中文的输入效率比英文要高一点。4、使用中文编程并不表明一点点英语都不会,而是在母语和英语之间,前者更加熟悉和运用自如。编程语言中的关键字和保留字虽然只有十几个到几十个,但是编程并不只是使用这一点点关键字而已,你要用到大量的函数、参数、属性、事件、方法、变量、常量等等,这些不同用途的名称多数时候是一长串英文字母,记忆起来并不那么容易。而且很多有用的编程资料和帮助文档是英文的,每次查找文档的时候都会存在一个翻译的过程。而中文编程从关键字到函数、参数、属性、事件、方法、变量、常量等等都是中文名称,并且在其对应的帮助文档和学习资料中,都是以中文呈现,可以做到“顾名思义”、“举一反三”,快速上手使用。