Perl,第一种后现代计算机语言

在吴涛大哥的博客上提到这篇文章《Perl,第一种后现代计算机语言》,原文链接:http://www.wall.org/~larry/pm.html


尝试翻译一下(已经发了邮件给Larry Wall,并且征得他的许可),有些句子太哲学,翻译不懂,作者是Perl的设计者,只供学习阅读使用。这里感谢我的英语八级同事在一些翻译上给予我很大的帮助。这篇东西拖的有点久,是我15年的计划之一,现在竟然把这个任务拖到了16年了,毕竟自己在这新的一年里有新的目标,所以会把旧的坑先给填上,后面的一些地方翻译的不是很好,有些比较难理解,请大家谅解。


(译者注: 后现代主义:在知乎查到一个有趣的答案,现代主义是绅士的话,那么后现代主义就是一个嬉皮士,玩世不恭。)


以下是Perl语言之父Larry Wall在1999年的演讲:


感谢大家的到来,我希望这次演讲的主题能吓跑那些不应该在这里的人。显然我应该定一个更吓人的主题。


Perl遇到Godzilla(哥斯拉)?Bambi(应该是动画片里面的斑比)遇到Perl?


我给Feed杂志做了一次采访。当我读到他们对采访的介绍时,我对他们提及我稀奇的演讲(curious speeches 有点难翻译)十分感兴趣,我把它当成是一种称赞。为什么我把它当成是一种称赞是我这次演讲的主题。假如这次演讲真的有一个主题,这个到现在还是个疑问。嘿,至少它有一个标题了。就是一些东西。


顺便说一下,我计划留一些时间来提问和作答,所以你们在我演讲的时候要想好提问的问题。


当我被邀请来这里演讲的时候,我突然想到的是大部分人对Linux比对Perl感兴趣,所以为了这一次普通而又融洽的会议起见,我想我应该将Linux和Perl都讲一下。为此,我找出两者的共同点,当然明显的共同点除外。


很明显,Perl和Linux都拥有很多Unix文化,这点已经很好地被证明了。如果我仅仅指出明显的共同点,那我全部时间就在讲那些你可以直接从手册上找到的东西了(或者我应该说,你应该自己从手册上找到这些东西?无论如何......)


但是我今天来不是教你们怎么使用Perl或者Unix,也不是来这里跟你们讲解Perl和Linux是什么。


我要讲的是为什么Perl和Linux都如此成功。注意,我衡量成功的标准不是用户量的多少,而是以用户的满意度来看。


所以我对Perl和Linux的联系进行了更深层次的思考,也让我想了更多软件开发深层的意义。这也形成了这次演讲的主题。接下来我开始讲后现代主义。最后我回到的后现代的主题。

(译者注: 后现代主义:在知乎查到一个有趣的答案,现代主义是绅士的话,那么后现代主义就是一个嬉皮士,玩世不恭。)

但是呢,这次演讲本身就是后现代的作品,我会把很多种很酷的东西加进来,这样你们就不会听到打瞌睡了。


现在的人们对后现代这个术语还是有点腻,好吧,其实腻也是有点轻描淡写了。用作呕来形容更合适。但是无论如何,在70年代的时候,我第一次听到这个词时仍然历历在目(后现代主义者认为事物有无限多层的可能性解释,确实有点恶心)。我想我的整个下巴都僵硬了并且在地板上跳了几下。对于我来说完全不可思议,所有的东西都能跟随现代,现代的想法往往联系到新和这个时候,不是吗?


这种想法对我来说很不可思议,毕竟我花了10秒时间去理清它,或者想我把它理清了。作为一个音乐家,突然想到一个巧合的答案。我对音乐时期是熟悉的:巴洛克,古典,浪漫和现代音乐。如果有一个音乐时期跟在现代后面,那它应该不叫现代。postmodern,后现代更合适,它在现代的普通解释上开了点玩笑。显然现代时期是名不副实的。


但是就如我说的,这是一个巧合的答案。现代时期没有名不副实。确实,普通的单词‘modern’会和‘new’和‘now’联系在一起,但是一个历史时期,我们称之为现代并且将它与new和now结合,以这样一种深刻的方式是因为我们确实看到了整个概念时期的崩溃。现代时期是一个拒绝死亡的时期。现在的世界是现代和后现代奇怪的混合体。更奇怪的是,不仅仅是因为现代时期拒绝死亡,同时后现代也没有杀死现代。但另一方面,后现代也拒绝杀死任何一种东西。


举个例子,几十年来有一系列的圣经翻译出现,你会发现一种形式:举几个来说,新英国圣经,新美国标准圣经,新世界版本。这确实很有趣。我怀疑我们一百年后还是叫“新这”和“新那”什么的。像牛津新学院,你知道新学院是什么时候建立的吗,随便猜一下,新学院新在1379年。


几天前在去学校的路上我和我女儿讨论这些。像平常那样,我打开广播收听新闻,Heidi(作者女儿)开始在音乐站台上听音乐。因为这是父亲的危险之一,我只好说,我要在星期三的时候演讲后现代主义,我应该讲什么呢?


她说,就像,你不用任何理由证明任何东西。你喜欢它就可以当成东西,你知道这很酷。现代的东西的话,你需要证明一切。


我说,我还是觉得我一直在向很多人证明Perl。


她停在一些有趣的音乐站台,说,这是Dave Matthews' Band。关于他很酷的东西就是他自己,似乎,发现所有有不同风格的艺术家,以你从未听过的方式组合在一起。


