整理屋子,故纸堆中翻出了93年的电脑报合订本,偶有兴趣的翻看了一下,一不小心就荒废了一下午。跟随着编辑的脚步,脑海中记忆的门缓缓的开启了。
还记得SPDOS+WPS吗?我是95年在初中机房接触SPDOS 1.0 + WPS的,坐在长城单色显示器边,战战兢兢地输入“SPDOS”,"B:","WPS",“西山DOS”系统便启动了。当时特别喜欢GW-Basic, 却非常讨厌WPS--原因是五笔字型的缘故吧!看了93年电脑报上的《WPS传奇》,介绍求伯君白手起家开发WPS的故事,才知道原来这东西最初是汇编一行行敲出来的。不得不佩服软件侠客时代的老英雄们,在DOS这种简陋的单任务系统,只能靠中断以及后台驻留(TSR)来模拟多任务。内存不足,要自己动手写交换覆盖管理,把EXE拆成许多小文件,用到哪个模块,调入哪个。现在的我们,谁还有耐心趴下身子静心研究哪怕一天的问题呢?
每一期电脑报,都有一个GWBASIC音乐小程序,用朴素的 PLAY 语句驱动主板蜂鸣器奏出一段名曲。打开虚拟机,敲入GWBASIC,又想起了中学时代为了参加科技节,每天写完作业熬夜捣鼓成绩管理软件,最后发现 CCED (后面聊)本身就有统计功能,而Windows 3.1里的Office 更牛X时的懊恼与吃惊。那个时代,是一个靠“趣味汉诺塔程序”便能占据《电脑报》半张纸的时代,很多笔者自己连《数据结构》里的基本问题都搞不清楚,但那股子冲劲与探索精神却是很可敬的。看看笔者单位的落脚,“XXX棉纺厂”,“XXX矿务局”,一种温馨默片的感觉油然而生。
经典的 Turbo C 2.0, 蓝底黄字的界面,那个几句话便可调用中断,让鼠标器在图形模式下显示出来的大牛IDE。今天,传奇的Borland已经日落西山,TC系列当年可是雄霸多年的主流C/C++开发平台啊!看到报纸上文章讨论“多维数组指针”、“备份CMOS(就是Bios)”小程序,才觉得那时候程序员更像是初级Geek,而不是码农。其实反观93年国外水平,国内的计算机技术还是很落后的。93年,Borland已经出了Turbo C++、Borland C++平台,上面的 CUI(字符界面)库可以开发出与IDE同风格的字符用户界面,其事件机制设计在那个时代堪称精绝——这是我2003年才了解到的事情,那个时候有时间研究这套当时已被淘汰的UI库,觉得Borland 真的不应该垮掉。
<24针打印机断针免修程序>、<软盘0磁道损坏的修复方法>、<长城彩显高压包故障排除>...那是个电子电器GEEK向电脑GEEK衍生的时代,是一个用万用表自己在电脑办卡上查找被击穿的电容器,而后更换的时代。大学中学习的电子线路,早就还给了学校,现在还有谁能动手修一修坏掉的电器呢?我是认识一个GEEK的,自己在家里有示波器、信号发生器一套设备,自己焊接DSP的外围电路做板子,这是兴趣使然,93年电脑报上的作者们,也许都是真正热爱技术的人吧!
翻阅着王选激光照排诞生记,随着计算机的普及,同样诞生了一批英雄。中文字表软件CCED, 他与wps相当于DOS下的 Excel +Word. 其实,CCED的表格功能非常强大,中学学习一个学期,才基本搞定它。到了DOS暮年,鲍岳桥的UCDOS已经把DOS下的WS做到了极致。UCDOS是我见过的最为完善的汉字系统,它甚至自己实现了许多Windows 3.1 的功能,包括窗口管理器UCShell,以及所见即所得的字表处理软件UCTAB,从界面风格上,极有可能形成了自己的API,可惜生不逢时,在windows 95\98和Office 97的打击下被屠戮的片甲不留。
合订本的附件上,刊登着AutoCAD 的命令一览、自编软件交换的联络方式。在没有互联网的93年,靠软盘、邮编,发烧友们交换着PCTools, TT , Turbo C2这些经典的软件,也交换着 DOS时代的病毒。为了得到一份HD-Copy或者 PCTools,跑遍了小城的各个角落;为了从朋友家里拷贝Turbo C++ 3.1、QB45、Foxbase+,买软盘奔波N次,用ARJ压缩分卷,跑的一头大汗,却非常开心(不是后来的柯尼卡或者假索尼,那可是正品的5.25寸开口纸袋大盘)。
------------------------------------------------------------------------------------
合上书本,揉一揉朦胧的双眼,仿佛时光真的回到93年。那时的我,在小学机房里的长城学习机上写着LOGO小乌龟。为了支持我的兴趣,父亲咬咬牙给我买了一台小霸王学习机,每天放学回家,用GBasic写着玛丽奥拯救公主的小游戏。也许是看到我每次断电前用笔记本抄下这些程序,父亲下狠心一定要捣鼓一台电脑出来。于是,每天放学后,看到父亲在小霸王学习机前费劲的敲打着键盘,两个月的时间,愣是把五笔字型练得炉火纯青。他找到领导,说自己能打字(那时小城稀缺打字工),果不其然,没过多久,一台崭新的486DX-100兼容机便摆在了父亲的办公室。从此,我开始了下课后骑自行车去办公室写程序、晚上吃完饭继续写的习惯,也真正学会了DOS中断调用、 DEBUG调试很多基础知识,工具从学校的GWBASIC换成QB45、TPascal、TC2。
时光回到93年,爷爷、奶奶、外婆、外公、舅舅都还在世,他们的背影在脑海中远去——如果<蝴蝶效应>可以成真,真希望能够在读它时穿梭时空,让我再次和他们拥抱!偷偷瞥一眼身后熟睡的妻儿,退休的父亲在隔壁屋中费力的辨识着屏幕的文字,再也止不住脸上的泪水,它就像这些年永不停歇的脚步——不经意间,脑海中的字眼电光般闪过,LOGO, GWBASIC, Turbo Pascal, TC2, TCPP3, Borland C++ 5, VC++5.0, VC++6.0...VS2010, QT, Python,...沉浸在自己世界中的我,冷静下来才发现,原来早已青春不再。额头的皱纹,麻木的腰颈,手腕上的老茧,磨得没了字迹的键盘......代码的世界,行云流水,现实中,青春远去,理想犹存。
时光回到93年,小时候爸妈经常问我,阿孩为什么要上学?他们说,人为追求真理而上学。这对家境不好的人来说,也许算是非常超前和不切实际的教育了。但这么多年来,抱着这样执着的信念,为了追求一个又一个未知而不断的学习,却成为我生活的巨大动力。把兴趣作为工作,我做到了,把工作过程当成艺术品的雕琢,是我的信念。然而,回首这么多年来的一个个作品,却感到绝望与无助。正如我以前写过的一样,一个项目的生命周期最长很难熬过10年,个人独立维护的项目难至5年。那些曾经另你开怀的成就,那些添注在关键部位的注释,所有的用心良苦都随着技术的革新、工具的换代很快灰飞烟灭——再没有机会告诉别人,这里该如何处理线程才不会死锁;再没有谁能够在“关于本软件”的对话框中看到你的邮箱地址,也许只有在CSDN、CodeGUru的代码仓库才能找到你的Demo。 被忘记,是你命运中逃脱不掉的桎梏,因为IT这个行业天生就是如此残酷。
雕刻的花瓶百年后身价倍增,抚育的代码从发布之日起注定被人遗忘,这就是作为程序员最大的悲哀。明知道被遗忘,却仍然孜孜以求,呕心沥血,无论迫于生计或是出于纯情,都是源自桀骜的内心. 也许就是怀着这种想法,才有了开源世界的兴旺。无数的人抱着让作品更久的生存在这个01世界中这个信念,把所有倾注心血的东西无偿公布在网上,就是相信有一天在某个人的论文中、某个大项目的一角,能够找到一丝痕迹,即使无从知晓,也倍感欣慰。没有传播的代码是死的,没有对尽可能多的人施加影响是对自己智力的亵渎——程序员作为一个工匠最朴素的执着应该受到尊重。抱有这种胆量的程序员们,你们的生活又怎么样呢?