步履蹒跚六十年:中文编程史话

让时光回到上个世纪七十年代。

改革开放的春风吹拂大地,中国再次敞开了怀抱欢迎四方来客,大江南北到处洋溢着新气象。此时的大洋彼岸,微型计算机技术正在蓬勃发展。1971年,英特尔推出了历史上第一块微型计算机芯片,十年过后,IBM制造了首台个人计算机,微软、苹果等公司迎着这波风潮迅速崛起。

IBM PC 5150

然而,当时中国的计算机产业想要乘势而起,却还要面临无数的困难,其中之一就是中文信息化。比如,如何用键盘输入中文;如何让计算机处理中文;如何在操作系统界面显示中文;如何通过软件编辑中文文档等。

86年以前,新华日报的铅字印刷

这是中国近现代史上,古老的中文所面临的又一道槛。在这之前,中国已经进行了白话文运动、启用了简体字、颁布了拼音,汉字再次简化和汉字拉丁化也排进了时间表。日本、朝鲜、越南等领国,均对文字进行改革,不同程度地去汉字化。百年间,汉字文化圈丢城失地,仅剩的中华大地似乎也在弃它而去。

文字必须改革,要走世界文字共同的拼音方向

当时外国专家曾断言:“只有拼音文字才能救中国,因为汉字无法进入电脑。”,国内某知名刊物也称,“方块汉字在电子计算机上遇到的困难,好像一个行将就木的衰老病人。历史将证明,电子计算机是方块汉字的掘墓人,也是汉语拼音文字的助产士。”

当然,这些预言统统都没有发生。1975年,王选开始领导研制计算机汉字激光照排系统,使中文印刷业告别了"铅与火",直接跨进"光与电"的时代。1983年,王永民发明了五笔输入法,真正解决了汉字的键盘输入问题;同年,严援朝研发了第一款汉字磁盘操作系统CCDOS,有了中文操作系统;1985年,倪光南发明的联想汉卡开始销售,奠定了这家国际品牌之名;1988年,求伯君研发了中国大陆第一套文字处理软件WPS,至今不衰。

CCDOS

那是一个属于中国第一代程序员的年代。看衰中文前景的预言被逐一打碎,中国人要去解决中文信息处理的各种问题,软件汉化、手写识别、语音输入等技术等均有人涉足。我们可以想象,在当时,除了必须解决编程代码使用中文字符串的问题,实现和运用一种中文编程语言,也是肯定会有人去做的事情。

中文拉丁化的趋势在80年代被彻底扭转,但改革开放后的中国,又必须放开怀抱去学习国外先进文化。当时国内还有大把的文盲,受过良好英语教育的人更是寥寥无几,这就需要无数的英语人才。1977年恢复高考后,中国即开始在大城市恢复中学英语教学;1978年,英语再次被列入高考科目;1986年,我国开始实行九年制义务教育,初中开始全面教授英语。现如今,活跃于我国各大IT公司的八零后程序员,正好赶上了这波好时候。

image

中华人民共和国义务教育法

实际上我国最早的中文编程语言,可以追溯到上个世纪60年代初期,它是由中科院计算机所设计的BCY语言,同时这也是我国最早的实用高级程序语言。仲萃豪和董韫美作为我国第一批计算机学家,以ALGOL60语言为基础完成了具体的设计和编译器开发。

所谓BCY,是指“编译程序语言”的汉语拼音缩写,运行于我国自行研制的第一台电子管大型通用计算机119计算机,由磁鼓、磁带进行输入和输出。那么由BCY语言编写的程序到底长什么样子呢?很有幸我们今天仍然能在知网上搜到几篇相关的论文,得见这些祖师级代码的真容。

BCY语言绘图语句 张金山 1981

虽然BCY语言在进入微机时代后被迅速淘汰,但不得不说,中国的第一代计算机科学家,就已经意识到了中文在编程语言中的价值,即便他们个个名校毕业,有欧美留学背景,有些甚至当选了两院院士。

在那个时代,除了中国大陆,港澳台地区的有识之士同样在为此努力。比如被誉为“中文电脑之父”的朱邦复,早在五笔输入法之前,就在1976年率先创立了“仓颉输入法”;1980年,他与宏碁公司共同发布具有“中文操作系统、中文编程语言、中文套装软件”的天龙中文电脑;次年,又发展出中文终端,之后他研发了自己的“汉卡”。