我说,这不是很有趣吗,木工正在逐渐衰落的文化里面,后现代主义却变成了其中的一大部分。


Heidi皱眉说,爸,这不像某种一时的流行。后现代主义比这个更深层次——它真的是出现在它之前的任何东西的极点。好像它兜了一圈。不想我们会停下来做下周要做的事情。


我说,我怀疑你是对的,毕竟,很多早期不同的音乐在不同时期已经划分好了。


这不只是音乐,她说。


好吧,当然不是,我回答,所有的东西一起,但是有些学科会以不同的速率改变。星期三我演讲的原因是,我觉得计算机科学中间还有一大段时期的现代主义,很多人都脱离了他们的文化。另一方面,我真不是和现代主义斗争,因为后现代主义包含现代主义,将其作为一种有效的思想来源。事实上,Perl包含了计算机科学的很多现代思想,所有剩余的思想都在里面了。


Heidi说,你想真正知道有趣的东西。在我的IMP课,我们班的口号是,实现它有多种方法。


你在开玩笑,我说,[我应该说IMP代表了交互数学编程,是你在学习其他东西之前首先要学习的一门数学课程。用一种后现代主义的方式。]不论怎样,我还是说:“你在开玩笑。”


“不,”她说,“这就是为什么IMP对于像我这样的数学专业的学生更好——当我们看到大体的框架还有一切东西都符合它的时候,我们学得更好,旧的方式从没有给你上下文。”


当我正在领会这段话,并且考虑把它应用在计算机科学的时候,她继续说:“好吧,像是,你知道的,我们学校有句谚语,当有人在某件事情紧张的时候,我们会说:‘Tsall good。’如果有人沮丧的时候,我们会说:‘Tsall good。’”


“但是事实上你们不会认为所有东西都是美好的,是吧?”


“是的,当然不是。”


“你说的是任何事情都有好的因素在里面吗?”


“不是的,爸爸,我想我们说那句话的时候,整体上,事情是美好的。像是,你看那一大幅画,不要心想着刚刚发生在你身上两三件不好的事情。”


我写这个对话不仅仅是我觉得我的孩子可爱又聪明,还有是对于了解我们文化未来的方向是重要的,是我们的孩子塑造未来的文化。我不认为我对后现代主义下的定义好过Heidi。看那一大幅画。不要只想着对其他两三件事情的排斥。把所有东西连贯起来 。不要浪费力气去判断那些明显很酷的东西。不要嘲笑那些不新和伟大的想法。选择你自己的时尚,不要让其他人告诉你应该成为怎样的人。‘Tshall good。’


一切都很好,但是我问你,如果一切都好,那其他的每一个呼吸,我女儿会说糟糕吗?


这是一个迷,如果我们能看穿,也许我们能学到一两件东西,我想这里发生了一些事情,我们的文化经历了一次基本的变化,它确实健康。过去我们经常从低位和荣誉上评估每件事和每个人。这个基本的潜在的假设是我们都必须同意某些事(某些人)是对是错。我们大多数人惯于相信单一文化主义。虽然当时,我们没有真正地去实践它。但事实上,你可以说现代主义的关键是打破我们的文化假设。我们可以整天争辩后现代主义的出现是因为现在主义的成功或者是它的失败。作为后现代的我自己,某种程度上,我保持着两者的观点。


这个会困扰现代主义者,因为现代主义者必须决定这是真的还是那是真的。现代主义者相信或者(OR)比相信和(AND)的更多。后现代主义者相信和比相信或者的更多。在非常后现代的StephenSondheim音乐中,Into the Woods,一首女英雄的挽歌,“它一直是或者,从没有过和?”当然,那时,她试图对不贞的关系找借口 ,所以我们可能放弃这个例子。好,嘿。至少我们可以用Perl作为一个例子。在Perl里,AND比OR有更高的优先级。你听着,这证明Perl是一种后现代主义的语言。


但是回到现代主义中的单一主义,或者假设是单一主义。大体上说(还不包括中西部部分地区),现在我们都试图从这种假设中解放出来。我们自由地基于好和坏评价事物(或人),而不是去相信某人。


不仅如此,我们还被要求作出个人决定,假设是不是每个人都同意,或者不是每个人都被要求同意。但是,我们在交易中失去了单一主义,我们现在被要求讨论事情。我们没有被要求去同意所有的事情,但是我们被要求至少同意不同意这件事。因为我们被要求讨论事情,这使得我们去解构我们评估的事情。我将进一步讨论解构主义的利与弊。但是让我举个例子来叫醒你。


现在地球上最解构的男人是Bill Clinton(克林顿总统)。公众,后面的参议院,选择除去克林顿对政府的适合性外评价克林顿的道德品行。我不会对我是否支持这个决定下任何评论,但是我想指出这不可能发生在30或40年前。我们没有后现代。我们必须有一个总统,或者没有。所以人们密谋以确保我们有一个总统(尽管像把戏一样欺骗我们当时如现在)。任何东西以前都是黑白,像我们的电视一样。我们总统看起来不错直到我们中的一个人不能让他看起来不错,然后所有人让总统看起来很坏一阵子。自从尼克松之后,我们没有用解析尼克松的方式去解析其他总统。尼克松还是巨大的,尽管我们试图忽视他并事后解析肯尼迪。可能这一切和一句话相关“美丽是肤浅的,但是丑陋是深入到骨子里面的。”


如果是那样的话,我对那些只有皮肤和骨头的额人感到可惜。


