我们曾是巫师——《Learning Perl》(1993)的前言
Perl 作为“巫术般”的表达式语言
- 许多人记得 Perl 非常适合“意识流”式编程:想法几乎不加修饰地直接流入代码。
- 它灵活的语法、符号变量,以及强大的正则表达式,让它像是程序员思维的延伸,尤其适合文本处理和胶水代码。
- 有人将此与它在实用语言学中的根源,以及对上下文和歧义的容忍联系起来,这与那些更形式化设计的语言不同。
生产力 vs. 可维护性
- 多个轶事描述了失败的、笨重的 Java 项目被小型 Perl 团队,甚至单个开发者,在几周内替代。
- 支持者认为,糟糕的代码是人的问题,不是语言的问题;只要有纪律,就能写出高质量、可维护的 Perl。
- 批评者则反驳说,这门语言的表达力和许多锋利的边角会主动鼓励“牛仔式编码”和只能写不能读的代码,尤其是在大型、长期运行的系统中。
语言设计与安全性
- 粉丝强调对单元测试、strict 模式、污染检查(tainting)/安全模式,以及长期向后兼容性的早期且强有力的支持。
- 其他人则批评其后加上的面向对象、笨拙的错误处理、信号处理、缺少出色的 REPL,以及概念上的臃肿。
CPAN、生态与依赖蔓延
- CPAN 被称赞为早期、典范式的互联网原生包生态系统,拥有良好的工具、文档和测试。
- 也有人担心“同一件事有多种做法”导致许多重叠模块(多种面向对象系统、JSON 库、HTTP 客户端)在同一个运行时中并存,使依赖关系变得复杂。
Perl vs. Python 及其他语言
- 有人认为 Perl 和 Python 非常相似,但优化目标不同:Perl 旨在让计算机适应人,Python 则相反。
- Perl 被视为更适合简洁的一行命令和即席流式处理;Python 则更适合大型系统和团队,结构更清晰。
- 人们提到 Perl 衰落的原因包括一家大型 Web 公司标准化采用 Python、科学/数据技术栈,以及 Perl 6 / Raku 周围的混乱和拖延。
当前的利基地位、无处不在与遗产
- Perl 仍然广泛安装在类 Unix 系统上,在需要跨平台脚本、而 sed/awk 或 shell 语法存在差异时,仍然很受青睐。
- 仍有几位评论者经常使用 Perl 编写小到中型脚本,但几乎看不到新的绿地项目机会。
- 人们记得关于 Perl 的书籍和杂志异常有趣、充满主观立场,并对许多程序员的职业生涯产生了影响。