马: Perl到底是在哪些方面优于其它的脚本语言的,比如Python和Eiffel?
拉: 对于脚本语言来讲,Perl是独特的,而且在所有的计算机语言中,Perl也是非常独特的.它是唯一的一个有意识的并且明确的被设计为后现代化的计算机语言.而其它的语言都还不同程度的坚持着他们的现代化特性.事情虽然是这样,我却很少使用后现代化来描述Perl,因为很多人并不能真正理解后现代主义,虽然他们已经处于后现代化之中.事实是,美国文化已经完全进入后现代化了,不仅是音乐和文学,还包括时尚,建筑以及所有的与文化沾边的领域.
现代化是基于某种傲慢之上的,把创意置于一切之上的文化的有色眼镜,它的设计者认为他们认为很好的东西,全世界都应该喜欢.即是说,如果某件事值得做,那就应该把所有其它可能的途径都推到一边而仅留它一个.看看在Lisp中对圆括号的使用,以及Python中对空格的使用吧.还有对对象的强制使用,这包括很多语言,其中就有Java.所有这些都是"为了用户考虑"而限制了用户的自由.它们其实就是阻碍自由思想的翻版.1970年代的时尚警察已经离我们远去了,但是很多程序员依然是网络警察的奴隶.
恰恰相反,后现代主义允许人们对任何艺术品从个人的或是不同文化的背景给出诠释.无论怎么说都是你自己的事情.Perl的口号即来源于此,那就是:"条条大路通罗马".Perl之所以在你做任何事时都给你许多不同的可以使用的方法的原因是:我确信程序员们都希望自己是具有创造性的,他们可以有很多不同的理由想要写出他们自己的特别的代码.你想要做什么是你自己的事情,不是我应该考虑的.我要做的就是给你油漆--而你绘制你的图画.
马: 谁在使用Perl,他们怎么使用它?
拉: 两年前,我在一次商业展会中遇到一个人.他和另一个人在经过我面前的时候,他正给那人介绍国家安全局的有关情况,他说他用Perl写了一个过滤器.我于是问他,我可不可以告诉别人国家安全局使用Perl.他当时的回答是:"难道有谁不用吗?"所以现在我不会说国安局用Perl.我只是告诉大家国安局的人认为大家都在用Perl.我想大家应该知道这个.有趣的是,正是这个人中止了那个使用到perl的项目.当我告诉他,Perl可能是那个项目最大的受益者时,他觉得很开心.说到大家用Perl做什么,可以说是做什么的都有.几年前当我听说Perl在华尔街使用非常广泛的时候,着实吃了一惊.当时他们说:"每个桌子上都有一本Perl书".不过,考虑到市场分析需要他们不断的修正他们的模型,他们还需要扫描那些可能与他们在市场中的位置相关的新闻信息的话,就会觉得合情合理了.他们需要的正是快速原型和文本处理.很多人把Perl和CGI脚本联系在一起,其实那主要是由Apache下的mod_perl servlets完成的.Perl多是用于那些客户端的机器人和蜘蛛,它们搜索网络并在形形色色的数据库中建立链接.
不过,这并不是全部.如果你曾经受到垃圾邮件的困扰(有谁没有过?),那么几乎可以肯定,你的邮件地址被某个Perl脚本从网络上搜集到了.垃圾邮件本身也很有可能是由Perl脚本送出的.有人可能说Perl是滥用网络的首选.但同时也会有人以此为傲.这仅仅是Perl用途的一鳞半爪而已.如果不考虑民意测验或调查也不考虑美国人口调查局,那么最好的了解Perl用途的方法就是查看Comprehensive Perl Archive Network (CPAN)站点上的800个或是经常使用的模块.如果你把这些模块都看一遍,你会发现,Perl几乎与世界上所有事物都有联系.稍微动动脑筋,你会发现Perl之所以与世界上所有的事物都有联系,并不是因为Perl能够与所有这些事物如何如何,而是因为Perl可以把世界上的所有事物联系在一起. 组合学是令人惊讶的.
Perl杂志的第一期(不要与Linux杂志混淆)有一篇文章,标题是"Perl是如何拯救了人类基因组计划".文中说明了世界各地不同的基因组实验室使用了不同的数据库,其中的数据格式也是千差万别,而Perl如何将这些数据处理成统一的数据.马: 我们收到ActiveState Tool公司的一份产品声明,它说:``PerlDirect 提供对Perl的如下特性的可靠的,稳定的,支持和责任: Perl的可用的高质量的分发包,以及常用扩展;建议和支持;Y2K测试组件;每周一次的Perl警告信息.
PerlDirect提供给您直接支持一个引导开源运动的组织的机会.年捐助额应当不低于12,000美元.''你和这家公司熟吗?我觉得他们提供的这个机会非常有趣.这有什么意义吗?
拉: 听起来好像是和我签约的支持.
我相信即使是Richard Stallman也会承认技术支持是通过自由软件盈利的有效方式.我和ActiveState没有直接的联系,不过我跟他们合作过,我想他们解决的问题远比他们引起的问题要多得多.你得了解,他们的市场是Windows,在那里他们收取报酬帮用户做事是很好的事情,因为那是唯一不会使用户们疑惑的方式.Linux用户当然要聪明一些,不过他们还是不够聪明,没有认识到Windows完全是一种不同的文化,而Perl作为一种后现代化语言对环境是非常敏感的,因此在那样一种环境下看起来会大不相同.
马: 噢,我的本意并不是说他们不诚实--只是好奇想知道你到底知不知道这件事.你对开放源代码运动的看法怎样?你认为它将会变成长期存在,还是只是一时流行?
拉: 我的大脑一定是连接性很强的,因为我认为你所说的两方面都是正确的.而且它们同时也都是不对的. ;-)到目前为止,开源运动已经经历了20年的发展了,我们怎么能说它将变成什么什么?我们仅仅要向大家显示开源也曾经产生了大量优秀的代码程序.
另一方面,我们想更进一步,希望更多的人认识到这是一种有效的开发模式,对很多不同种类的,以前都是以封闭模式开发的软件也是适用的.不过,当然,它也是一时流行--就象我们已有的其它一时流行的东西一样,比如自由语法,结构化程序设计以及最近的面向对象.你得了解的是,对一时流行的东西,人们通常会有两种对待的方法.这有些象启示录中把绵羊和山羊分开一样.有些一时流行的东西,流行过去之后就会从此消失,但是另外一些一时流行的东西会由流行转为平淡,通常在这之前都会经过一个狂热期.
比如自由语法,结构化程序设计和面向对象等,它们都是由一时流行转为平淡,但是并没有消失.那些流行之后即消失的东西,通常不是来源于历史,而是来源于某些人的希望(通常是市场人士).以此来判断的话,开源应该会由一时流行转为普通应用,因为它其实已经是普通应用了.
以我来看,开源运动正是我们正在成长的后现代化文化的又一个展示.相反的,所谓商业机密的提法只是之前的创意无价的思想的翻版.我们以前经常说代码重用服务,可是这么多年来,只有当开源出现之后,代码重用服务才得以实现.后现代化程序员认为重用好代码不必考虑它是原创还是相反.这与自豪无关.后现代化主义者应该是一个剽窃者,剽窃一切他(她)认为精彩的东西.
马: 要是什么东西都开源的话,程序员要靠什么生活呢?
拉: 和许多其他开源的支持者不同,我不认为任何东西都会开源.我所持的是目前也在逐渐得到更多认同的观点,那就是那些具有很大规模的基础性的东西需要开源,就象美国政府逐渐认识到州际公路应该是不收费的一样.另一方面,我不会期望城市中的停车场会免费,除非那个市府特别开明.因此如果拿Windows和Word来比较,我更希望Windows能够开源.有一种说法,我们可以有很多方法通过开源来谋生,这就好像我们有很多方法通过开放的科学来谋生一样.不过,我认为这里正是开源需要努力开发的一个方向.科学在开始时,只是富人的爱好,只是当它进入到教育学院之中以后才逐渐发展成今天为我们所熟悉的形式..开源还没有开始这一步,或者更确切的说,开始了,但是各个教育院校却把目标设定在赚钱上了.我希望有更多的地方能向UC Berkeley学习.
马: 那么,你靠什么谋生呢?
拉: 开始时,我和其他人一样,一边编程一边做系统管理的工作,同时我还开发自由软件.之后,我写了一本书然后就有了版税.那本书很畅销,它使得我和出版商O'Reilly & Associates都赚了很多钱,可能赚的比我还多.当然,那些钱他们还要用来支付其他人的报酬,总的来说是差不多的.不管怎么说,三年前我和Tim O'Reilly都认识到,对Perl有利的事情dvO'Reilly & Associates也是有利的.
因此现在我想干什么他们都会为我付账,只要是对Perl有帮助就好.这是一种良好的共生关系.马: 有没有新的令人感兴趣的计划呢?
拉: 有人建议我写作骆驼书的第三版,除此之外我还没有正式的计划.
马: 哦.介绍一下你自己吧.比如你在哪里上的学,你有什么兴趣爱好之类的.
拉: 我的童年有一半时间是在洛杉矶南部度过的,然后是在华盛顿.我从高中毕业之后,进入西雅图太平洋大学,开始学的是化学和音乐,然后转到医学,最后的专业是自然和人工语言.之后,我和我妻子参加了语言学的进修.当时,我们打算去做传教士(准确的说,是圣经解说员),最后考虑到健康的原因放弃了该计划.有趣的是,传教士们由Perl上得到的帮助大概会大于我作为一名传教士能够提供的帮助.至于说到我的兴趣,这个有点困难,因为我对所有有趣的东西都感兴趣.说起来就会有很多了,不过有两样例外,即歌剧和肥皂剧--太空题材的影片除外.
马: 你娱乐的时候会做什么?
拉: 读书和听我的妻子给我读书(特别是太空类的).和家里任何人讨论任何问题.玩填字游戏.玩麻将.练合气道.看动画.逗鱼.
马: 看起来你很忙碌有很有趣味--很好的组合.那么你早饭吃什么?
拉: 我早饭吃很多东西--不过,我通常是在午餐时间吃早饭.
马: 时间过得好快.谢谢你抽空接受采访.非常感谢!