“中文培基”就是朱邦复于80年代初期发明的入门编程语言,它的语法和BASIC语言基本相同,进行了简单汉化。

image

中文培基

几十年过后,现如今已经很难在网络上找到中文培基的更多资料,但如果我们用谷歌图书进行搜索,还可以找到一本华通电脑1983年出版的《小神通中文培基语入门》。只可惜没有电子版本,所以无法窥见更多信息了。

在中文培基之后,从上个世纪八十年代到现在,各种中文编程语言被海内外华人程序员不断的创造出来。这些语言的层次不一,语法各异,有些具有完整的编译和开发环境,有些可能只是简单的汉化,它们多数只是对国外编程语言的生硬模仿,并没有找到适合汉语的编程路径。

比如诞生于本世纪前十年的“周蟒”和“中蟒”,是基于Python2开发的中文编程语言;丙正正基于C++开发;O语言基于汇编语言开发;伙计培基基于BASIC语言开发;习语言基于C语言开发;中文小海龟基于Logo语言开发;PerlYuYan则只是一个Perl模块。

90年代《软件世界》文章的中文汇编语言

进入九十年代,在前总统克林顿执政时期,美国开始了著名的信息高速公路计划,互联网时代正式拉开序幕。在中国,经历过八十年代的蓬勃发展后,到了九十年代初期,国人曾骄傲地说,“只有中国掌握了计算机汉字处理技术”。同时,逐渐步入中学阶段的80后,不少已经能够在高中阶段接受基础计算机操作培训。

可到了九十年代末,中国的软件产业遭受了重大挫折,连中文处理这块最后的领地也要失去了。

Windows操作系统经过多年的持续改进,终于在Windows3.1后取得巨大成功,计算机软件开始进入图形化和规模化时代,一个程序员就能撑起一款操作系统、搞出一款办公软件的时代结束了。Windows3.2开始直接集成了中文支持,直接让诸多依附MS-DOS的中文DOS系统失去了意义,大量盗版软件的流行,让OFFICE办公软件全面占领国内市场,规模弱小的国产软件公司则因盗版直接失去了收入,制表软件CCED逐渐衰亡,文字处理软件WPS苟延残喘,在信息化行业总产值不断攀升的情况下,国产软件却每况愈下,直到今天也没能翻身。

Windows 3.1

据说目前全球有几千种编程语言,可是一个程序员能熟练掌握的,通常不过一两种,因此目前真正流行的编程语言也就十来种而已。剩下的,有一小部分在圈子里使用,用于解决特定场景下的问题,绝大多数的语言都没机会长大就会中途夭折。也就是说,在当时中国软件行业整体衰弱的大环境下,这几个中文编程语言,死掉是常态,活下来才是偶然。

而在今日,唯一活下来的中文编程语言,正在程序员社区语言鄙视链的底端艰难生存,垃圾、骗子、病毒、从入门到入狱是它的代名词,它就是易语言。它的开发者吴涛不是科班出身,没有名校背景,没有留学经历,连时代似乎也从软件英雄主义进入到互联网英雄主义了。然而他却完全依靠个人,开发出了这款功能完备、配套工具齐全的编程语言。

吴涛和他的易语言

1998年,当时中国软件产业已经风雨飘摇,DOS版本的CCED已经无法适应时代,视窗版本的CCED98也并没有让这款软件翻身。当年,吴涛加入CCED2000项目开发组,1999年,CCED2000面世,但市场反响平平,此后逐渐走向消亡。

同年,我国大学开始全面扩招,保证了接受了义务教育的80后程序员们,能够顺利进入大学接受正规的计算机编程教育。

离开CCED的吴涛认为阻碍我国软件事业发展的根本原因在于,中国人没有真正属于自己的编程语言,特别是针对初级用户的编程语言。对于那些水平高超的专业程序员来说,编程语句的中文化并不具有什么太特殊的意义,有时甚至显得多此一举。但是对于那些占了绝大多数的初级用户而言,能够使用自己熟悉的中文来进行程序设计,无疑是一种非常理想的选择。

