我只是尽力使得计算机比程序员多想一些.
到底Perl能够做什么?在地位上,它与sun的其他计算机语言--Java/Python/Tcl相比,到底有什么差别?
Perl的拥护者说,它是一个“瑞士军刀“----一件可以高效地做任何事情的工具. 学习Perl,一个人不必是那种精通Java/C++的编程天才,尽管Perl自己的灵活性使得它有时比较混乱--尤其对那些习惯于只用一种方法解决问题的程序员.但是Perl最大的优点在于它在其他计算机语言之间建立了一座桥梁.
“Perl曾经是,并且继续是原型式的胶水语言“,Chip Salzenberg, Perl最主要的代码分发商之一说.“按照设计,它的演进就是为真实程序员面对日常的挑战、 需要使复杂和非协作的系统协调工作的需求所驱动的。
Larry Wall相信这个演进过程体现了真实的世界是如何工作的.
Perl作了许多工作,Wall说,并且对他认为是你程序的错误给出了很好的反馈,所以当你试图快速开发一些东西的话,会有非常迅速的好转.你试验一些东西,然后它出错,你再改正.你就这样使他成长,发展.我就是这样写程序的.许多人就是这样编程的,他们也是这么去思考的.
Wall说,Perl对真实生活的反映--他的人性特征--是内建于这门语言的深厚的哲学结构.Perl是,第一个后现代的计算机语言,WALL说,一个人造自然语言,模拟了程序员是如何思考的.
所有语言的深厚的结构都是Wall的主要关注点.在他作为一个系统管理员和相关hacking的一生中,他和他的妻子是Uc-Kerkeley的语言系的学生.wall说,他们的计划是,是成为战地的传教士,并致力于翻译圣经.他们将从一本没有书面语言的圣经开始工作,从头学起,再写下来,然后帮助将圣经翻译成那门语言.
他和妻子放弃了这项任务,但是他转而从事另一项工作--协助其他人为实现类似的目标-与其他人想连接做一些有用的事情而努力.当这件事情转而成为创造一门编程语言,而不是彻底地从头建造一些事情的时候,Wall--从他的语言训练中得到灵感--选择去建造一些事情来复制真实的人们的思想和行为.
首先而且最重要的是,这意味着为解决每个可能的问题提供许多不同的途径--这导致Perl的战斗口号,“有不止一条路径可以实现“.“如果你认为人们的语言是一个艺术媒介“,WALL说,“他已经给你创造力的空间.如果你想能够为不同的事情做优化--如果你想能够用同一种语言开处方,作诗,写报纸专栏和杂志专题--他就必须具有灵活性.这与人们在计算机科学中学到的截然不同.人们被教导如果有任何冗余,那就是有害的,恶劣的.从自然语言的角度看,我不买它(指计算机科学的教导)的帐.“
Perl沿着一门真实语言的道路发展,吸收了长期以来其他语言的优点----有一些Unix,一些c++,一些BASIC,一点这个,一点那个.如果其他任何人有一些新鲜,有用的东西,Perl会包含他.当Wall调用这些“后现代主义“的概念,他是指Perl的折衷,包容的方式----在每一个隐蔽处和裂缝中都可以找到的一点点真理的能力---同时不用使它自己被任何大的真理所包围.
当他出现的时候,大多数计算机语言试图使程序员想计算机一样思考“,Wall说,“我试图使计算机比程序员多想一些,并达到了一定程度的成功.问题是,到底谁是主导者,这就是全部所在“.
尽管Perl十分普及,但这门语言不是没有反对者. MarcEwing, RedHat 的首席技术官员,Linux商业版本的主要分发商,情愿使用Python;Infoseek,Internet的搜索引擎公司,用Python做内部开发工作.也许最有力的批评来自Eric Raymond,他长期将Perl吹捧为open source运动最成功的故事之一.“这门语言的设计显示出他的年纪和明显的膨胀的标记,Perl从来不是一个漂亮或者优雅的语言;他的引诱力在于他的直接的可用性.长期之后,在我看来,Larry’s早期选择产生的问题是积聚和加强其他优点只比效益的堆积快一点点.“
“这些问题导致了很多人从使用Perl流失到其他脚本语言,“,Raymond说,“我个人是这种趋势的一部分;我已经完全从Perl转向Python,一门年轻的语言,有点象应用程序但是有更清晰的设计...我期望在未来Perl相关的重要性可能降低,即使啊的开发人员的基数在绝对数字上持续增长,因为他的竞争者的增长将比Perl的竞争者快的多“.
Perl有很多优点,但决不清晰----实际上使用Perl的黑客用“混乱“作为称赞的话.但是对于perl的攻击者,甚至是Python的支持者,混乱犯了编程的大忌.
我最近从perl的用户(同时也是Python的用户--但他们并不总是喜欢Python)听到的最多的一个抱怨是-当你有一段时间没有接触Perl后,即使你自己的Perl代码也很难再读懂--更别提别人的Perl代码了。,“GuidoVanRossun,Python的主要作者说,“对于过去的或者不熟悉的Python代码这很少是一个问题.当Perl的支持者极力提倡Perl用户写清晰的代码,并且较新的Perl版本包含一些帮助特性,Perl坚持“混乱”的价值意味这总是Perl的一个问题。”
在某中程度上,Perl/Python的争论只是无休止的那些为了体现黑客特性争夺主导权的比赛的另一个例子.但关键差别是真实的---那些探询纯正和那些坚持工具的有效性之间的差别.“纯正语言的支持者总是说Perl是丑陋的“,O’Reilly说,“说Perl是一个’厨房水槽’式的语言,说Perl会被他的自重压垮,而Perl继续比其他脚本语言的合集解决越来越多的问题“.
“我们出售关于Perl和Python的最畅销书.“...说,“并且我们继续看到Perl使用情况的健康增长,而Python的增长很平常.Perl的使用比Python高的多,至少根据书籍销售的情况来看是这样.“
“Perl并没有经历任何大规模的使用者分流”,Salzenberg说,“至多你可以说,在Perl继续发展的同时其他也在发展.这对Perl是很好的.当有许多事情需要胶合,一门粘贴语言是最有用的...Perl将继续发展以使得任何事情可以与其他任何事情相连接.”
Wall让其他人反击对Perl的攻击.当我询问他对于Raymond的直接的批评的反应是,他发给我一份在线email,其中引用了托尔斯泰的话:“这真奇怪,托尔斯泰写道,漂亮就是好的这个错觉是如此地完美!“
对于wall,好就是作好连接,这正是他自身的美丽所在.
Perl不但连接了C程序员的世界和UnixShell的世界,或者连接了计算机世界的数字服务和人类现实不成熟的混乱.Perl还在自由软件世界的两个极端之间架设了一座桥梁,一方是Raymond为代表的商业实用主义,他们支持自由软件因为它作出了最好的软件;一方是自由软件基金的RichardStallman领导的激进的道德学家,他们相信自由软件是绝对好的.
那些希望修改或者改变perl的人们可以通过在两种不同的许可声明下的限制达到这个目的.他们可以在GPL下操作---Stallman的FSF制定的非常严格的许可证,为了保证自由软件总是保持自由.或者他们可以选择Wall自己的“艺术许可证“--一套更宽松的规则的集合,wall说,这意味着“本质上,你可以用Perl做任何你想的事情事情,只要你把艺术的控制权给我就行了.“
它已经不会招致FSF任何过分的不满了,WALL说,但实际上艺术license接近与我在这个问题上的感受,我希望perl能够被使用.
的确是这样.Perl在一个似乎是死路一条的地方开辟了一种可能性---为什么有如此之多的Perl 黑客的一个主要的原因是,当被问到为什么他们喜爱perl,一个简单的回答就是“fun“(有趣)
我问LarryWall为什么认为Perl有趣.“他让你富有创造力“,他说,“他给你众多选择.你常用的计算机语言就象一种训练,他会把你带到他到过的任何地方.Perl就象一辆偏离大路的汽车,将把你带到你想去的地方,即使到那里没有任何正式的道路.“
当你能够利用那种路径搜索的方法, 你就从努力中得到回报.LarryWall,坐在MountainView家中的起居室,抚摩他的小猫,听着回荡在房间中神秘的音乐,就象一个非常高兴的男孩.他对web作出了有价值的贡献,web不会让他忘记它的.
“几乎每一天,都有人会给我写一条消息说我喜欢你发明的那个东西“,LarryWall说,“它改变了我的生命,我曾经讨厌编程--现在编程又是一个快乐的事情.“