现在你可能想知道这一切和Perl有什么关系。我也是,我现在会思考一些事情。


时间过去。。。。。。


当我思考在我的演讲中要讲的下一件事的时候,让我说多一点关于解构主义的东西(解构主义是对传统哲学发起的挑战,这编程的作者也是个哲学爱好者)。我没有把解构主义当成后现代主义的一种形式,也没有视解构主义为后现代主义和现代主义之间的桥梁。现代主义,作为古典主义的形式,一直为简单作斗争,因此本质上是简化论。就是说,他倾向于把事情碎片化。这点没改变太多。这就是现代主义趋向于取一块碎片隔离并以之为荣,后现代主义首先展现所有的碎片,然后关联它们。


例如这场演讲。如果它是现代演讲,我会尽量让它有个主要观点,然后用很多东西来驱动它,让它保持前后一致。

相反的是,我让你看到在我写的同时,我思考的过程中有所进展。我会把演讲暂停在和我暂停我的思考过程一个点上。假如我是个记者,我会在用写报道时同样的时间去讲我写报道的焦虑,假如我在建造建筑物而不是演讲,我会把它的大体构造和管道系统展示出来。这些都是解构主义的形式。


顺便说一下,我还在尽力考虑如何把这些和Perl关联。


更多的时间过去。。。。。。


我第一次听到后现代主义是在70年代末的西雅图太平洋大学,从我妻子的文学评论教授,Dr. Janet Blumberg。

后现代主义很早就在文学出现,所以我们第一次从文学评论家那里听说也没有什么惊奇的。还有,不要把文学评论家想成你想戏剧评论家一样。文学评论家通常知道他们在讲些什么。


即使他们是错的。


无论如何,我从Dr.Blumberg这里第一次听说,一个不会错的人,所以我们自然而然想到文学。事实上,大多数人还是把后现代主义视为不可思议的文学。但是,我们很快找到,后现代主义也来到了建筑学。西雅图太平洋大学想要建一新的科学和数学的建筑,所以他们通过运河来回收仓库。注意后现代主义的第一个元素——他们重用一些旧东西,取其精华,去其糟粕,尽管他们不会对自己说,“这很规则“或”这个很糟糕“。但我确信他们思考了它。他们同一时间制造了一个舒服的空间,像包含沙发的学习区域。并且他们把所有的构造和管道系统展示出来,因为他们觉得这很酷。他们这样做是因为这事是后现代主义,尽管他们不知道这是什么。


我想我现在知道怎么和Perl联系了。


当我写Perl的时候,我沉浸在后现代主义中,知道我想做什么。确切的说,我要做的东西原来是后现代主义,因为你不能做些后现代主义的事情,你只能做某些很酷的事情原来是后现代主义的。嗯,我相信这个吗?我也不知道。或者。有时。你会发现这真的很难相信,但是我没打算着手写一篇后现代主义的演讲稿。我只是想讨论下Perl怎么后现代主义。但他会发生。所以你能看到所有的管道系统。


无论如何,回到Perl。当我开始设计Perl时,我很明确开始着手解析我知道的计算机语言然后用一种不同的方式重新组合和重构他们,因为这里面有很多语言的东西是我喜欢的,还有很多不喜欢的。我钟爱于重用很多语言里的特色。(我认为现代主义者会说我偷取了其他语言的特色,因为现在主义者关注原创性。)无论你选什么动词,我已经在过去的时间里从C, sh, csh, grep, sed, awk, Fortran, COBOL, PL/I, BASIC-PLUS, SNOBOL, Lisp, Ada, C++, and Python做了这件事。某种程度上说,Perl很规则而不糟糕,大多数语言的特色也是规则而不糟糕。


但是注意一下这里有很重要的东西。我抛弃的东西比我留下的多。很多。现代术语来讲,有很多东西很糟糕。现在,在特性的问题中,Perl总是得到很大的负面说法。


我想那些对Perl的特征集做负面新闻的人应该担心下他们的做的报告。


我选出的Perl的特征集是因为我觉得他们是很酷的特征。我没有用到的那些是因为我觉得很糟糕。


不仅如此,我把这些很酷的特征结合起来对于我这个后现代主义的语言学家来说是有意义的,却不是对典型的现代计算机科学家有意义的方式。想想现代主义的本质是想出一个很酷的想法并持续使用它(drive something into the ground 有点难翻译)。着眼于计算机语言,不难发现,有些编程语言尝试通过持续使用某些东西而变得现代。想想Lisp和括号。Forth和堆栈代码。Prolog和回溯。Smalltalk和对象。(如果你没想到Smalltalk,想想Java和对象)


想想Python和空格。你好,Guido(这段话很搞笑,Guido是Python的作者,最近学的Python和Lisp的特点就是缩进和空格,译者注)。


或者想想shell编程和简化论。多少次我们听到,程序应该做一件事情并做好这样的咒语?


好吧。。。。。。Perl就做一件事,并且把它做得很好。它做得好是它把所有的特征结合到一个语言中。更重要的是,不会因为这样而使得各个特征看起来都一样。管道系统不应该看起来像大体架构,大体架构也不应该看起来像管道系统。他们也不应该像水管。还有个重要的是水管也不应该看起来像下水道,或者气味也是相似。现代主义者说我们应该让所有东西看起来都一样(最好是无形的)。不同的东西看起来应该不同。现在主义者们说把它们突出并看起来不同是可以的。因为管道看起来应该像管道,污水管看起来应该像污水管铁锤看起来应该像铁锤,一个电话看起来应该像个电话,或者是星际迷航的通信器。不同的事物看起来都应该不同。


