越文丹 2018-09-18发布 阅读:1353次 ⋅ OSS  开源软件文集  源代码   ⋅

Larry Wall 著

王艳峰 译

洪峰 校

在Perl社团中,流传着一些格言,其中一个是说“殊途同归”。这在Perl中的确如此,也可以说是Perl的真理。正如这本文集中的文章所阐述的那样,这句格言在开源社团中也是千真万确的。本文中,我不是要告诉你开源是如何运作的,这就像我想极力向您解释为什么英语有用一样无聊?这里我要介绍的是Perl的一些现状、以及它以后的发展趋势。

在Perl社团中,还有一个格言是“编程的三大德行是懒惰、急躁和自傲”。出名的Perl编程高手都有这三大优点,开源软件的开发者也不例外。但是,这里我要说的是另外三大德行:勤勉、耐心和谦恭。如果你认为这听起来像列出反义词似的,那就对了。如果你认为单一的社团不能包涵这些反义词的话,那么,你就花些时间学学Perl吧。毕竟,“殊途同归”呀。

大概写字一开始都是急躁,或懒惰的。不用写字这种方式,你可以与别人面对面地谈话来交流,或者你可以劝说他人替你传达信息。这样的话,除非你努力记住谈话的内容,你没办法知道你们讲过了哪些东西。而写下的文字给人们以符号,这些符号能够代表事物——如果整个社会能约定什么符号代表什么事物的话。所以语言需要约定。这些约定是一个社会都同意的。简言之,是符号把一个社会连接到了一起,大部分符号都是这样起作用的。

那么,下面我们来看一些符号:

仔细研究一下,上图称做圆。正如圆周那样,它是一个无可挑剔的圆,非常优美,非常对称,非常简单。

好了,如果你是一个简化论的追随者,你将要说它只是一个圆,如此而己。其实,如果你真是一个十足的简化论者的话,你将会说它只不过是一束光子。但是我们不会那样说的,因为那样并不能把我们的主题阐述明白。

如果你不是一个简化论者,你就会认为你这里看到的圆并不是孤立存在的,它与其它许多事物有着联系,并且事实上,它正是在与其它事物的诸多联系中才有着自己的含义。为了理解这个简单的圆,你必须理解它所处的场景,这就意味着你必须理解现实的一些事物。

下图是现实的描绘:

正如我们大家知道的那样,现实是混乱的。

它是许多事物的写照。比如,它可以是空气分子四处跳跃的示意图,或者是经济运行状况的示意图,或者是房间里所有人之间各种关系的示意图,或者是典型的人类语言的表现图景,或者是你们公司信息系统的示意图,或者是WWW网络的示意图,或者是混沌和复杂性的示意图。

当然,这个图画还可以是一个关于Perl如何组织的示意图,因为Perl是在人类语言上建模的。而人类语言是与现实打交道的,所以人类语言是复杂的,Perl的组织也是复杂的。

我们大家必须以多种方法与现实打交道,所以我们要简化现实问题,然而我们经常会过于简化。

我们的先人就过于简化。他们自欺欺人地认为上帝仅仅造出圆形和球体,认为上帝总是喜欢简单更甚于复杂。当发现现实世界比想象的要复杂得多的时候,他们仅仅是把复杂性归于轮回,也即,他们创造了多余的复杂性。这一点是重要的,世界是复杂的,但它的复杂是有用的复杂。

大量的证据表明,直到今夭人们仍继续着先人的过分简化。有的人喜欢过分简化他们的宇宙观,有的人宁愿过分简化他们的神学论。许多计算机语言的设计者过分简单化他们的语言,结果导致把复杂性交给了编程人员。

在杂乱中寻找规则的模式是人类的本性,然而当我们寻找那些模式时,有时会发现模式并不真的存在。但是这并不意味着没有真正的模式存在,如果我们能发现一支魔棒抑制那些噪音,那么模式的信号就会兀地显现出来。魔咒来啦……下面是宇宙大爆炸、星星或肥皂泡的形状:

下面是二维空间、食盐晶体和方木的截面形状:

下面是蚁丘、圣诞树或(圣父、圣子和圣灵)三位一体的形状:

