拉里·沃尔:编写语言的语言学家
大多数编程语言的设计都像大教堂——规划严密、正交、自上而下地强加。拉里·沃尔则像建造大学校园一样构建了他的语言。“Perl 就是草地上的那些小径,”他曾指着学生在草坪上踩出的、本应铺设人行道的地方解释道,“那些先于人行道存在的小径,就是 Perl 从中借鉴了思想的先前计算机语言。”作为一名受过训练但从未完成预定田野工作的语言学家,沃尔在计算机领域做了一件前无古人的事:他像设计人类语言一样设计了一种编程语言,而它成为了互联网早期使用最广泛的工具之一。
从化学到语言
拉里·阿诺德·沃尔(Larry Arnold Wall)于 1954 年 9 月 27 日出生在加利福尼亚州洛杉矶,并在那里及华盛顿州布雷默顿长大。他于 1976 年进入西雅图太平洋大学,在化学、音乐和医学预科之间徘徊,之后在大学计算中心工作,并最终获得了自然语言和人工语言这一极其契合的学科的学士学位。这种结合预示了后来的一切。
溜走的语言
沃尔随后在加州大学伯克利分校攻读语言学研究生,他和妻子怀揣着一个特定的梦想进行训练:寻找一种未书写的语言(可能在非洲),并为其创建一套书写系统。健康原因终结了那个计划。但语言学训练从未离开过他。当其他计算机科学家转向数学时,沃尔转向了人类语言的结构。
Perl
研究生毕业后,沃尔在 NASA 喷气推进实验室工作,随后在系统开发公司(后来成为 Unisys 的一部分)工作,在那里他创建了 Perl 编程语言及其解释器。在此过程中,他编写了供一代系统管理员使用的软件:Usenet 新闻阅读器 rn,以及最重要的 patch 工具,该工具允许程序员对源代码应用更改,至今仍是软件开发的基础。但 Perl 是他的丰碑——一种能够将文本、文件和系统缝合在一起的“胶水”语言,它推动了早期万维网的巨大份额。
作为语言学的语言设计
Perl 的独特之处在于沃尔的信念:编程语言应该像自然语言一样行事。他从语法中借用词汇,用“名词”、“动词”和“话题化词”等术语描述结构,而不是使用传统的行话。他引入了源自标记语言学的上下文敏感性,使得同一个结构在“标量”上下文与“列表”上下文中表现不同——正如沃尔所言,人类会找到一种“在特定上下文中理解事物”的方法。他拒绝了理论家所钟爱的正交纯粹性,转而支持实用主义,认为语言“应该是一种非道德的艺术媒介”,在不强加纪律的情况下为用户提供工具;那些想要严谨的人可以选择严谨。他还彻底拒绝了自上而下的设计:“我不是那种可以坐下来从零开始设计整个系统的人,”他承认,更喜欢一种进化式的方法,即语言随着满足实际需求而增长。
作为代码一部分的文化
沃尔明白,语言不仅仅是语法和语义——它是围绕它形成的整个文化。他将精力投入到社区中,监控讨论并参与 USENET 以塑造 Perl 的身份。他与人合著了《Programming Perl》(普遍被称为“骆驼书”),该书由 O'Reilly 出版,使他成为该语言的全职管理者。他作为拿撒勒人教会成员的基督教信仰甚至播下了其词汇的种子:Perl 暗指《马太福音》中的“重价的珠子”,其继任者 Raku 的设计文档被称为“启示录”(apocalypse)和“注释”(exegesis)。
为什么拉里被称为天才
沃尔的天才在于构思的真正原创性,而非纯粹的计算,应该诚实地描述其本质。其具体的创造性品质是跨学科的综合:他是第一个将描述语言学的工具(上下文、进化、表达冗余、用户至上)系统地应用于编程语言设计的人。采访者称赞他“在将编程语言设计视为一门语言学科方面具有真正的原创性”,其结果通过让人们掌握有用的子集而不是全部,平衡了表达能力与可学习性。这是一项真正的智力贡献,Perl 的巨大采用率就是证明。诚实的反对意见是,这种哲学正是许多计算机科学家认为的缺陷。Perl 的宽容和“不止一种实现方式”的理念产生了如此独特的代码,以至于它成为了一个笑话,被批评为难以维护,随着更简洁的继任者出现,该语言逐渐衰落。沃尔不是深奥算法或形式理论的发明者;他的天赋在于品味、机智和语言学家对人类实际表达方式的敏锐洞察。这是否构成天才取决于一个人是否像重视数学一样重视设计哲学——但其原创性本身毋庸置疑。
遗产
拉里·沃尔改变了一代人对人类语言与机器语言之间关系的看法。他编写的工具(如 patch)在几十年后仍然静静地不可或缺,Perl 关于上下文和表达能力的设计思想波及到了随后的语言。他证明了程序员也可以是语言学家、幽默家和哲学家,并且一种像草地小径一样构建的语言可以承载世界上惊人数量的工作。在一个推崇严谨的行业中,他为这种混乱、进化、深刻的人性化替代方案做出了持久的辩护。