在长期的开发实践中,虽然吴涛已经能够熟练地应用各种国外开发工具,但他依然对此耿耿于怀。于是在2000年,他开始独自开发易语言。起初的开发和推广遇到了非常大的困难,直到2001年8月,当时的天极网编辑王重浪通过远程采访的形式,对他进行了第一次正式报道,易语言开始迅速为大众所知。

image

易语言代码

当年秋季开始,教育部要求全国城市和县城小学逐步开设英语课程。如果说一门流行编程语言通常需要十多年才能兴起的话,易语言未来的潜在目标用户群体,可以说从出生那天起就已经消失了。

一门编程语言的成功离不开天时、地利、人和,就好像没有互联网,就不会有php的流行一样,没有Chrome浏览器,就不会有今日的Node.js。对于易语言而论,当时中国的电脑很不普及,接受过良好英语教育和大学教育的人还非常少,恰好当时学电脑是全民风潮,计算机专业逐渐成为热门专业。易语言的出现解决了许多基础较差的初学者入门编程的难题,全中文界面和代码,便捷的可视化开发环境,丰富的类库,互联网普及后迅速壮大的社区,让初学者可以在极短时间内入门,搭建起高大上的GUI程序。

易语言开发环境

应该说,人们对新生的易语言,虽然也有非议,但更多的是赞誉。王重浪在这篇名为《中文编程不再是梦想》的报道开头写到:“用中国人自己的母语编程?似乎是天方夜谈。然而,这样一种梦想正在变成现实。”

吴涛此后迅速成名,2004年可谓他的人生巅峰。他被《程序员》杂志评为“影响中国软件开发的20人”之一,和求伯君、谭浩强、李开复、王志东、陈天桥、雷军、丁磊、张小龙等时至今日依然响当当的人物并列。

当年吴涛成立了公司,2005年易语言被列入国家火炬计划,开始在一些中小学推广,2007年,易语言获中国十大自主创新软件产品奖,为当时暗淡的中国软件产业,带来了一丝光亮。

影响中国软件开发的20人

然而,吴涛的努力和时代造就了易语言,但吴涛的沉寂和时代的变革,又让易语言很快陷入风波。2004年,他在一家名为大友的大连房地产公司的五千万投资下,成立了大连大有吴涛易语言软件开发有限公司,任公司总经理。此后吴涛创新者的人设很快被蹩脚商人的形象所代替,他在互联网野蛮生长的时代,把精力放在了卖软件授权和拉政府扶持上,语言本身却再无重大创新,各种问题也没有解决。

易语言虽然提供了全面的中文支持,但它高度类似Visual Basic。在那个时代,以模仿起家在中国本属常事,但此后易语言却没有走上逐步创新发展的道路,没有找到最贴近中文习惯的编程表达方式,一直背着抄袭、骗子、绑架的骂名。

电脑报2004年关于易语言的报道

到了新世纪,商业编程语言经过激烈竞争,只剩下几个巨头;Windows桌面软件开发市场逐步下滑,哪怕老牌的Delphi也日渐没落;新兴编程语言几乎都是开源免费、跨平台、多用途,个个都标榜简单易学。而易语言闭源、收费、进展缓慢、社区乏力,64位、跨平台、异常处理等功能统统没有,这让他无法适应大型软件开发。

编程语言毕竟要靠实力说话,而不是靠情怀。与此同时,大量从小接受英语教育,通过扩招进入大学,接受正规科班教育的八零后程序员,正被教育体系流水线般源源不断的供应给迅速壮大的国内互联网公司。对于这些新生代程序员而言,英语的障碍和入门的不易已经不是阻碍他们的难题;对于这些大量使用开源技术的互联网公司而言,不能阅读英语文档的程序员,很难获得工作机会。

而大量用户使用易语言开发游戏外挂、电脑病毒、黑客软件,使得易语言负面新闻不断,语言本身的特点又导致极易被杀毒软件误杀,使得许多爱好者不得不改换门庭。

在中国程序员群体飞速增长的情况下,易语言虽然依然保有部分用户群体,但中国盗版软件的大环境,让养活公司的注册费都收不到。到了2012年,易语言已经到了在官网长期“卖身”却无人问津的地步。