当然,一旦你知道图形中有模式存在,不用借助于填彩色,你就能把这些简单的有模式的形状挑出:

这么做是大脑的指挥使然。

现在,你或许有些疑惑了,以上说的这些跟Perl有什么关系呢?事实上,你的大脑是训练来做Perl编程的呀。你很急切地想把复杂的问题简化,而Perl只是能帮你达到目的的一个工具——正如我正用英语试图把现实简化一样。我能用英语达到简化现实的目的,是因为英语本身是混乱的。

英语是有用的,是因为它本身混乱。这一点是重要的,但有点儿费解。既然英语是混乱的,它就能很好地映射同样棍乱的问题空间,这个问题空间我们称之为现实。同样Perl也被设计成混乱的(尽管它是以尽可能好的方式来设计的)。

这一点有些违反直觉呀?好,让我来解释一下。如果你接受的教育是做任一种工程师,你一定被灌输了这种思想:伟大的工程是简单的工程。比起铁路高架桥那么复杂的东西,老师教我们应更多的重视如何设计悬浮的吊桥。他们还教育我们重视简单性和简单美。这一点没错,我也喜欢圆周。

然而,复杂性并不总是我们的敌人。重要的不是简单或复杂,而是你怎样将两者桥接起来。

在做任何一件实际的工作时,你都需要考虑一定的复杂性。例如,据说Saturn V(土星五)火箭有七百万个部件,这些部件都需要正常运作。这么说也不完全正确,其实这些部件中有许多是冗余的。而在1969年要能成功的将人送到月球,这些冗余是完全必要的。即使火箭的一些部件起着冗余的作用,这些冗余部件仍有着存在的必要。所以说,这些冗余部件是作为备用的。

如果说“那是冗余的”就意味着“那是没用的”,那么我们就有点违背自己的本意了。冗余并不总是意味着“多余”,无论这句话用于火箭或人类语言还是计算机语言都是如此。简言之,简单化经常是成功路上的大敌。

假如说我将要接管这个世界。简单性会说我应该仅仅靠我自己来接管世界,而现实的情况是我需要你们的帮助,而你们是非常复杂的。实际上我认为这是一个特色。你们的关系是更加复杂的,通常我会认为这些也是一些特色。有时这些关系中有不和谐,我们能够研究这些关系,除去有问题的那些,但是,把人们之间的关系看作好的经常是一个好的策略,毕竟当你试图调查人家时,他们会感到受到了骚扰。

我提到的有些复杂性是无用的,而另一些是有用的。下面是另一个关于有用的复杂性的例子:

在座的各位中大多数可能偏爱西文书写系统,认为象形文字系统是一种无用的复杂。你们甚至正认为这个图形和前面的那个一样复杂。但是,这是一种工程上的折衷。既然如此,中文为着可移植性,已经吸收了(其他语言的)可学性。现在的中文听起来习惯吗?

其实,汉语不是一种单一的语言,它有着五大主要的方言,这五大方言相互之间都是不可理解的。你可以用一种汉语方言写下汉字,而用另一种汉语方言来读,这就是我所谓的可移植的语言。为了交流而不是为了简单化,通过更高一层次的抽象,中文书写系统进行了优化。在中国,十亿人民相互之间不能全部以说话的方式交流,但是他们能够相互传递便条来交流。

计算机也喜欢相互间传递便条,只是我们称之为连网。

今年我的许多想法都受到了Unicode和XML的影响。十年前,Perl在文本处理方面的功能是很好的。现在,对于原来定义下的文本,它的处理功能更加棒了。但是在Perl中,“文本”的定义比之十年前的定义有了很大的变化。

文本定义的变化你可以“归罪”于Internet的出现。

当你在浏览器上点击一个按钮时,看起来像是使计算机相互之间传递一些信息。当它们要传递跨越文化和语言差异的信息时,计算机与你一样想知晓将要在屏幕上弹出什么东西。因为,无论你是否相信,计算机实际上是要把事情做对的。计算机或许有点愚笨,但它们绝对服从你的指令。

