雨人的世界 廖丹 1999年 第17期 09版 80年代有部奥斯卡获奖影片的名字叫《雨人》,片中达斯汀·霍夫曼饰演的雷 蒙就是“雨人”,这是一个医学术语,它代表了一类患有严重自闭症的人,他们活在自己的世界里,他们只对自己的世界感兴趣。袁斌在网上的名字叫“雨人”(rainman),他借用“雨人”来形容他对计算机的痴迷程度。采访袁斌的初衷是因为他开发的共享软件Rainplay,Rainplay是开放源码软件Freeamp(一个MP3播放器)中的一部分。Freeamp开发是基于GPL(一种协议要求程序在发布时带有源代码,而且在此基础上派生出的产物在发行时也必须附带源代码。这个许可协议的目标是使在其规范内的程序永远保持免费。)协议的。袁斌和他的网上战友们正在进行一种新的软件开发模式的探索。开放源码软件的最著名的软件Linux正在撼动着Windows的基石。随着Internet的发展,开放源码软件将成为一种潮流。我们很高兴看到中国的第三代程序员正与时代一起前进。(^170901a^) #1 “雨人”谈自己 记:记得80年代有部影片的名字叫《雨人》,你给自己在网上取名叫“雨人”是不是也有这方面的意思? 袁:是的。我只是借“雨人”这个医学名词来比喻我对计算机的痴迷程度。我出生在北京,成长在天津。从1985年初(那年我上初二)开始着迷于计算机,能得到一台Laser-310曾一度是我的梦想。在我学习计算机的最初阶段,甚至曾经拿着笔和纸到商场去抄键盘的排列图来练习指法。初中毕业后,父亲借钱帮我买了一台Laser-310。我将高中三年的时间全部用来学习它。到高中毕业时,我已经在国内的一些报刊上发表了十几篇计算机方面的文章。通过对Laser-310的深入研究使我对BASIC、Z80以及硬件有了相当的了解。 整个大学期间我依然沉浸在对计算机知识的浓厚兴趣中。我开始接触C、DOS等现代计算机的内容,几乎把所有业余时间都用在PC上,别人在滑冰、跳舞、谈请说爱,而我面对的只有字母。所以,我觉得我对计算机称得上痴迷。我是学精密仪器专业的,1996年毕业后至今一直从事软/硬件开发工作。现在在一家独资公司负责开发COMPAQ笔记本电脑生产线的诊断软件。回想这14年的时间,我觉得对计算机的无限热情使我最终选定它作为我的职业,这也是我在网上叫“雨人”的原因。在这里,我要十分感谢父母在我学习计算机的最初阶段所提供的帮助。 记:你对计算机可真是相当执着,如果我们每个人在自己的领域都是一个“雨人”的话,那么我们一定能成功。不过令我奇怪的是国外已经有了这么多的MP3播放器,你为什么要开发MP3播放器? 袁:开发一个属于自己的MP3播放器的最初动机来源于我小时候对无线电的爱好。能制作一台带图示均衡的性能良好的功放一直是我的梦想。可惜当时条件不允许。1997年底,我发现现在我有机会通过软件来实现这个梦想时,就开始了Rainplay的开发。 #1 “雨人”谈他的播放器 记:国内除了《超级解霸》外,Rainplay是很少的专业MP3播放器之一,但《超级解霸》走的是商业化的道路,而你开放了你的开发技术,而且公开了部分源码,你是怎样想的? 袁:我所遇到的大多数计算机迷、网虫都十分乐于将自己的知识、技术介绍给别人。在这一点上,大家甚至崇尚绝对意义上的共享。在互联网上,这样的人比比皆是。每个人都公布自己的好点子甚至源程序,大家共同发展,一起讨论开发。早期的经典计算机黑客就是这样的,正是他们推动了计算机的普及和发展。我开发 Rainplay 也得到了很多帮助,在完成Rainplay 1.2后,我有相当一段时间停滞不前。主要原因是Rainplay的结构不太适合进一步扩展。直到去年夏天我才找到Freeamp。那时它还在用Jeff Tsay的解码引擎(因为具有很好的结构)。后来,Freeamp采用了Xing的解码引擎,我就为它写了个Rainplay UI的移植版。随着Freeamp的不断更新,其独特的程序结构越来越具有明显的优越性,我就在上面逐步实现了波形、频谱、EQ功能。 我公布部分源程序的目的是想让大家能更清晰地看到播放器UI的开发思路。请到我的网站去,我会将更多的源程序放到网上去(http://rainman.yeah.net)。 记:Freeamp对我们大家都比较陌生,请给我们介绍一下。 袁:Freeamp是Goodnoise(佳音)公司下属的一个开发计划,其目的是开发一个播放MP3的免费播放器。Freeamp的开发是基于GPL (General Public License)协议的,所以Freeamp公布了全部最新源程序。你可以任意修改引用它的源程序,但要遵循GPL协议。 记:像Freeamp这样的组织推动着共享软件的发展,我们都很好奇它是如何运作的?你认为这种彻底抛弃时间和空间的虚拟开发如何? 袁:网上像Freeamp这样的软件开发组多如牛毛。一般运作方式是:几个对某方面志同道合的人作为领导者选定一个方向,申请一个站点定期公布进展,申请一个mail list来讨论开发,有兴趣的人可以随意加入讨论。但领导者有更多的发言权和对发展方向的控制能力。开发组所开发的程序一般放在CVS中(一种Linux上的版本控制系统),如果你希望将你对程序的修改公布出去,可以将代码check out到你的机器上,待修改后再check in回库中。一般情况下讨论组中的人都很乐意帮助你,所以尽可以提问题。参加这种虚拟开发的好处之一是你可以学到某方面的技术,另一方面,还可以提高英语水平。总之,这样的网上虚拟开发好处不少,但如果管理不当很容易失控。 记:这样看来,你是一个崇尚绝对意义上的开放的人了,那你如何看待商业软件和共享软件呢? 袁:我并不反对将好的软件商业化,或者直接以商业化模式开发软件。其实很多商业化的应用都是由freeware/shareware方式的软件发展来的。商业化的软件更容易发展、壮大,但也限制了用户群的扩大。 记:Rainplay的开发中一定困难重重吧! 袁:是的,开发中遇到的最大困难在于时间。我平时下班后还有家务事要做,还要处理信件,所以每天进展不大。Rainplay只是一个初级水平的作品,真正意义在于通过Rainplay我逐渐精通了MP3播放器的开发,而真正使用的版本恐怕还是Rainplay UI for Freeamp。所以Rainplay的下一个独立版本将会具有一个MP3播放器的常规功能。在Rainplay开发过程中,得到很多朋友的热心帮助,我十分感谢他们。 #1 “雨人”看Internet 记:你对Internet怎么看? 袁: Internet将会在很短的时间内发展壮大,直到完全改变每个人的生活。如果你对它还不太了解,马上去学习它。如果你排斥它,你要马上劝自己去适应它。否则,你将来会很麻烦。对开发人员来说,Internet可以说是一个大宝库。现在,无论我写什么程序都要先到Internet上面找找,我通常情况下是到网上去寻找我碰到的问题的答案。我对Yahoo、InfoSeek等的精确用法非常熟悉。可以毫不夸张地说:Internet上一定能找到你的问题的答案。但我又反对过分迷恋网络,我的很多朋友每天沉浸在其中聊天,至少我没他们那么多时间。当然,上网费用太贵是个大问题。 记:的确,Internet的发展大大推动了软件业的发展,所以我们认为第三代程序员是Internet时代的程序员。 袁:对,第三代程序员这种划分十分有见地。道出了程序开发领域的发展情况。现在已经不再会有凭一个人单枪匹马就能打天下的时代,我们大家应该更进一步合作,共同发展。你今天还在保密的技术明天可能早已过时。 记:你是从小就开始学习计算机了。你对我们读者谈谈如何学习计算机好吗? 袁:我不知道怎样才叫学好计算机。如果只要应用,我想有个一年半载就够了。但若是精通就很难了。基本上讲,要有对计算机的狂热才有可能学好。很难想象一个人连摸都懒得摸一下鼠标,能把计算机学得多好,计算机是一门理论结合实际的科学。 记:谢谢,你给我们谈了如此之多,我们期待Rainplay的下一个版本。 袁:谢谢。我一定会努力的。