据说汉语编程打破了西方对计算机语言的垄断,使中国人拥有了完全自主知识产权的程序设计语言。据说随着汉语编程的兴起,将极大地推动中国信息化建设的进程。据说汉语编程已经得到了部分省市有关部门的大力支持,很快就会形成一门发展潜力巨大的产业。然而当不少人在了解到汉语编程后,却怀疑它不过是某些别有用心之人泡制的谎言。那么汉语编程究竟是一项划时代的技术呢,还是一则经不起任何推敲的的传闻?
8月6日,《21世纪经济报道》刊发的一篇标题为《汉语编程欲颠覆WINDOWS 是技术还是谎言?》的文章告诉我们,早在2002年3月,中国人民解放军总参科技委常委副主任、中国工程院院士钱七虎,信息产业部电子第六研究所总工程师吴克忠、中国科学院计算机软件研究所研究院员仲萃豪、中国软件标准实验室副主任王芳等十余位离退休专家以新华社内参的形式指出,中国人自己开发的汉语程序设计语言,是从根本上实现中文计算机系统的有效途径,希望国家有关部门给予关注和扶植。此外,信息产业部教育中心总工程师沈林兴还把五笔字型输入法、汉字激光照排系统和汉语编程视为汉字在计算机应用中的三大里程碑,“而汉语编程更具革命性意义”。
也许,我们没有丝毫理由去怀疑众多专家对于汉语编程价值的肯定,毕竟计算机语言是整个软件业的核心技术,是实现人机对话的工具,掌握了属于自己的编程语言就意味着我们不再受制于人。但问题是我们能够做到这一点吗?从理论上讲,汉语编程应当是一种以汉语为描述语言的计算机程序设计语言,在程序设计中体现了汉语语法和逻辑,符合中国人的语言习惯和思维方式,而不是英文程序设计语言的简单汉化,或者是简单地营造一个汉语编程环境。很遗憾的是,目前我们所能见到的汉语编程语言,就只不过停留这个层次上,并没有取得任何实质性的突破。事实上,从2001年到2002年间,北京市科委对某公司的汉语编程项目进行了5次评审,评审的结果是超过50%的专家并不认可汉语编程的可行性。
经过几十年的发展,编程语言超过了2000种,但真正常用的仍然不过寥寥数种。一款优秀的编程语言,需要长期的技术积累,需要提供大量的类库,需要用户的支持,这些都是发展汉语编程必须解决的问题。有人认为用户肯定不是问题,因为中国人自然会首选汉语编程工具,不过仅仅有语言环境的优势显然不足以吸引用户,如果它的技术不过关的话。再进一步假设,即便汉语编程达到了国外编程语言的水平,那么也未必能够得到专业的软件公司青睐,毕竟他们在选择一种新的编程语言时,会更多地考虑开发平台迁移带来的高昂成本以及程序员的适应能力。求伯君在谈到汉语编程时就曾经表示,汉字不同英文,同一个单词有很大的差异性,所以汉语编程也需要你去记忆大量的语法,经常编程的程序员将很难去适应新的编程工具。由此可见,汉语编程要想得到专业软件公司支持的可能性并不大,而一款无法得到专业应用的编程工具是难以取得真正成功的,最多只能成为电脑爱好者的娱乐工具。
学过编程的朋友都知道,程序中绝大部分都是逻辑和数学表达式,与采用英语还是汉语来描述的关系实质并不大。从编程语言的发展历史来看,它经历了从汇编到高级、从面向过程到面向对象的转变,而没有英语、德语、俄语等不同语种工具的说法。所以说把汉语编程与C++、Java之类的编程语言相提并论,未免显得过于夸张。更何况,即便把C++、Java中上万个用英文拼成的库函数名用汉字来代替,对于编程语言本身的发展也没有任何价值,充其量不过是一种 “汉化”工作。从软件开发技术的发展历史来看,历经了算法技术、结构化软件技术、面向对象技术、分布式面向对象、技术软件构件技术几个阶段,一种编程语言的生命力在于它能够不断地适应新的开发技术特点,与它采用的语种没有多大关系。汉语编程要想能够生存和发展,必须吸收国外优秀编程工具的优点,把汉语编程应用到最新的软件开发技术中去。以我国软件产业的现状来看,要达到这个目标都很不现实,还何谈要在汉语编程中体现汉语语法和逻辑、符合中国人的语言习惯和思维方式?
笔者所知道的汉语编程工具主要有两种:汉语程序语言和易语言。汉语程序语言是在1993年由北京百乐航天应用技术公司汉语工控部的沈志斌发布的,最初为PC1.0版,是一个16位版本,只能在MS-DOS环境下运行。2000年,沈志斌组建了北京元易达公司,专门从事汉语编程的产品开发。经过近十年的发展,汉语程序语言目前最新的版本为2.03,能够在WINDOWS9X/NT环境下运行。易语言是曾经和朱崇君一起开发CCED的吴涛于 2000年初开始开发的,这是一款Windows下全中文可视化编程语言,最新版本为 3.0。易语言自发布后,以其类似于VB的风格和彻底中文化的特点赢得了不少电脑爱好者的青睐,虽然没有具体的统计数字表明易语言的用户有多少,但笔者在易语言网站论坛上发现有不少用户提出了在使用易语言的过程中遇到的问题。不过就易语言和汉语程序语言这两款汉语编程工具现状而言,虽然它们都采用了汉语作为程序设计描述语言,但要与主流的程序开发工具相比,还有很大的距离,而且笔者估计这种差距在短期内难以得到改观。
事实上,把汉语编程定位在针对普通用户的编程语言更为恰当,毕竟对于专业程序员而言,汉语作为程序设计的描述语言并没有什么实际意义。更何况以国内软件公司的实力和水平,要想开发出达到微软、Borland等国外公司的编程开发工具水平的产品,基本上是一项不可能完成的任务。开发易语言的吴涛在接受记者采访时就表示,他开发易语言的初衷就为了想让更多的电脑爱好者能够加入到软件开发的行列中来,因为他们中有很多人想学编程,但一看到满屏都是英文,大多就放弃了。此外,对于广大中小学生而言,因为计算机专业英语的水平相当有限,所以汉语编程应该是他们的学习编程知识的首选工具。
总之,我们应当正确认识到国内的软件技术水平与国外的巨大差距,完全没有必要片面地夸大汉语编程的重要性,为了眼前利益不切实际地炒作,毕竟这不过是一项既不成熟、前景也不甚光明的技术。当然,笔者还是衷心地希望汉语编程的倡导者和爱好者们能够务实创新,为提升我国的软件技术水平作出自己的贡献。
【转】
我们技术网站的留言板上有个留言,“我们是搞中文编程推广的专业网站,最近获悉,贵站在搞语言开发,为了推动中国中文编程的早日普及,特邀请贵站有管人员到我站做客,发布贵语言的开发情况,以及相关介绍和下载资源等。”
我们固然是开发了高级脚本语言Koodoo语言,却并不是中文编程,说实在的,我对所谓中文编程还挺反感。
中文编程不是什么新鲜玩意,仅仅把编程语言中的关键字替换成中文,用C的宏替换就可以了:
#define 假如 if
#define 否则 else
#define 真 true
#define 假 false
压根就没啥意义。
在天涯社区有个弟兄对这个分析的很透彻,他认为在操作系统API接口及相关文档都是还是以英文为主的情况下,仅仅是语法中文化是没有意义的,他还取了个愤怒的标题,“汉语编程,在汉芯事件之后中国软件界最大的骗局” ,跟帖也是一边倒地对所谓中文编程口诛笔伐。
透视所谓的中文编程,背后的要害是“中国特色”。企图在科学、技术甚至经济政治领域搞出所谓的“中国特色”。中国特色后面的东西,是保守和落后。就像今天在群里面讨论的,网友“可想而知”说:“所谓中国特色,就是落后而又不承认”,网友“东进语音板卡”也说,“中国特色太要命”,我最后的结论是:中国特色变成了遮羞布和挡箭牌,不和世界潮流合拍、不承认普世价值的挡箭牌。
编程的真正复杂度在于逻辑和对具体编程领域的熟悉,而不在语言,就那么几个关键字都学不会,还编程!确实要中文,你文档中文就行了。
比如3D编程,主要难度在于3D数学和图形学,这两个学精了,3D编程简单的很。
不管是用C++,C,或者C#都一样。
拿数学来说,都是用字母和数字的,包括希腊字母的采用,而不是用象形字。
现实证明了字母比象形字在科学研究方面具有更大的表示意义,象形字可以用来表达语言含义,但不适合科学领域。
再说让老头老太太之类的学编程实在没意义,这种专业性的活就有专业人士来做,其他人只要会用软件就可以了。
计算机编程历来是入门容易精通难,你用中文编程让一些根本没必要学编程的人学习编程,其结果不过是浪费别人的时间罢了,如果他想学编程,那几个英文关键字难不了他,真正对他有帮助的就是文档的中文化。
数学没有什么中国数学,美国数学,法国数学的区别,这些知识都是全人类共享的,实在没有必要搞什么中国特色。