这就是要引入Unicode和XML的原因。Unicode是还有一些通用象形字符的集合,借助于它,全球的计算机可以互相正确地传送信息。虽然Unicode的一些象形文字碰巧与一些国家的字符集(如ASCII)匹配,然而世界上没有一个人要学习所有的这些语言,也没有人期望你能学会所有的语言。那并不是很重要的。

下面我说的才是重要的。上月,我在修改我所在教会的Web主页,我们的教会刚加入了一个华人团体,这样它就有了两个名字,一个可以用ASCII代码表示,另一个就不能了。那个页面如下图:

如果你的浏览器是很新的版本,并且你已经安装了Unicode字体,你能看到的在如上图所示。这里我想提醒你注意一些要点。

如果我在一年前做这个页面,这些中文可能需要用GIF格式的图像来实现。但那样的活,将不能从GIF图像中剪切和粘贴文字。我尝试了多次才知道的,我想你一定也有过这种经历。我可以在这个页面上再加上一个复杂的层,用类似CGI脚本的方法来首先检测浏览器是否支持Unicode编码,因为如果浏览器不支持的话,这些字符会在页面上显示成乱码,这就增加了无用的复杂性。

那么,让我们再回到简单性中来:

我们用圆来表示许多东西,如我们的交友圈;当在信封的背面画一个圆时,它代表一次拥抱;象征永恒爱情的结婚戒指,等等。

圆可以表示神圣的东西,也可以表示荒谬的,如循环无尽的文档,那可是意味着该死的文书工作呀。

发光的球体、黑洞,或出现在地平线上。

下图用一个环,表示它们还有它们外围的黑晕:

水晶球,珍珠:

洋葱,Perl洋葱:

圆形在符号学中有很多的应用。特别地,给圆添加一些附属物,我们就可以用简单的符号表示相当复杂意思,这些符号就是联系简单和复杂的桥粱。

下面是禅宗的一幅图:

严格地说,上图并不是禅学的。事实上,阴阳来自道教,而道教是东方的古代哲学,比禅学要早一千多年。

好,回到阴和阳的讨论中。

阴阳是一种两元哲学,非常相似于星球大战的两极军力。两极军力与管道布带有些相似之处,都有一个光面,一个暗面。我自己并不是一个两元论者,因为我认为光面比暗面强大。不过,有时力量均衡是有用的,特别是对工程师来说更是如此。当工程师要平衡双方力量,并且要让它们保持平衡状态时,他就是要达到管道布带的状态。

如此评说阴阳,我真不知自己是否说的恰当。把它说偏、说反或说成了别的东西,那真是贻笑大方了。

好了,你知道,有时候这与有机化学有许多的关系,我们叫它做chirality——如果取一些荷兰风味的薄荷,并左右翻转它,最终你将得到一些香菜的气味。过去我一直不喜欢吃黑麦面包,直到我发现它里面放了香菜种子,我的看法才有所改变。

现在,你偏爱哪种风味只是你的口味问题,但医生和有机化学家要告诉你,chirality有时是事关生死的因素,比如在吃错安眠药时就会引起这种问题。Dyslexics说过chirality能影响人的视觉符号,他举的例子是字母“b”和“d”,“p”和“q”,数字6。他没有提到数字9,你可在阴阳禅宗图上看到数字6和9。

简言之,我有点怀疑阴阳图是否有点像纳粹党的十宇徽章,它让你着迷的程度取决于你怎么看待它。