四处求存的易语言

在易语言之后,中国又出现了其它一些个人主导的中文编程语言,但都寂寂无名。现如今,各种通用软件、游戏、电影纷纷推出官方中文版,但在各种专业领域,英语却有大一统的趋势。比如2017年,国内航空管制开始强制使用英语交流,而在学术上,发表英语论文似乎已经是许多专业的科研人员成为学术大牛的唯一选择。

其实早在八十年代,那个时候的技术人员,就已经对中文编程语言的意义有了准确的认识。在1983年,一篇名为《高级语言扩展汉字处理功能——对COBOL和FORTRAN语言赋予汉字处理功能的实现》的文章开头,就精辟的写到:

“尽管这些语言在世界上应用非常普遍,但它们基本上都是以英语为基础的。计算机技术在我国许多领域的应用中,必须首先解决汉字处理问题。另外,若设计以汉字为基础的高级语言,虽能解决我国的一些问题,但它却失去了国际标准化这一极大的优点。”

中文编程,以及中文在其它类似专业领域的逐渐式微,其实不在于它们没有意义,而在于融入英文的生态更有意义,至少在当前是这样。

诚如这个世界,统一与分裂,保守与创新,合作与对抗,是一个恒久不变的话题,如何根据时势取舍折衷,才是智者所为。中国近现代化过程中,大力吸收了欧美文化,但却没有抛弃传统文化;中国阻止了汉字拉丁化,选择了全民学英语;中国解决了中文信息处理的一系列问题,却使用英语编程以便广泛利用国外成果和开源社区的力量。而就开源社区本身而论,虽然程序员们在极力的避免造轮子,但又总是在造轮子。

正所谓,流水不腐,大浪淘沙。

就在前些天,GitHub上一个叫做文言文编程语言的项目火了。在新一代中国程序员中的风云人物尤雨溪的带头点赞下,短短几天内就收获了万星。文言文编程语言更贴近中文习惯,而且已经超脱了现在流行的语言,可以说,为如今一潭死水的中文编程语言搅起了一点涟漪,原来中文之美和代码之美,可以如此的统一和谐。

image

wenyan-lang

在一片叫好的同时,来自国人的非议自然也纷至沓来,“史上最烂编程语言”,“为什么不用甲骨文”等的评价开始出现。不过相比“被中国人骂的最惨的编程语言”,文言文编程语言的待遇比易语言还是要好得多。我们都爱新生命,愿意给一个婴孩无限的期望和机会,但同时,我们也应该尊重前人的努力,虽然某些时候限于能力和命运,几乎注定会失败。

另一方面,中文编程并不等于中文编程语言。

最近两年,一个叫吴烜的硅谷工程师活跃于v2ex和知乎等社区,宣扬他的中文编程理念,就是基于主流编程语言开展中文编程实践。他认为程序员社区对中文编程有两大误区,第一是“只有中文编程语言才应该用中文命名标识符”,其次是“中文编程语言只要完成中文语法设计就行”。

中文编程常被诟病者,就是语言中有限的关键字用什么语言并不影响编程思想的表达。但代码中关键字只是少数,更多的是各种命名,这也是许多初学者在学会了if、for等语句后就止步不前的重要原因之一。中文标准库的设计和积累,则是语言实用化的最重要因素。像易语言也是因为附带丰富的中文库,让新手可以非常迅速开发出一些实用的小程序。

吴烜的理念是否得当我不得而知,能否实现也难以预料。即便是全民英语的今天,英文命名、英文注释、英文文档,依然困扰着许多程序员。另一方面,在流行语言已经拥有巨大的标准库和第三方开源项目的情况下,这个轮子是否值得造,也值得商榷。

也许历史能给我们答案。1919年,为了表示对一战最大赢家美国的尊重,《凡尔赛和约》成为世界上第一份正文用英语书写的国际条约。这标志着英语的崛起,法语的衰落,此后英语逐渐成为全球通用语言,至今刚好一百年。一百年对于人的生命而论太久,但对于一个民族却很短。

行路难,行路难,多歧路,今安在?长风破浪会有时,直挂云帆济沧海。