你该听过一句话:如果你有一把锤子,所有东西看起来就像钉子。这实际上就是现在主义的说法。后现代主义的版本是:如果你拥有的东西只是胶带(特指封水管的那种胶带),所有东西看起来像水管。好吧,上次你用水管的胶带是什么时候。


有趣的是,现代主义本身像是一种锤子,他让所有东西看起来都是可以钉的。60年代是现代主义的抗议活动:如果我有一把锤子,我会敲击陆地上所有的东西。注意永远在钉子上面,也不管他是否被敲碎。现代的年代,很多东西都遭受锤击。其中有,建筑之美。从城市的地平线就可以明显看出。可以很容易告诉你那栋建筑是50年代和60年代的。他们看起来像盒子。我们第一次见到他们的时候,我们觉得他们看上去非常现代。好吧,他们确实如此。但在西雅图第一家国际银行建好的时候,你应该猜到,西雅图,我们总是拿太空针塔进了盒子来开玩笑(The Space Needle,太空针塔,西雅图一建筑)。至少太空针塔是可爱的,有点像Jetsons的可爱(Jetsons是一部美国动画),但是太空针塔不是很实用,除非你想去旋转餐厅。


事实上,在很多层次上,现代主义给我们带来了很多不正常。每一个文化机构遭受重创。政府受到影响,学校受到影响。当然家庭也受到影响。每个人都受到影响,因为现代主义是关于攻击问题的。现代主义是一把锤子。(我想做一个锤子和镰刀的双关语,当我不确定他会是什么。当然,俄罗斯早遭受的现代主义重创比我们多,在马克思主义下。我知道什么叫重创,我也经历过。)无论如何,回到我们的演讲中,现代主义简化了,直接把重点放到了锤子和钉子上。


相反,后现代主义把注意放在木匠上。我们注意到,木匠会选择使用或者不使用锤子。他们如果选择锯子和胶带,也可以使用这些工具。他们在事情上也拥有一定的自由。他们允许具备创造性。特别是如果他们是在Winchester夫人的房子里工作。嘿,这是正确的,如果你不相信我。


所以,把主题放回到计算机上,后现代计算机语言的特征之一就是不放太多的精力在问题的解决上,而是在尝试解决问题的人身上。我认为Perl做到了,同时我也认为,在一些和其他层次上,他是第一个做到的计算机语言。我也很喜欢这样认为,在许多方面,它也是唯一做到的语言。


Perl如何把精力放在程序员的创造性上呢?很简单,Perl很谦逊。它没有告诉程序员如何编程,他让程序员制定规则,还有丢弃哪些。它没有要磨的理论轴。有理论轴的地方也不需要磨。Perl根本上没有任何议程,不同于给最大人数的人们最大限度的使用。成为互联网的胶带还有其他的一切。我确信你应该听过这个笑话。胶带的力量有多大呢,他有一白边,有一暗边,它把宇宙连在一起。在这个演讲中,我打算定义宇宙并给出三个例子。


在这里有必要坦白一下。我和Linus——我想个人地征服整个世界。我想征服世界是因为我是一个极端个人主义者。很好的那种极端个人主义者,会被谦逊的价值信仰所缓和的极端个人主义者,尽管我是个极端个人主义者。


幸运的是,我不是Perl。在它是其他之前它是我的仆人,所以我把能教我自己的东西教给Perl成为一个更好的仆人。Perl像一个完美的管家。无论你叫Perl做什么,它会说:“好的,先生。”或者“好的,夫人。”Perl偶尔会翘着上唇,或者说:”啧啧,啧啧。“但是假如你问下Perl观点的话,他会建议你的品位问题。”我很抱歉,先生,但是在'strict subs'使用时,裸词'foo'不能被使用。“


相反的现代的想法是计算机应该怎么表现,这看上去高人一等:”我很抱歉,Dave。 我不允许你去做这个。”


麻烦的地方是你有一个顺从的佣人,他把负担放回你身上让你去做决定。想起来了,这个有一个顺从的妻子是同样的问题。我的妻子很顺从。她总是说:“我把问题丢给你是因为我不想决定它。”啊,也是。


如果决定的负担在程序员身上,那么程序员可能会把事情搞得一团糟。Perl程序员也可能写出糟糕的代码。(万一你没有注意。)Perl程序员也可能写出极其简洁,漂亮的程序。


让我声明一下我在这种极其可能发生的方式上声明一下我的信仰。这一事实是,用Perl可能会写出糟糕的程序,或者写出比其他试图执行清洁的语言更简洁的程序。更好潜能伴随着更坏的潜能。婴儿有好和坏的潜能,至少在短期内。美国总统有着巨大的好和坏的潜能。


伟大的衡量在于你能给别人多少自由,不是你去强迫别人你想做的事情。我记得我年轻的时候做祷告,那时我只是个小孩。“上帝是伟大的,上帝是好的,让我们感恩他给我们提供食物,阿门。”好吧,我在这里要说一下阿门。上帝的伟大和美好的衡量在于他给我们的选择。他没有要求我们要为食物而感谢他。(即使你没有注意到)上帝不是一位现代主义者。他没有将我们视为蜗牛。上帝期望我们是木匠。事实上,他给我们提供了一个木匠的例子。


