Larry Wall, Perl教父访谈(1)

看看Perl的创造者,看看Perl的新进展.

Larry Wall, Perl教父访谈 看看Perl的创造者,看看Perl的新进展.我和Perl脚本语言的创造者,Larry Wall(拉里沃尔,),在3月1号通过电子邮件进行了一次"交谈".Larry显得非常健谈,你一定会觉得这次交谈既有趣又使人受益.我是这样感觉的.

Marjorie(马乔里,记者,以下简称马):开始的时候,是什么让你决定开发Perl的?

Larry(拉里,Perl的创造者,以下简称拉): 这要看你的"开始的时候"是指什么样的"开始". 就象摩西所说:"开始时,上帝创造了天空和大地." 我并不是完全在说笑.每个人都有他在意(或不在意)的对圣经的阐释方法,而我认为宇宙万物就是激发我们想要成为一个创造者的最大的灵感.我也已经努力地要把这样一种整体的思想加入到Perl中间去,有些已经获得了实现.

要是以传记体的开始来讲,我的父亲是牧师,我的爷爷也是牧师,我的很多祖先也是牧师.我的妻子总是喜欢说传教士是智慧的种子(我猜她是在奉承我).不过也有可能吧,我确实继承了还算像样的脑组织结构的基因.另外我还继承了一些思想和技能,有些思想和技能已经融入到Perl文化当中了.比如,认为你能改变世界的思想;比如,认为别人很重要的思想;比如,对于交流的热爱,包括花言巧语的理解,更别说对语言学的关注了.再比如,对于文字重要性的认识;对于将所有事物与其他事物进行联系的渴望;对于建设的狂热,对于毁坏的厌恶.当然还有一点,那就是真正衡量财富的方法不是看你积聚了多少,而是看你与别人分享了多少.

最直接的诱因是我遇到了一个问题,我手头的工具都无法解决它.或者说,都不能轻易得解决它.就象使徒保罗所说"任何事都是有可能的,但并不全都是有利的."我应该能够用awk和shell解决我的问题,但幸运的是程序员最重要的三个美德在我身上储量丰富,它们是:懒惰,急躁和傲慢.我太懒了,如果用awk来做的话需要做大量的工作,这是无法忍受的.我太急躁了,awk做起来很慢,我可等不及.然后,我的傲慢使我认为自己可以做的更好一些.

当然,真正要写出Perl这样的东西需要做大量艰苦的工作,也需要耐心甚至谦卑.如果我仅仅是为了我自己,可能是不会下这么大的功夫的.然而,我知道,其他的人也会来使用Perl,不仅仅只有我一个人而已,所以我的"懒惰曲线"是结合整个社区来绘制的.这样看来我的懒惰就是代理性质的懒惰咯.呵呵.

马: 哦,回答的非常全面.必须承认,我本来没有期望你能从宇宙的起源说起:-)那么,为什么用Perl这个名字呢?

拉: 我希望起一个短一点的有正面意义的名字.(比如,我绝对不会把一个语言叫作"Scheme"或是"Python").实际上我查阅了字典中所有三个或是四个字母的单词,最后却一个也没有用.我也曾想过用我妻子的名字,Gloria,来命名它,但与家庭态度相左.最后我选中了"Pearl",作为Practical Extraction and Report Language(实用摘录和报告语言)的缩写.那时,字母"a"还在名字当中.但是我听到有传闻说有个朦胧绘画语言也叫作"pearl",就把它缩短为"Perl"了.(当我给这个语言新的诠释的时候,名称中的"a"也就真的消失了,可以把"Perl"理解为:Pathologically Eclectic Rubbish Lister病态折衷垃圾列表器(译者:晕,怪不得这种解释不常见到,太抽象了点:-!)).

另一个关于"Perl"这个名称的珍闻是,刚开始时"Perl"中间的"p"是小写的.那时UNIX还只能支持小写字母.实际上,你可以把它叫作反小写系统.就象在网上发贴的人最初所有的东西都是小写的,后来它们发现适当的使用大写可以使得交流更加的方便.对Perl来说,当Perl4发布之时我们觉得有必要区分"perl"程序和"Perl"语言.如果你找出第一版骆驼书,你可以看到标题是Programming perl,p是小写的.而现在,标题是ProgrammingPerl.

马: 嗯,Perl现在完美了吗,你还会进一步的开发它吗?拉: 嗯,这两者并不是互斥的. 看看Linux. :-)

实际上,Perl从来没有设计的很完美.设计的时候我们就打算使它适合进一步的发展,具有更强的适应性.从生物学角度来讲,世界上没有完美的生命体.最多你只能说一个生命体对其所处的环境适应的好些或是差些.实际上,生物学家已经认识到任何对于一个环境来说似乎是"完美"的生命体当环境发生变化的时候就有灭绝的危险.超特定性几乎与生态龛位同义.我们说的并不只是恐龙,还有快速蜗牛和印度豹,还有巴西的一种甲虫--当然还有Visual Basic.

