Perl在TIOBE指数中强势反弹——为何?
短短半年内,Perl第二次重返TIOBE指数前十名,引发人们好奇:为何这种看似长期被边缘化的语言会迎来复兴?以下是它经久不衰的吸引力所在。
2025年9月Tiobe指数前十编程语言:
- Python,25.98%
- C++,8.8%
- C语言,8.65%
- Java,8.35%
- C#,6.38%
- JavaScript,3.22%
- Visual Basic (2.84%
- Go (2.32%
- Delphi/Object Pascal, 2.26%
- Perl, 2.03%
替代指标Pypl编程语言流行度指数基于谷歌搜索语言教程的频率。2025年9月Pypl指数前十名:
- Python, 29.69%
- Java, 14.72%
- C/C++,9.27%
- JavaScript,6.79%
- R,5.26%
- C#,4.81%
- Objective-C, 4.17%
- PHP, 3.34%
- Rust, 2.73%
- Swift, 2.72%
正如深入剖析TIOBE指数的《经得起时间考验的编程语言》所述,Perl被誉为
Perl广泛应用于系统管理、网络编程、网页开发等领域,被誉为“脚本语言界的瑞士军刀链锯”,彰显其多功能性与处理多样化任务的能力.
就TIOBE指数而言,Perl的鼎盛时期出现在2005年,当时曾连续数月位居第三。其历史最低排名是2025年1月的第32位,而本月已回升至第10位。
据维护该指数的TIOBE软件公司CEO保罗·詹森透露:
Perl排名如此靠前的技术性原因在于其在亚马逊平台拥有海量书籍资源。其书籍数量是PHP的4倍,更是Rust的7倍。
审阅I Programmer网站侧边栏的书籍后,我只能说Perl确实拥有强大的书籍支持体系。同时我也认同詹森对Perl人气回升的另一项推测:
_一可能的解释是Perl 5正逐渐被视为真正的Perl。容我说明:拉里·沃尔于2000年前后宣布开发全新语言Perl 6。该版本的实现耗时数十年(第二系统效应),甚至导致语言更名为Raku。在此期间,Perl 5的旧版开发基本停滞,使Perl社区陷入迷茫。与此同时,优秀的替代方案Python日趋成熟,众多Perl程序员转投Python阵营。如今二十五年过去,Perl 6/Raku在TIOBE指数中仅排第129位,在编程世界已毫无存在感。反观Perl 5,近期发布频率显著提升,正重新获得关注。
詹森随即发问:
您如何看待Perl的意外复苏?是否知晓可能原因?欢迎分享见解!
作为资深Perl开发者,我有几点见解,首先是Perl强大的文本处理能力…
即便在人工智能时代,一切仍由文本格式主导;文本依然是王者。XML、调用API的JSON、YAML、Markdown、日志文件…这意味着我们仍需处理、转换、清理和提取文本内容。Perl凭借其第一公民级别的正则表达式、CPAN上丰富的文本处理库以及对所有最新标准的完整Unicode支持,过去是、现在仍是最佳选择。简而言之,没有任何其他语言能匹敌Perl的文本处理能力。
为证明我的观点,以下是我近期亲身实践的案例。在某个持续进行的项目中,我仅用十行左右代码就通过Parse::RecDescent库实现了对特殊GS1 Datmatrix二维码格式的解析——只需定义语法规则即可。而其他语言的“竞争者”则不得不依赖现成的商业库,既要承担成本,又要费心理解新库的API。
再者,Perl与Linux及shell编程的深度协同效应。职业生涯中我见过许多开发者全程在Windows环境工作,从未接触过命令行。这种局限性令人遗憾——他们未能领略UNIX哲学的精髓,未能体验直接操作操作系统的乐趣,也未曾经历过为调试安装或系统服务故障而痛苦挣扎的历程。这些经历能造就更优秀、更全面的开发者。
在这方面,Perl再次成为救星。它既恪守UNIX哲学,又与shell命令深度融合,某种程度上取代了所有shell实用工具——如grep、awk、cut、sort等,将它们的功能整合于一身。它本身被视为shell的扩展,对系统管理员、DevOps工程师及所有贴近系统工作的从业者都极具价值。更不用说它默认搭载于所有Linux发行版,在Windows系统中也可通过WSL运行。
再谈语法。Perl常因“语法怪异”遭人诟病,但拥趸们却盛赞其表达力与强大功能——作为高级、丰富且上下文敏感的语言,Perl凭借宽松规则与开放特性,让编码表达充满灵活性与敏捷性(正如其信条“完成任务不止一种方式”)。
Perl 天生的表达方式最具代表性的示例当属:“next unless defined $cat”。这段代码与英语语法结构何其相似?还有比这更自然的表达方式吗?
将Perl称为“脚本语言”实属误称。它是一门功能完备的通用编程语言。这个称谓的由来,或许源于Perl与Linux shell的深度集成,其能快速编写一次性系统管理脚本和单行命令的特性,以及缺乏人们习惯的面向对象模型。
典型例证在于Perl经典的OOP模型缺乏真正的私有性。设计上允许外部直接调用类内部任意方法。为此,所谓的“私有”方法/子程序需用下划线前缀标记(如_mymethod),仅作为提示用户勿触碰该方法的标记——因其可能改变类内部结构。
然而最新版本的Perl将其OOP模型提升至Java等语言的水平,实现了某种历史逆转。Java在早期就具备getter/setter/私有方法等规范的OOP特性,并在8.0版本通过Streams实现了函数式编程功能;而Perl自诞生起就拥有函数式编程能力(如’map’、’grep’等),却直到近年才获得“规范”的OOP模型。
开源社区的支持是Perl相较于单一供应商控制语言的另一优势——后者往往因这种紧密关系而陷入困境,例如VB6被“轻率地”弃用,或是IronRuby和IronPython被彻底摒弃。
最后回归书籍话题。Perl相关书籍不仅数量庞大,更以卓越品质著称;这些著作出自真正睿智的作者之手。我怀疑这是否与语言本身直接相关。早在2011年,我也曾撰写过《学习Perl第6版》等书评:
这本被昵称为“骆驼”的经典著作几乎已成传奇,我的书评不仅剖析了Perl语言,更揭示了书籍本身的价值。《学习Perl》是三位Perl界巨擘——Randal L. Schwartz、Tom Phoenix与brian d foy——联袂创作的杰作。他们著作等身,例如我们曾点评过的《高效Perl编程》《中级Perl》及《Perl编程艺术》(即骆驼书)。他们深谙如何同时满足初学者与进阶者的需求。
尽管Perl拥有丰富的文献资源、强大的功能和广泛的应用场景,但现实是人们往往忽视其真正潜力,反而沦为“害怕错过”心理的俘虏,盲目追逐新潮技术。
期待Perl重返TIOBE前十榜单,能让更多人重新认识其核心价值——成熟可靠的特性。