所以我认为上帝也是后现代主义。对于规则和糟粕的东西有他自己的想法,然后他没有期望我们其他人都赞同他。提醒你,他喜欢人们赞同他,我也喜欢人们赞同Perl。但是我不期望每个人都赞同我。当然,我忠实的粉丝希望所有人都赞同我。我尝试把它想成是一种可爱的品质。私底下,我想了句Perl的标语,这里有完成它的多种方法,使用Perl的表面和内在。我很明显地给人们自由不去使用Perl,就像上帝给人们选择去地狱的自由一样。


只要我们在一个魔化的的思想体系里面,让我妖化成现代主义多些。事实上,后现代主义容许现代主义作为灵感的来源之一,还有浪漫主义,古典主义,呃,呃,巴洛克主义。巴洛克?当别人说Perl是巴洛克的时候,我认为这是恭维。我想起了JS.Batch,他写了很多很酷的东西。Handel也是一样。


无论如何,回到现代主义。后现代主义的一些灵感来自现代主义。还有,事实上,后现代主义不可能在没有现在主义之前发生,因为结构主义同时是现代和后现代的,简化还有整体的。尽管如此,后现代主义解构了现代主义并且决定了其中的大部分是糟糕的。在宗教方面,现代主义可以视为一系列的崇拜,后现代主义是对这些崇拜的逃避。如果你愿意的话,是解除洗脑的一种。也许这场演讲的标题就该这样,”Perl,第一种后现代解洗脑的语言”。


我们不会有“Perl文化”有时被缩短为“Perl 崇拜”这样的事实。


我把信任给到值得信任的地方。然后展示我的管道系统。我不是都是自己思考全部东西的。我和我的老婆和女儿(对,就是那个)一起飞去西雅图,因为我女儿考虑报西雅图太平洋大学,颠覆性的现代主义的温床。吃惊,吃惊。所以我问了我妻子现代主义和后现代主义的区别。毕竟,一个人总得和配偶讨论点什么。


特别是在女儿面前。


在我拿到现代主义崇拜的列表之前,虽然我记得西雅图太平洋大学另外一个可爱的故事。学校被现代主义艺术家委任创作一个现代主义的艺术作品,你知道是哪种,一个雕塑,如果你能称呼它的话,被放在学生会大楼前面的草坪上,每个人开车都会见到的校园一角上。这种就被定义为现代。它有两面大黑色平面组成,还有部分圆形和方形,彼此倾斜着。这事实上很可怕,你知道是哪类。


好吧,有一天我们注意到这个巨大的雕塑有很多孩子。有七八个小乞丐,完美的小复制品,围着他们的妈妈。这很美妙,很宝贵,很有趣。至少,在现代艺术家进来之前还是有趣的,没有幽默感,移除他的艺术作品,没有东西再次威胁到西雅图太平洋大学。很好的摆脱,我们想,然后我们笑了,我们还在笑,即使你们还没有注意。


无论如何,回到崇拜对象。刚刚我讲的故事说明了他们其中的几个。第一个,我们有贫苦的崇拜(Spareness这里不知道翻译成什么合适)。我刚刚提到的现代艺术的例子就很spare。它是简约的,它几乎就是朴实的艺术。它想灌输的情感就是想捶打某些东西。我们感觉像钉子。


很多现代语言追求简约。他们都没成功,某种情况下他们相对无用,或者在真正的简约上没有成功,某种情况你可以用他们解决实际问题。大多数语言只是口头上书说说他们简约的想法而已,但仅仅只是清扫了下程序员地毯下一些问题的复杂性。C是一种简约的语言,但只有在你没有计算所有库中有必要的使用起来有用的那些库这个前提下。C++明显没有试图变得简约。Unix被某些人认为是一个简约的操作系统,但是事实是如果你认为Unix是一门编程语言,他甚至远比Perl还丰富。在大体上说,Perl是Unix的是一个摘要精简版本。是Unix的精典荟萃。


Unix(还有它的扩展Linux)是真正地同时现代和后现代。Unix哲学是简化和简约。但是不是现代主义的话,Unix事实上也是结构主义的结构主义的可取之处是它也是重建主义。当你把东西拆成二进制,你会被要求用不同的方法把它们放回去。为了解决实际问题,Unix要求你不只会简化,还要懂得全体。在shell脚本中展示管道系统并不偶然,只有我们称之为管道。


后现代主义不怕装饰物,因为后现代主义是古典主义到浪漫主义的一个后退。这个钟摆是周期性的。古典和现代的时代的艺术是用简单发现美。巴洛克和浪漫主义的时代的艺术用复杂发现美。我想这是一个很有趣的同步性,即使我们的艺术再次变得复杂,科学仍然可以用复杂的理论发现美。也许这是一个多同步性。只是现代艺术耗尽了所有大锤子的可能性,科学也是。总之,我们太久过分单纯了,连一片叶子复杂性里面的简单性也看不出来。我告诉你Perl在复杂性上很简单。但是某些人不能理解。除非你做了,我是假装我没说过。


我能继续讲简单性,但是让我们说一下下一个崇拜。现代主义也是对原创的一种崇拜。它不管雕塑看起来是否可怕,只要它是原创的。它不关心音乐里没有音乐。剽窃是很大的罪恶。给你的作品贴上“模仿”的标签是最大的侮辱。现代唯一不受原创崇拜很大影响的艺术努力就是建筑学。建筑为简约和功能而建而不是原创。某些值得注意的例外的建筑看上去像现代艺术,通常他们里面就包含了现代艺术。很奇怪是怎么发生的。