于是,我在Web上做了一些研究。事实上,Web才是TMTOWTDI(There's more than one way to do it)——“殊途同归”的一个绝好的例子。故此,你可以从各种不同的角度研究阴阳。我现在还没有发现是否有些角度比其他的更好些。

在Web上有一伙称为TYEDYE WORLD的人们,他们销售染带T恤衫。我猜他们是受了道学的感染了,他们认为那看起来像下图:

我猜你喜欢另一种方式,即把它里面朝外反穿。你颠倒着穿的话,就会感到很惊奇啦。

Unicode协会认为它像这样子。我不知道他们是否正确,即使不正确,也不要紧。他们按这种方式公布,并且给了它一个正确定义。

当然,在这之前我的字典就已经有它的定义了:

好了,现在回到Unicode的讨论中来。Unicode中有的是圆形,许多国家的Unicode原本中都用到了圆形,大多数用它表示数字0,下面是Unicode数字30007(hex十六进制),它是0的象形表示:

奇怪吧,它看起来正像我们常用的0,这体现了一种文化体制。当然,在英语中,我们往往把0从边上挤扁,以和字母O区别开来。

在孟加拉语中,为同字母O区分,人们以另外的方式把0挤扁:

发现这么多不同的方式表示“无”真是有趣。有很多有关“无”的笑料,例如,无事自扰之。下面是一些与“无”相关的东西:

这是通用的“禁止”符号。在Unicode中,它被归类到组合字符中。

当然,在Perl文化中,几乎没有什么的东西是被禁止的。我的想法是,世界的其他方面已经充斥着林林种种的禁止符号了,为什么还要再发明一些?顺便提提的是,这不仅是对编程说的,在人际交往方面也是如此。我遇到过好几次这样的情况,有些人通常因为某种无礼的做事方式或其他原因,被要求开除出Perl社团。我没有开除他们,我认为我的做法是对的。至少到现在为止,我实际的做能还是这样的。那些犯错的人有的最后按自己的意愿离开了这里,有的静下心来学会了与他人和谐的相处。这是特殊的情况。人们潜意识地都知道计算机程序间相互通信协作的最好方式,即严格遵守各自发布的东西,灵活自由地使用自己接受的东西。例外的情况是人们自己并不情愿严格遵守他们怎么说的,也不能灵活地利用他们听到的。他认为那样做是很显然的,毕竟我们受的教育多是表达自我。

另一方面,在Perl社团中我们试图鼓励一些好的品德。像圣徒保罗(Paul)说的那样,没有人制订反对爱、欢乐、和平、耐心、仁慈、善良、温顺、柔和、自制等美德的法律。所以,别再把注意力集中在弃恶上,让我们来看看如何扬善吧。下面是有关善的Unicode代码:

当然,如果你是一个花童,你或许更喜爱这个:

有一些正面意义的Unicode字符的含义并不是这么显而易见。

下面是一个双唇音的符号,它是国际音标字符表的一个符号。你或许并不知道它,但都发出过这样的噪音。如果你想发一个双唇音的话,这么做:双唇紧闭,然后把吸进嘴里的空气快速吐出,发出塞擦一类的音来。

当然,在英语中,我们把它记为X,与信封背面的O一起表示某种含义。然而,你是过去时光的见证人,在信封背面表达拥抱和亲吻的方式已经过时啦,现在人们用Email传递信件。把那作为一个Email的头行,如Content-type:text/hugs&kisses,也起不到相同的效果了。

你知道,通过这样写:Content-type:test/scented,让一封Email发出香味也是相当困难的。我们有点不知所措啦。

下面是更多的简单的圆,来表示复杂的事物。如表示地球的符号:

表示火星的符号:

表示金星的符号:

现在,我常在喷气动力实验室工作(Jet Propulsion Laboratory),我只是做一些工作来揭示火星和金星是相当复杂的。但是,像是觉得事情还不够复杂,我们的先人曾用这些符号来表示男和女,使情况变得更加复杂了。男用火星表示,女用金星表示,这已不是一个新的想法了。

还有更多的呢。

如果你切开一个洋葱,它的截面如下图。如果你把它作为Perl世界的写照,那么我就是位于洋葱里面的那一小块。

在我的周围有些人是Perl早期的开发者,他们现在被尊为是这场Perl革命的英雄。当更多的人加入到Perl的发展中时,给它添加了更多的新的层。当然,你可以把它当成一个原子的图像,那些圈圈就是电子运行的能量层。当然,你可能不知道某个原子究竟有多少个能量层,那你就把这个图当成切开的洋葱好了。

洋葱的故事告诉了我关于自己的重要性和一些缺憾。也就是说,当我开始做这些事情的时候,我还是洋葱的一小部分。多数人位于外层,但我还在核心中。因为历史的原因,我得到了很多的荣誉,然而实际上,更多的人看到的是洋葱的外部,而不是它的核心。除非他们要做一个洋葱戒指,即使如此,大点儿的戒指也比小的好。让这作为那些想成为核心人物的人的一个教训吧。我曾尝试着把Perl按照另一个运动来运作,我是那个运动的一个委员,它的创始人说,“想成为最出色的人,必须先成为大家的仆人”。在他的十二个核心成员中,有一个背叛了他,另外十个不得不承受地狱般的煎熬。当然,我不是想使我的哪个朋友把自己往火坑里推。

回到发育的模式中,天然珍珠生长时,裹在外壳里,这些外壳由剌激牡蛎成长的抄粒添满而成。这也可看成是珍珠的横截面。人们经常切开洋葱,可能从没有切开过珍珠。所以用这个图来形容珍珠比洋葱更正确。外层是最重要的,因为人们能看到的是外层,或者,如果珍珠还在发育的话,正是外层支持保护着内部的层。我意识到,这么一来,我应该是归到刺激物的那一类,如此的分类我也是很满意的啦。

其它事物也随着时间生长着,大概我们把图形看作是一些树环会更清楚些:

如果你对物理知识比较熟悉,你应该知道,同一直径的管道和实心棒它们的强度是一样的,因为它们所受的大部分外力被传输到外层了。事实上也是,即使树的中间部分已经腐烂了,树还可以很健壮的生存着。同样地,Perl文化的最健壮的部分也是在Perl的外围,而不是它的中心。人们用Perl编程每年能节省数十亿计的美金,这些节省的大部分是在Perl的外层。即使靠近了Perl的内核,人们多数宁可借助于其它工具来解决问题,而不愿改变Perl自身。我认为事情确实该如此。Perl内核应该是较稳定的,即使内核有所修改,诸如支持多线程和Unicode等,我们还是宁愿认为,我们只是在给Perl添加一些扩展的模块,因为这样内核会清晰些,以便有的人不想调用一些新的功能时,能够方便的做到。

所有这些生长环的讨论在谈起过去时是很符合的,但谈起将来又会怎么样呢?我没有水晶球,但我有一幅双目望远镜,这是它的典型记号:

当然,在电影中也经常这样表示有人正通过望远镜看东西呢。如果我不知道怎么正确地使用它,让我们来看看在望远镜的另一头我们能看到什么:

当然,这可以看作是两个相互围绕旋转,且具有潮汐效应的物体的图片:

两个行星中,一个行星可以在另一个上引起潮汐。人们通常可以理解在朝向另一个行星的一面引起潮汐凸出的原因,而不易理解在行星的另一面也有一个凸起出现。你可以这么理解,一方面,另一个行星向离这个行星中心的方向,拖那个离它近的凸起;同时,它还向离较远的凸起的方向拖这个行星的中心,这样你就理解对啦。

这也是自由软件社团和商业软件社团间关系的很好的写照。我们甚至可以给一些极端的情况贴一些标签,起一些名字。比如称左向的极端为“Richard”,右向的极端为“Bill”。

中间的凸起比较难起名字,但今天我们可以称呼中间偏左的叫“Larry”,中间偏右的叫“Tim”。

当然,这是另一种过于简化,因为各种组织和个人并不是图表中的一个点,而应该是一个范围。有的人由一个凸起向另一个凸起做来回的震荡。有时,他们喜爱与自由社会和商业社会间有更多的合作,有时他们轻视任何商业的活动。但至少我们假定的“Richard”和“Bill”是一直固定的。

这些活动是位于中间的。

人们都在关注着这里会发生什么。事实上,这是去年的情况,今年它的情况更像下图;

Robert L.Forward写过一系列的书介绍一个他称为Rocheworld点的位置,这个命名是根据一个叫Roche的小伙来的,他定义了Roche极限,Roche极限定义了当两个行星距离近到这个极限时,它们就会分裂解体。因为Roche的数学并不是特别厉害,这个结论他有些过于简化了。事实上,如果你让行星变成上面这些形状,它们可以距离更近而保持稳定。注意,这些点间的净引力是比较低的,但这也足够保持行星能稳定的在一起了。

同样的,今年来,免费软件和商业软件出人意料地能紧密的和平共处。在Rocheworld点,行星没有发生碰撞,且还能共享大气。如果我们借助xpaint的魔力,把上面的图片做一下模糊处理,我们可得到这个图片:

你知道你怎样从一个行星飞到而不是走到另一个行星上去。这让人想起量子力学中的隧道效应,即你不能从这儿走到那儿、但你可以飞跃到。

在免费软件和商业软件之间我们应何去何从,这里有很多想法可供参考。这两者定义了我们现在所谓的开源运动。我们在这里遇到的事物是非常崭新的:以前的敌手能超越以前任何商业模式达成公认为好的一致,这些公认为好的东西不久就是更好的软件。使这些成为可能的原因是,人们意识到简单想榕的价值,不需要软件专利或商业秘密。我们需要的是另一个简单的圆:

里面有个“c”的圆,开源的生存或死亡都赖于版权法,我们当然希望它能生存下去了,这要我们大家各自的努力才行。如果你有机会依据版权申请专利,那样做好了。我知道你们中有许多人已经在一些商业秘密上申请版权了,我们也应该支持版权法,尊重版权持有者的愿望,而不论他们是否向每个人说清楚了。圆形中的“c”应该是代表礼貌(civility)的意思。

谈到礼貌,我们会想到城市,想到做事情应该正大光明(fair and square),下面是其中的正方(square):

确实,城市是建立在方形和长方形上的,我们称之为街区(blocks)。如果城市规划者给建筑物留了一个街区,我们称之为广场,即使它并不是方的,还是回过头去看着那个图形。

有时建筑物本身就是方形的:

但它们通常不是方形的。同样,在你看Unicode的书时,你会发现里面方形并没有圆形多。我认为最基本的原因是,当我们建造高楼大厦或写文字时,我们把大楼建成直线形的框架;写字时,我们从左到右或从右到左或由上而下写,我们在大楼或文字中采用的抽象的单元是有点方的。然而如果它们通篇都是同样的线条,大楼或文字就会失去视觉效果。于是,正如许多现代的摩天大楼为避免设计的像一个盒子那样,大多数的文字趋向于在少数角上含有直线。没有人真正喜欢六十年代的摩天大楼,那些四四方方太像箱子了。人们喜欢的是跟他们周围环境视觉上有不同的建筑。

上面说的也正是在Perl中有各种明显不同类型的操作符和变量的原因,这听起来像我所关心的人类工程。我不喜欢在Lisp中那样所有的操作符都是一个样,也不喜欢大多数的街道的标志看起来都像欧洲的那样。所以,德国人决定使用不同于其它国家的停止标志,我拍手称赞。当然,对我们美国人来说,使用美式的停止标志也是很必要的,这样能记下另一个文化体制的记号。

我要指出,象形文字系统还有的另外一个优点,而这是美国文化体制所没有的。因为象形字是方块构成的,你可以方便的水平或者垂直来写。我们的不等宽字符就没有这个很好的特性了。尤其是在Helvetica字体中,即使“i”和“l”相互挨着,你很难分辨它们。把一个放到另一个上面时,看起来仅仅象一个带点的线。这些情况在中文、日文和韩文中就没有。

上个话题先打住,来谈谈三角形吧。这是个示例:

正如箭头与靶子有联系一样,三角形与圆形有点相关。下面是个靶子:

我是在Web上找到这个图的,我知道这次找对了。更重要的是,我一发现这一个就停下来了。实际上,这是个命各为“牛眼”的Unicode字符:

我不敢十分肯定它是什么意思,但发现它之前我可是没什么收获的,我要赋给它某种意思。

在本文中我“发射”了这么多的箭头,不知是否击中了哪个牛眼。因为角形是那么锋利,我们把三角放到箭头的前面。三角是和疼痛联系一起的,特别是你的脚踏上一个三角时,你就会感觉更深。三角的角度也让人想起攀登一座山的困难程度。

另一方面。视觉也可能被欺骗,一个三角形水平拉长也能表示成平面:

这是一个观察角度的问题。你可以从不同的立场来选择你的观点。我不能预言Perl未来的道路是坎坷还是平坦,但是我可以预言,只要我们观察问题的角度越多,我们就越容易选择我们所喜欢的观点。毕竟,从许多种观点中调查问题,这就是语言设计者的工作,这有一点无所不知的意思,这样其他的人就可以受益了。我做了一些三角测量,并且规划了一些领域的版图,这是我的工作。如果我的地图将你引导到你想去的地方,我会很高兴。

如果你已经读了Perl洋葱这一节,那看上去像一个三角形。把它放进三角形的一边,你会得到一个Perl最近十年来成长的图表:

一切都非常好,这张表格当然是我们概念性的。我无法测量Perl的实际增长。但是,很明显,它仍然在增长。我们已经做对了许多事,并且大体上我们将继续做我们已经做的事情。

现在假设我们收缩这个三角形,并且扩展图表以显示Perl的整个生命期。我们确实无法知道它将会保持多长时间。

在这里,很难评价什么是重要的。但是我要告诉你,不能根据出现了多少像我这样的人,来评价Perl的成功与否。当我对这些曲线求职分,我得到了在我的帮助下找到工作的人的总数。

我可以告诉你,我想曲线1和曲线2之间的差异依赖于是否将Windows所有的潜在用户和他们需要解决的问题计算在内,那是很多的。所以,我们刚刚提供的Win32的Perl资源工具包不是偶然的。

我还可以告诉你曲线2和曲线3三之间的差异,依赖于是否将所有从Perl中受益的国际用户计算在内。在Perl的最新开发版本中,你可以用Unicode字符命名你的变量,它包括象形文字,这也不是偶然的。中国有十亿人口,我希望他们之间可以传递用Perl写的便条。我希望他们可以用Perl写诗。

这是我对未来的看法,我选择的观点。

我从讨论程序员的美德开始:懒惰、急躁和自傲。

这些是富有激情的美德,这些也是个人的美德。然而,这些不是社会的美德。社会的美德应该是它们的对立面:勤勉、耐心和谦恭。


它们并不是真正对立的,因为你可以同时拥有它们,这只是对事物观察角度的问题。这些美德带领我们前进了如此之远,只要我们不丢弃它们,他们还将把我们的社会带向未来。

基本上,我们还必须继续这个过程。尼采(Friedrich Nietzsche)将它称为“长期在间一个方向上坚持”,这是一个爽快的口号。但是我还想把它完整的引用一下:“天地间”的本质是......长期在同一个方向上坚持;因此才有结果,并且总是经过长途跋涉,最后才有结果,正是这个过程使得生命有了她的意义。

回到圆的话题,现在我们已完成了一个完整的圆。这儿就是Bilbo Baggins的房子的前门,有一条从这个门开始的路,Bilbo写了一首关于这条路的诗:

The Road goes ever on and on,

Down from the door where it began.

Now far ahead the Road has gone,

And I must follow, if I can,

Pursuing it with eager feet,

Until it joins some larger way

Where many paths and errands meet.

And whither then? I can not say.

——J.R.R. Tolkien, The Hobbit


作者简介

Larry Wall

Larry Wall已经是一些Unix上被普遍使用的开源软件的作者,这些软件包括新闻阅读器rn、普遍存在的补丁程序、Perl编程语言。同时他也因为metaconfig而闻名——一个能够写配置脚本,并且能用于星球大战游戏的程序,其第一个版本是在Seattle Pacific大学用BASIC/PLUS语言写成的。通过训练,Larry真正成为一名语言专家,作为一名研究生游走于UC Berkeley和UCLA之间。(实际上,在Berkeley期间,他除了做Unix的开发工作以外,没有做什么其他事)。

Larry曾经作过JPL的程序员。他也在Unisys工作过,从事过从分离事件模拟器到软件开发方法的工作。正是在那里,当他想试着使用黑客版本的Netnews将bicoastal配置管理系统通过1200波特率的加密连接结合起来时,Perl语言诞生了。

目前Larry仍在O'Reiily公司做一些有关Perl的咨询工作。

评论

您不能发表评论,可能是以下原因
1、登录后才能评论
2、作者关闭了评论