整理:叶子|出品:OSC开源社区(ID:oschina)
大家好,我是小林。
昨天,#王小波逝世25周年#的话题登上热搜,这位英年早逝的天才的过往不由浮现在我脑海。
说起王小波,喜欢读书的人,对他都不陌生,他是中国最富创造性的作家之一。
但其实,王小波除了作家的身份外,还是一名程序员,并且是一名很牛的程序员!
王小波可以算的上中国早期的程序员,在90年代初的时候因为国内应用软件缺乏。
爱捣鼓东西的王小波利用闲暇时间学习了汇编和C语言,编了中文编辑器和输入法。中文编辑器和输入法任何一个都是大牛级的极客才会去尝试的东西,比如求伯君。
王小波通过卖软件还挣了些钱,当时很多中关村的老板要拉他入伙,当然写代码这种来钱快的活对当时的王小波还是有吸引力的,所幸他还是拒绝了人家。
王小波一个写小说的为什么成了程序员?
这还得慢慢说。王小波大学在人大学的是贸易,毕业后在人大当了几年老师。后来去了美国匹茨堡大学读经济的研究生,到那老师跟他说你就是一写作的奇才,以后必能称霸话语文坛。
老师又说你在我这什么都不用干了,好吃好住,毕业证照发,抓紧时间写小说。学成归国,王小波接着又回到人大做统计学的讲师。
因为做统计,各种分析工具是必不可少的,以前人手工计算,有了计算机当然最好使用计算机,基本理工科的都知道用MATLAB做个毕设和作业是多么重要。
所以当时计算机对王小波的工作是相当重要的,但是90年的时候,软件相当稀缺,电脑又相当不智能。
王小波不得不自己写软件,当然开发软件也不是那么简单,所以他先是学会了FORTRAN,汇编,C等各种语言,接着又要学习数据结构,算法的相关知识,还有编译原理。
在做出中文编辑器和输入法软件,解决了自己的需求之后,王小波对写软件的兴趣已经没有多少了。
因为他觉得写软件可以赚钱,写小说同样也可以赚钱。
处于一个程序员的修养,王小波还是不断地从数据结构和算法来优化这两个软件。
王小波最开始是在XT电脑编写软件,这台电脑他用了足足7年。
图源于网络:XT电脑然后在年的时候,王小波换了电脑,买了一台电脑,这在当时是一台奢华无比的机子了,他自己也是这些认为的,高兴得一塌糊涂。
图源于网络:电脑不过,这台顶配机子还是满足不了王小波的要求,后来他把时间花在了不断地去优化这台机子上面。
以下内容是从王小波和朋友的书信里收集了他所做软件的各种信息,汇集起来,可以了解小波在软件方面的造诣。顺序按照原文的书信顺序,应该也就是时间顺序。
年12月回来之前我曾往人大一分校计算机站写过一封信,问他们可要带什么软件,主管的工程师回了封信,我没收到。回来之后人家还提到此事。现在国内软件一面混乱,又逐渐有形成市场之势。
首先以年兄学统计这一事实来看,回来做事非有会用的软件不可。Macintosh根本就没打进中国市场,你非带几个可用的IBM微机软件回来不可。至于什么机器上能使倒不必太担心。我这个狗屁计算机室,IBMPS/2就有二台。AT机也不少。
SASSPSSStatistx都有,可代表国内上等一般统计微机房的水平,可就是少了一种宜于作统计的语言。年兄如有APL(Aprogramminglanguage)之IBM微机本,可给我寄copy来。
我在美还有一个户头,连manual复印费一并写支票给你们。Glim我也没有,如年兄有便人可捎来。邮寄太贵,能省就省吧。
年1月我现在正给北大社会学所做统计,手上除SPSS没有可用的软件,国内这方面很差。我现在会用FORTRAN,编统计程序不方便。闻兄谈起你们用S语言,不知是否好用。工具书也不知好找不。
不管好歹,烦兄找个拷贝给我,要就算了。照我看只要能解决各种矩阵运算就够:当然也要有各种分布函数。反正也是瞎胡混,我就算努把力,少混点吧。
年5月晓阳到底也加入了IBM的行列。照我看,苹果机还是买不得。因为IBM-PC的兼容机队伍庞大。INTEL又总能推出新一代CPU,将来还有大发展。买微机钱的投资是大事,时间、精力投资更为巨大,买兼容机是明智之举。
我最近可能调入人大,投奔班长。最近胡思乱想想出了个理论来,还没认真推导,大抵是设立多个Dummy(两分变量)构成的联合分布,其合计样本点构成一球面,点到点的距离以总误差计算。所以一样本点的对点就是它的否,误差最大。其余的正在想。
年2月兄谈及IBM中文软件不可用,估计是图像版有问题,可至有Colormonitor之机器上一试。Mac机国内亦有,唯不及美国多也。
年3月你寄来的严氏2.0A我也收到,还没用。因为一者是3盘要倒,二者我自己写的WK也有重大进展。我也自做了词组功能,是棵B树,我觉得自写的软件自用,感觉是最好的。
词组用处不是很大,主要用于定义人地名等专有名词,但是严氏软件对我还是有重大启示,拼音加四声是个极好的主意,写起东西来声韵铿锵,与其他软件大不一样。
自写一遍,从分页到编辑键分配,都能合乎自家习惯,不是存心狗尾续貂也。如能见到严氏,可代为致意。
年5月前次寄来软件,上机一试发现非有浮点处理机不能运转。
因为缺少软件,国内机器一般不装协处理机,冷不丁撞出您这一件来,搞得不大有办法。
年5月闲着没事搞了个发明。
原有中文软件是用线扫描方式出汉字,我做了一个用调整字模发生器方法出汉字的系统,自以为很优越,可惜还未找到用户。用此法可以很容易地在西文软件上出中文窗口,还在SPSS上加了几句骂娘的话。
年9月晓阳托人带来软件,周转很多日才到手里,软盘有些污损,坏一片烂一套,不可用矣。
但是十分感念晓阳的好意。去年托人带来的中文软件(严氏By×),我用着尚好,而且又用C语言仿编了一个,程序是我的,拼音字典是人家的,执此招摇撞骗,骗了一些钱。干这个事,熟悉了C语言,都是拜小阳所赐。
年9月不过现在我对微机已无兴趣,因为发现写小说也可赚到钱。
年1月编译程序一盘(有说明书,见shou),源程序一盘。我的音典与严氏同名内容不同。功能上与严氏的近似,但是多了改进拼音字典的功能。
按F4后可以把拼音重定义。也可加字,在拼音拣字时,按enter,就进入国标拣字,拣到的字加入字典。
这个软件由五个C语言(另有两个头文件)和一个汇编语言文件组成,可用turboc编译,但是汇编部分不必重汇了,可以把汇编文件写成的部分形成的obj(我的磁盘上叫wk5.obj)放到硬盘上,与其它c语言文件分开,用turboc的