原创崇拜在计算机科学也出现。出于某些原因,学术界的很多语言受到这个影响。所有东西从第一原则开始重新设计(某些例子,zeroth原则),语言里面没有一样东西跟你你以前见过的语言里面的任何一样类似。然后就是语言设计者奇怪为什么他的语言没有流行起来。


没有一门计算机语言是孤岛。


你没注意到,Perl没有很大的创意。来想想看,Linux也是。这个困扰你吗?很好,你的文化变得更加后现代主义主义。


下一个最流行的那批崇拜中的是严肃的崇拜。回忆下现代艺术下是多么严肃看待他和他的作品。他不能自己嘲笑自己。


我发现了很多不会欣赏幽默的无幽默感的人。O'Reilly & Associates 出版社给我一些消息是我的书,骆驼书,包含的笑话冒犯了一些读者。读取这些人的信息是件有趣的事。这让我想起我坐在 Palo Alto电影院的时光。那是幕间休息,我们在看一个关于不正常的家庭的滑稽演出。你知道的,情景喜剧,观众在第一场演出中全程在大声喝彩。总之,在幕间休息时,一个老家伙在我后面用深沉的嗓音跟他妻子严肃地说,“我没看到多有趣。看起来就像个普通家庭。”


我承认,我不得用手像Tom Christiansen遮住我的嘴防止大笑。这是我听过最有趣的事之一了。好吧,也许你需要在那里。


后现代主义不怕嘲笑它自己,也不怕时髦,不会怕现代主义者称之为媚俗的东西。你知道的,是一种沿着这条路的解放还有成功的大叫,”新害虫,Pea soup green。” 后现代主义不会怕怀旧那些老的鼻涕害虫。多愁善感很酷,如果你做了这种事情。复古规则。除非它摇滚。我不知道是多愁善感地规定还是摇滚,反正这很酷。


就像Heidi要说:“伙计,我要爆发了。“


你会注意到我一直和我老婆和女儿讨论。万一你没注意的话。现代主义者会想当然跟你解释我采用比较低级的情感技巧来建立和观众的感情纽带。后现代主义者肯定同意。但是后现代主义者会指出低级的技巧要比昂贵的技巧花费少。把你的管道系统展示出来比藏着它便宜。尽管它不会很便宜,这更加娱乐。我发现了Iron Chef节目的娱乐,这肯定是现代主义的表演。这些日子电视上有很多很酷的东西。我女儿很喜欢Daria,因为她是愤世嫉俗的,包括她自己。还有如果你喜欢看厚颜无耻的现代主动画,你会被Revolutionary Girl Utena吸引。


好,差不多了。让我们看一下下一个要讲什么。噢,噢,来了一个权贵。客观的崇拜。


你知道,现代主义很努力,真的很努力,真的真的很努力。它努力摆脱约定。它觉得它摆脱了约定。但是它真正做的只是把约定变得不可见。至少对它自己来说是这样。


简化论者经常感觉他们客观。但是简化主义的问题是,你把宇宙分成足够多的部分,你就不能跟踪它们。心理学家告诉我们人的大脑只能跟踪大概7种东西,再次基础上加减2。这是对短期记忆来说。在长期记忆中这变得有好有坏,但是原则仍然有效。如果你失去了某些东西的追踪,是因为你认为它的重要性降低了,还有没有经常地想起它。这就是现代主义者在文学上发生的事。他们经常忘记文学的重要性。


注意我们还会周期性地听到”严肃文学“这个短语。这恐怕是关于现实生活的文学。让我告诉你点东西。我读过最严肃的文学是Lois McMaster Bujold写的。有人读过她的作品吗?它也是我读过最有趣的文学。也是太空歌剧。“虚构类型,“嘲笑现代主义者。意味着它遵循一定的规范。那又怎样?没有人能像Bujold在她的Vorkosigan书那样将重力和浮力结合在一起。这才是真正的生活。如果它遵循太空歌剧的约定。十四行诗也应该遵循某些约定,我没见他们被嘲笑。当然他们总是被称作“严肃的”。


Bujold的作品多久才成为高中要求的读物?依我看,很久。恐怖的是,我们没想过学生们喜欢读什么。这不是,这不是真正的生活。


似乎《蝇王》才是真正的生活。


Perl编程是不加修饰类型的编程语言。它有约定。它有文化。Perl是第一种有着为语言多样性设计的文化的计算机语言。我们没有客观地看待Perl,但是作为后现代主义者,我们自由地承认自己是不客观的,当我们想让人们认为我们是客观的时候,我们试图补偿它。当我们想认为自己客观的时候,至少,没人令人反感。


或者,至少,不是面向对象的。


然而我想讲一件关于客观性的事。当我看不起现代的客观性崇拜的同时,我也看不起类后现代主义对主观性的崇拜。我称之为绝对的文化相对论。认为一切的东西和其他的一切东西都一样好。因为善良只是看法的问题。就像声称你唯一绝对知道的东西是你绝对不可能知道任何所有东西。我想这是现代主义的另外一种形式,一种存在主义,尽管不幸的和后现代主义关联。但我认为它是糟糕的。


有趣的事是,它几乎是对的。事实上,这和我做的很接近。我讲了这么多来声称自己是个重度的后现代主义者。重度的后现代主义者说所有的真理都是被创造的。这真的对那些相信造物者的人来说不是问题。所有真理都是创造相对的,有些人对于其他人更相对。大哥比喻,一个宇宙真理只有对我们特定的宇宙才是真的。宇宙本身的真假并没有太大关系,只要它一个好故事。我相信我们的宇宙确实写了个好故事。我喜欢作者。


