先讲一个寓言,这个寓言是我自己编的,可能不那么动听:
某人在家具店里看得眼花缭乱,非常喜欢那些精美的家具。于是他回家买了斧头、锯子、榔头、铁钉和木料。然后自豪地宣布:“我也有精美的家具了。”
类似的寓言我还可以编出许多许多,比如买一堆铁和铜,大声说“我家什么电器都不会缺”。比如买一堆油、盐、味精说“我可以在家享受饭店的美味了”。……
饭店的饭菜比你自家的好吃,不仅仅因为饭店有更全的调味品,更重要的是专业厨师更加熟悉调料的配方和烹饪的火候。家具厂里制造的家具漂亮,不只是因为厂里有木料和工具,更重要的是他们更懂得样式的设计。这个道理似乎不用我来多说。但而,到了编程界,却有人不懂这个道理。
“易语言”,据说其最大的突破就是“易难为易”,从此编程变得容易了。据说它已经列入“国家火炬计划”,还据说已经有“易语言在中小学实验与推广项目”启动。……多么令人兴奋啊,中国人终于可以用自己的汉字编写程序了。多么令人自豪啊,中国的汉字终于与编程完美结合了。我似乎看到了好久以前WPS和五笔字型给国人带来的自豪与疯狂:
在WPS以前,通知、会议记录、工作报告还得用手写、或者用铅字排版。西方人的WS虽然可以处理汉字,但是支持得不那么好。这种情况下,WPS的问世解决了中国人不能使用电脑的尴尬,让中国人从此在计算机界站了起来。五笔字型让汉字的输入速度提高到了每分钟一百二十字以上。从此,中国人带着计算机驶上了高速公路。
易语言毕竟和WPS它们不一样。如果说易语言让汉字参与到编程中来也是一个自豪的突破,那简直让我哭笑不得。
如果把编程序比喻成二万五千里长征,那么,学习语法知识充其量只能算二万五千分之一里。我不知道“如果(变量1〉变量2)”与“if (var1 > var2)”之间究竟有多大的差别,也无法想像“标签1.标题=“您好””与“Label1.Caption = "您好"”相比究竟有多大的优越性。但是,我已经知道的是,一个程序要实现功能,不是由命令说了算,而要由算法来决定。ANSI C++一共只有六十几个保留字,加上不多的几个运算符、括号等,却在程序员手里组成了数十万行、数百万行甚至更长的程序代码。结构化的程序设计只有顺序、分支和循环三种结构,却满足了世界上各行各业的须求。这一切都不是靠字母直接拼凑的,就好像建造奥运鸟巢馆并不是扎钢筋、也不是浇灌水泥一样。算法才是程序设计的灵魂。
编程工具可以有所改善,易语言确实做了很大的努力。但是编程工具无论多么优秀,都只能简化操作,不能简化算法的设计与实现。比如现在的绝大多数工具都提供了自动缩进对齐、代码提示、自动完成等优秀的功能,但是它无法替我们完成算法,哪怕是其中一行。想通了这点,我们可以要求编程工具更加便利,但是我们也不用过于追求这方面的进步,更不用因此而欢欣鼓舞。
我承认,易语言也可以有算法。但是,易语言与算法注定不可能和平共处。要么学会算法的人抛弃了易语言,要么易语言阻碍了算法的练习。当一个程序员正式进入了编程的殿堂,完全娴熟于各类算法的设计的时候,他必然要抛弃易语言,改用其它看起来烦琐但是非常灵活的语言。另一方面,易语言的特性会让人迷失方向,沉迷于用鼠标、用汉字来“编程”,白白浪费了学习算法的大好时机。——顺便说一下,VB也一样有此缺点,让人误以为拖拖鼠标就能编程。
易语言还有一个值得“自豪”的做法:用流程图代替死板的代码。其实这的确是好主意,在此以前,Macromedia公司早就在Authorware和Flash中实现了这种创意。但是它们跟易语言不一样:Authorware简化到不用输入任何代码,只用鼠标拖动图标组成流程图即可;Flash的Action虽然要写代码,但是它提供了所有命令供选择,简化到了只剩下填入参数的地步,而且Flash还为喜欢亲自写程序的人设计了“专家模式”。而易语言却将流程图与手动输入代码结合,而且是汉字,于是变得不伦不类。——不过话说回来,提供了带箭头的线条毕竟比不提供要清晰一点。虽然我不喜欢,但是我不反对别人喜欢它。
我粗略地看了一下易语言的网站,在它的首页上,列出了二十几个“特性”。然而,仔细看看不难发现,这些“特性”中,除了“中文”功能以外,几乎都是其它编程工具的共性。易语言的特点无非是支持中文而已。
“易语言支持汉字,从此我们可以用自己的文字编程了”。这句话说出来难免有些让人感动。但是把“if (var1 > var2)”写成“如果(变量1〉变量2)”明显是“为了汉字而汉字”。好像前几年的一条新闻:某贫困镇为了风光与体面,规定街道两侧的居民必须造四层楼房,于是有许多家庭在朝着街道的一面砌一道四层楼高的墙,墙的后面还是残破而矮小的窝棚。
从网站上那些新闻的标题看来,不仅易语言的发明者在沾沾自喜,还有好多权威人士和权威机构在一起得意忘形。比如“中国人民解放军总参谋部计算技术研究所”的专家,比如“国家科学技术部火炬高技术产业开发中心”。我无法知晓他们是怎样想的,只能大胆估计一下:第一个原因是易语言入门要求低,可以让那些见英语就头疼的人也进入程序员的行列,第二个原因大概就是出于自豪感了。
对于第一个原因,我想也许有点道理。程序设计属于逻辑与推理,学英语则是记忆与背诵。据说属于左右两个半脑。易语言可能使学不好英语的人也成为程序员,自然值得欢欣鼓舞。但是问题在于,连if、while这几十个单词都背不出来的人,逻辑方面真的会很出色吗?如果是真的,那么他又如何跟别人协作?莫非将来会有一大批这样的人组成的团队?
或许大家还关心那些低年级、甚至是幼学园的小朋友,他们英语不行,所以要用汉字。但是这点明显也站不住脚:他们连“整数型”这几个字都认识了,就是学不会Integer或int,可能吗?
那么第二个原因呢?自豪感?或许是的。中国人引以为豪的方块汉字终于可以编程了,赶快给他发个“火炬计划证书”吧,证书上的项目编号为“2005EB010211”。不过,我还有个建议:把项目编号改为“贰零零五戊乙零壹零贰壹壹”,这样可以更自豪。
说到底,易语言就是一个浮躁的产物。先是有人哗众取宠,然后有权威人士和权威机构引以为豪。于是,一个风光体面、由四层楼妆点的“富强镇”出现了。
出现这样的浮躁并不是偶然的,权威人士和权威机构跟着一起浮躁更不是偶然的,纠其原因,还在于教育制度。说起我们的教育,并不是数落它失败了几次,确切地说是从来就没有成功过。我们是在“学好数理化,走遍天下都不怕”的口号中长大的。于是,我们不懂历史与哲学,不懂社会与人文。“数理化”可以培养科学家,但是我们没有培养比西方更多的科学家,相反,因为不注重社会与人文学科,我们的国民素质比西方国家差了十万八千里。
“入门低”成了易语的响亮口号之一,入门低无非就是让更多人可以加入,但是结果自然是浪费多数人的时间与精力。就像“学好数理化”没有培养出更多优秀的科学家一样,“易语言在中小学实验与推广项目”也不可能培养出更多的程序员,即使能,也没这必要。对整个社会来说,必竟只要极少数人做程序员,绝大多数人只要学会使用软件就可以了。
浮躁的制度,造就了浮躁的机构,培养出浮躁的人才,人才发明了近乎于垃圾的“易语言”,机构再跟着鼓励一把。好一场闹剧!
我似乎不该把易语言批得一无是处,至少它还有个好处:它可以让以前不敢接触编程的人尝试编程,进而走进编程的殿堂。然后,总有一小批人从此迷上了编程,学会了算法的实计与实现。他们即使最终抛弃了易语言,那也要感谢易语言带他们入了门。就像幼儿园不能培养艺术家但可以培养兴趣一样,易语言也可以有此作为。但是幼儿园永远不能对世界宣布“我们培养了艺术家”,易语言的发明者与追随者也没有理由那么自信。
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!

用易一个半月
未填
未填
未填
时间:2007-09-14 21:30:06