Perl背后的故事:Nathan Torkington

所以你使用Perl,你可能知道它是“Larry Wall和成千上万的人”带来的。但你了解这些构成Perl开发团队的人吗?每个月,我们将推出一篇关于Perl Porter的访谈,让你了解Perl背后的那些人。这次,www.perl.com编辑Simon Cozens与长期Perl开发者、Perl社区支柱Nathan Torkington进行了对话。

你是谁?你做什么工作?

我是Nathan Torkington。我的日常工作是O'Reilly and Associates的图书编辑。在那之前,我曾为Tom Christiansen工作,担任培训师。Perl爱好者可能知道我是《Perl食谱》(与Tom合著)的合著者,是《Perl会议》(今年是开源大会)的日程策划者,或者是perl6的项目经理。

你编程Perl有多长时间了?

自从90年代初以来。我记不清我是什么时候第一次开始用Perl编程的。我想是在1992年底,当时我在做gopher和早期的互联网。在那段时间,我们不说“互联网”,我们只是在尝试建立一个校园信息服务。我下定决心,并推动(并成功获得)使用www作为CWIS的基础,尽管Gopher更成熟,上面有更多内容。

使用CERN httpd和行模式浏览器,我正在为将一些数据源连接到互联网而工作。Perl当然是那个项目的语言。我使用过SGML、逗号分隔文件,甚至一两次使用oraperl(尽管我害怕并讨厌Oracle,但这只发生过一两次!)。

所以我开始使用Perl是在做网站。1996年我搬到美国后,我在一家ISP担任系统管理员。在那里,我很快成了Perl专家,为内部和客户编写管理脚本和CGI应用程序。1998年我离开时,我们正在使用mod_perl,有一批优秀的Perl程序员。

你在学习Perl之前,是否编写过其他类型的程序?

我8岁或9岁时开始学习Commodore BASIC,然后是6502汇编语言。我在IBM PC上学习了Pascal,以及C和8086汇编语言。在大学里,他们又教我们Pascal,然后是Modula-2或Modula-3(不管是什么,它是在一个经常崩溃的MetroWerks Mac IDE中学习的)。通过Pascal,以及他们最终重新教授的C,我掌握了指针(是的,如果花了我大约六年的时间来学习指针并意识到为什么我的程序有时会死,那么我并不是一个很好的汇编语言程序员)。

是什么让你开始学习Perl的?

是互联网。在我编写了一些程序之后,我真的很喜欢它。这个语言很有趣,文化也很好。能够在5分钟和20行代码内完成以前用C需要两天的工作,真是太令人兴奋了。在某种程度上,我怀念那种乐趣——多年来(尤其是在写食谱的过程中)我学到了很多关于如何在Perl中做事的知识,再也没有什么有趣的新特性可以探索了。而且我已经习惯了能在5分钟和20行代码内完成事情——现在当我这样做的时候,我已经不再感到高兴了——我 期望 能做到!

为什么你仍然更喜欢Perl?

它可以完成我想做的任何事情,而且我已经很熟悉它了。如果我不是Perl程序员,我可能会对Ruby或Python感到满意。但是只要还有Perl,我就看不到熟悉那些语言的理由,就像我熟悉Perl一样。

这并不是说我认为每个人都应该只用Perl编程。我的朋友朱尔斯学习了多种语言。他在1992年为微软COBOL编写扩展,并在C++和Java中完成了重要的项目。他在一家承包公司工作,那里的项目并不总是适合Perl。我对这一点完全无所谓。

现在你用Perl做什么?你最后写的Perl程序是什么?

当我成为培训师时,很高兴停止全职编程。从那时起,我开始怀念使用Perl。现在我只写工具和基本的网络应用程序。例如,我最近写的一些项目包括

  • 一个小型基于网络的数据库系统,用于跟踪我正在编辑的书籍—作者地址、状态、剩余章节数量等。这是一个CGI程序,带有自制的模板和DBM数据库。
  • 一些小型工具,用于为Perl会议论文集解构Framemaker文件。
  • 将Python PDF生成库翻译成Perl。这还不完整,因为我遇到了需要研究的Python代码。

是什么让你开始参与Perl的开发?

觉得自己应该了解得更多。在某种程度上,这可能是不安全感——“当然,你了解关于Perl语言的所有内容,但你能否区分SV和SUV?”所以我开始探索内部边缘。

你还记得你的第一个补丁吗?

我的第一个(也可能是唯一一个;-)真正的补丁是对toke.c进行注释,即分词器。确定双引号字符串和正则表达式结束位置的代码很有趣(这里的“有趣”是指“痛苦”)。尽管我对内部工作的底层(数据结构)和高层原理(编译到操作树,解释)了解很多,但我仍然缺少很多中间地带,这实际上使我能够修复错误。

你现在通常为Perl开发做什么?

没有什么,我是一个管理者:-) 我正在慢慢引导拉里完成《启示录》,从那将产生Perl 6。对于Perl 5,我更多地幕后工作。我经常被要求去催促或挑刺,或者以其他方式从别人那里得到结果。

谈到Perl 6,你认为项目到目前为止进行得怎么样?

去年我天真地希望我们会为TPC有一个alpha版,但那没有发生。相反,我们有拉里的宣言开始。虽然Perl 6的进展比预期慢,但Perl 5得到了新的活力!Jarkko像疯子一样修补,有新的内部黑客涌现,每周都有新的模块(如SOAP::LiteInlineAttributes::*Filter::Simple等)问世。

这并不是说我们所有人都被拉里卡住了。我们知道内部工作的大致形状(以及许多细节)。丹在Perl设计文档中指定这些,你亲自通过修补Perl 5实现了几个预期的Perl 6语法功能。(您可以下载Perl 6模拟器并尝试Perl 6。)如果您还没有看到Marcel Grunauer的Perl 6类似模块页面,请查看!

因此,Perl 6和Perl 5都有很多活动。

最后,Perl最好的地方是什么,最糟糕的地方是什么?

最好?它重视程序员乐趣的程度与其他任何事情一样。Perl以成为应该有趣的语言而自豪。看到很多人 burn out,乐趣是件好事。乐趣让你保持理智,让你保持兴趣,让你继续前进。

最糟糕?可能是内部。它们很丑陋,就像洛夫克拉夫特式的恐怖一样。我们真的希望Perl 6有一个更加优雅的内部。理想情况下,用Perl 6的内部编程几乎和用Perl 6本身编程一样简单。这是有Perl 6的一个主要原因——一个更干净的核心。

标签

反馈

这篇文章有问题?请通过在GitHub上打开一个issue或pull request来帮助我们。