我也喜欢Lois McMaster Bujold,所以我读她的故事。Tolkien和C.S. Lewis也是一样。反转一下,有些人喜欢Perl是因为他们喜欢我。跟他们争论我是谁吗?你们关于Linus和Linux完全客观,对吧?嗯哼,三次干杯的客观性。


我讲崇拜讲得有点累了,你们也听我讲崇拜听累了。但是,我想讲一下现在关于开源的现象,我怕我偶然会被拖进崇拜里面。但是不要害怕,我认为开源的运动,事实上,是后现代主义的运动。

想一下,我们做开源做了几十年了。为什么现在就开始起飞了?为什么不是二十年前?Linux可能二十年前就写出来了,即使不是Linus写的。



当然二十年前Linux为什么没有被写出来有很多种平凡的理由。至少是当初我们没有普及和便宜的硬件来支撑。我们也没有网络来支持合作开发。但是因为这是一场哲学演讲,我会忽略事实讲讲我想的接下来的东西。这是崇拜再次回来的地方。

对于缺乏的崇拜使我们都应该使用同样的操作系统。当然,每个人对于它是什么都有自己的想法,但是比尔盖茨是
在实施这条规定里面最成功的。如果现在他在接受审判,他可能最终不得不同意和解的规定。总之,这糟糕的一年被
叫做Bill。狼在盘旋,等待进一步疲软的现象,每个人通过加入LinuxWorld来下赌注,确信媒体会知道它。



与此同时,回到宇宙的Unix面。创意的崇拜规定,如果你要做某些事情,这件事情必须是新的。再实现开源的Unix是可笑的,特别是因为大学可以拿到Unix的资源而不用做什么。当除了贝尔大妈的其他公司发现他们需要Unix的实现,他们把它做得与众不同以便于在市场上区分它们。这就是,为什么他们必须写原创性。

严肃性的崇拜规定每个人要隐藏自己的源代码,因为其他人会嘲笑我们的代码有多烂然后让我们去修改它。更糟糕的是,有些人会偷窃我们的烂代码把它写好。然后我们会失业,生活是一件严肃的事情。瞟一眼Unix的源码价值100000美元,因为我们可以得到那么多。编程的乐趣是这个?找找真正的!

最后,客观的崇拜规定我们做生意明显的唯一方式就是做生意。我们的文化是唯一可能的文化。这里没有社会习俗。这些不是你要找的机器人,走开。

简单说,考虑下如何整合一个开源项目,例如Linux或者Perl。你需要很多认为编程是很有趣的人。你需要分享的文化,恰好是那种借东西不感到羞耻的文化的另一面。你需要那些功能失调很长时间然后正在寻找新的方式形成社区的人。你需要那些愿意代表他们文化的人,同时与世界其他的党派保持高效的非党派联系。创建一种新文化并去掉人类其余部分并不是一件有趣的事。不,有趣的事情是尝试说服其他人分享你们哪些是规则哪些是糟粕的观点。没有比传道有趣的事。
这个世界有两种参与者。按照人类学思考。这里有加入部落的一种人,也有被吸进来的一种人,像一黑洞。这是你最后听到他们,除非你恰好和他们一起遇到了黑洞。只要是拉拉队,我们希望他在我们部落。

但是开源运动是受到另一种参与者的激励的。这类参与者加入了很多部落。这些人居住在维恩图的十字路口。他们相信ANDs而不是ORs。他们是多个子集,多个部落里的成员。这些人重要的原因是,像穿梭在真正部落的商人一样,他们把想法从一个聪明的部落带到另外的部落。我把这些人称为“胶水人”,他们不会只参加一个部落,他们会一起加入很多部落。二十年前,你不能轻易地成为一位胶水人,因为我们的文化还不足以接受多样化。也不接受共享的信息。如果你被贝尔实验室吸进去,你可能在外面偶尔地Usenix,就是那样。但如果你被NSA吸进去,就没人在会听过你了。想想看,这是事实。

这听起来我的演讲快要结束了,但是我还有一大堆事情要,所以我继续。谁知道,也许有联系呢。

有一天,我跟一个叫Sharon Hopkins的胶水人谈话。在其他方面,她因作为一个Perl诗人闻名,因为她比其他人用Perl写了更多的诗。她还写一种非Perl的诗歌被另外的诗人称为“sharonesque”。这里有个很漂亮的例子:

我旅行到时间的尽头
为了你,我的唯一,我唯一的爱人。
我迫使太阳离开了轨道
(如果你消失)取回你。
我吸着酸橙的汁,
我押韵重写了白鲸,
我愉快的犯罪!
为了你,我最亲爱最亲爱的鸽子。
我做了这一切,还有更多————
现在你*会*把垃圾扔出去吗?
                 
                  Sharon Hopkins 1989-90 冬天

我把我对诗的反应写了下来。事实上,有两种反应。我不会造更长的一个,这里有更短的一个:

我无数次倒垃圾,
我在恶劣的环境下倒垃圾,
我倒垃圾"因为这是我要做的",
但我*不会*倒垃圾如果是你叫我做的。

是的,现代主义制造了很多不正常——没人纠结这个。我们被鼓励反抗,解析,切开我们的论文,离家出走然后服下毒药,不要结婚等等。现代主义把很多东西都撕开了,尤其是家庭。对于我来说有趣的事情是后现代主义传播功能障碍,因为他发现了功能障碍的意义。后现代主义是现代主义的结果。