我们已经看到很多超特定性有机体的死亡了,在计算机世界中,这包括:Lisp机器,Ada芯片和很多所谓的第四代语言.任何用汇编语言为废弃的系统编制的程序如今也都被废弃了.同样的,任何把自己的命运与单一操作系统捆绑在一起的程序也会随着操作系统的消亡而消亡.我不知道Windows在沉没之前还能够经受几颗鱼雷的轰击,但是当它沉没的时候,一大批仅适用于这个操作系统的程序将随其一起沉没.明显的,由于开放源码运动,Linux不存在这样的问题.不管怎么说,让我们回到Perl上来.从一开始,Perl就是为改变而设计的.这中间包括了某些折衷.如果以和我不同的观点来看的话,这些折衷可能并不是最好的处理方法.比如,为了在将来给Perl增加关键词的时候不会破坏已有的老程序,我在变量名上给它们使用了不同的命名空间.即变量名和关键字必须是要用标记明显区分开的.我选择了标记变量,一个是因为这样可以方便的使用变量在字符串中的内插,另一个原因是在BASIC语言中有标记变量的先例.在某些环境下这可能是无法接受的,比如某些顽固的纯化论者会说,加入标记会使Perl变得很难看,而且太象BASIC.或许吧.那又怎么样?这是一种有意的折衷,目的是为了Perl可以更为有用.从这方面来讲,Perl可能不是很符合计算机科学家的定位,但是它适合这个世界.对于这个折衷,我从来没有觉得遗憾.

当然,第一印象之后,还是有些东西会得到计算机科学家的喜欢的,比如变量的作用域和closures.因此大体上,如果这些科学家能够强捏住他们的鼻子把Perl奶酪放到他们的嘴里尝一尝的话,那么他们会发现还是可以一吃的.

更重要的,Perl5使用了一种扩展系统,它有些类似Linux的模块系统,允许连续的开发,而不需要改变核心语言.即,你可以开发特定功能的Perl模块如果这个模块非常流行,常用的话,我们会考虑把它加入到Perl核心中去.

这并不是说我们不会改变核心了.最近我们还加入了对多线程和Unicode的支持.有趣的是,虽然我们确实是在修改核心,我们还是使得它看起来就象是在做一个扩展模块.实际上,如果你要使用新的核心的特性,那你必须要首先声明.这正是我们使得Perl几乎可以100%兼容老版本Perl脚本的秘诀.大多数Perl1的脚本可以不用更改的运行于Perl5之下.一个附带的好处是,对于特性的声明使得依赖性在编译时是可见的,所以程序不会在运行时因为缺少某个特性而退出.这与shell编程形成了鲜明的对比,在那里,直到执行的时候这些问题才会暴露出来.

马: 有没有进一步的Perl开发计划?

拉: 我要是比自己再聪明一些,大概就能预见到了.不过我的智慧只能是知道我还没有聪明到那样的程度,正因为如此我把可扩展性放到了Perl的首要位置.说到这个,我可以告诉你一些我希望实现的特性.

首先,如果要来处理文本,Perl是首选.Perl一直就是一个文本处理语言,虽然很早以前它就已经不仅仅局限于文本处理了.由于这个缘故,Perl就成为CGI编程的首选,因为在提取和组合文本方面Perl非常拿手.

其次,我希望Perl可以把这样那样的东西黏结到一起.我们并不是黏结积木,我们的目的是把原来并不同类的东西黏结到一起.作为一个胶水语言,Perl既适合于修补裂缝,也适合于填充壕沟.Perl对空隙极为熟悉.典型的CGI脚本或是mod_perlservlet可以把数据库和网络黏结到一起.当一个空隙消失之后,又会产生其它空隙.

第三,我希望可以给失去特权的人以特权.我们开玩笑说准备把多出来的饭菜送给饥饿的非洲人,实际上,在美国之外,有非常多的程序员,他们没有足够的钱用来购买操作系统或是软件.中国最近一次就从某出版社(我为其工作)订购了200,000本英特网书籍.这仅仅只是开始而已.也正因为如此去年我把对Unicode的支持加入到Perl中去.当然,文本处理也涉及到Unicode.

说了这么多,其实它们基本上和下一步的开发计划无关,因为这些天以来我基本上已经很少参与开发了.Perl社区的工作已经超过我很多数量级了,他们才是真正的使Perl成为真正的脚本语言的人.我只是待在一边偶尔为他们欢呼罢了.我现在就要为他们欢呼.啦啦啦! :-)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值