首先,注意你不能反抗不正常了。这不再是有趣的——我们已经做过了。

但它不止这样。想想Perl文化是一个不正常的家庭。或者想想网上出现了很多社区。想下我们的在教堂中的Gen X组还有他们的后现代主义品味:夜总会混杂着蜡烛的装饰。但这真的是在一起。现在,家庭是你发现它的地方。家庭是你创造它的地方。

我想Sharon知道她讲的是什么。她还在线和她的现任男友见面,但是不要告诉她是我说的。无论如何,我想她在现在的网络工作的方式上有有趣的见解。想象下,开源只是家庭需求的副产品。所以,看看你们所有人。你们只是个大又不正常的家庭视图创造意义。所以不要紧张。我不会要一群拥抱。

让我看看,我还能说些什么。你理解有多少东西能够简写为“pm”?首相。下午。后现代主义。Perl模块。Perl商人。今天这里还有多少个Perl商人。你看——还有一个不正常的家庭。你们这些家伙在酒吧上可以出去之后一群人可以拥抱。

好的,让我想想。“pm”是Perl模块的简称。这就是为什么,当然,我们用“.pm”作为Perl模块的扩展名。曾经我们也用“.pl”作为Perl代码。人们还在windows上使用“.pl”,但这是因为他们还是处于现代。无论如何,用“.pl”作为Perl扩展这里有件有趣的事情。人们对于C之后的下一门语言是什么争论了很多。每个人都知道前一种语言叫“B",在BCPL第一个字母后,比B来出现得早。被推荐的候选语言是”D”,因为是字母表里的“C”下一个,还有“P”是因为是BCPL里面的下一个字母。

好吧,像你们所见,它没有成功。C的一个继承者是C++,也是自增操作符的一个双关词,但是争论C++文件的扩展名应该是..c,.cpp,.cxx是一件绝对痛苦的事情。我想作为一个后现代主义的人,我不应该关心它的多样性,但某种程度上我会。我想有点不一致对灵魂来说是好的。

无论怎样,其他的C的继承者不是吞掉一个单词而是两个。这就是为什么很多Perl脚本有扩展名,“.pl”,完成了“BCPL”。某种方式上,这是一个遗憾。现在不会再有一种语言叫“L”了。也许只是这样。除了一年一度的圣诞节双关语我们会得到”noel,noel“,这里还有个问题就是人们会对lex语言感到疑惑,一种使用了”.l"为扩展名的语言。因为lex用了它,noel是可用的。所以说,抱歉。
无论如何,历史不迷人吗?尤其是后现代主义的历史?如果是Heidi她会说:“Tsall good.除了它糟糕的时候。”
或者像Tiny Tim说的,上帝保佑,每个人。
如果有谁想让我停止演讲,你最好问我问题。





不过,事物改变得很快,跨越间隙的桥梁变得坚固。现在人们可以越过大峡谷传送文化基因而不会钉死在桥的一端或者另一端。当我们开始传送文化基因的时候,我们发现我们没有一堆独立的开源运动,而是单独的一场大开源运动。可以肯定的是,它是一场模糊,后现代的运动,含有大量的多样性还有一定的混乱,但是是一样好的运动。我们都在吸收一些稍微不同的东西,但是我们基本上同意无论我们现在做了什么,旧方式的商业吸收了很多不好的东西。我们同意去同意。除非我们不这样。


好吧,无论如何,Sharon的大部分诗都是有联系的,就像一个后现代的胶水人。就像我说的,我们最近都在讨论。奇怪的是,主题是后现代主义。真想不到。我们讨论后现代的家伙们把愚蠢的东西和其他混在一起。她也像Iron Chef。那是一个你在认真做饭的地方混入了愚蠢的米饭来做最好的饭的电视节目。看评委评出那顿饭是最好的部分。我们也谈论革命女孩Utena,我们把绝对的命运启示和落在橱柜的章鱼混在一起。这些节目都是任意但又有可爱的约定。无论如何,我讲一下跟我接下来要演讲有关的一些东西,她说了件有趣的事情。



译者后记:

drive something into the ground 有点难翻译,后面再发邮件给作者询问他的意见,是不是continually to use something until it´s worthless的意思,

Larry回我是这样,具体的内容是:

Yes, it means, that, but a little bit more.  It started out meaning that you use something (such as a car) until it's all used up, but it has also come to have a metaphorical meaning, based on the idea that you should have sold the car earlier and got a different car, but your loyalty betrayed you into staying with your original approach.  So in that sense it's more like "stubbornly holding a particular stock when you should have diversified".  In humor, it means repeating a joke that isn't funny any more.  More generally, it means assuming that if a solution worked in one situation, it will work just as well in every other situation.


Jetsons刚开始也是不知道是什么,所以再去问了下Larry,是美国50年代的一部动画,有点像外太空冒险,里面的飞船也是很可爱。


我算了一下,Larry今年61岁,在中国大概就是接近爷爷的那种年纪了,还记得他写东西,而且很热情的回答我的问题,真是满满的感动。


最后在豆瓣中看到一本Perl编程的书,关于译者,是一个很特别的人,那就是逆向英语学习法里面的钟道隆。几十岁那么老的时候竟然学完英语翻译,也会编程。所谓活到老,学到老,大概如此。

你可能感兴趣的:(程序员人生)