Perl 7 计划的风险分析

丹书(丹·布克),支持CPAN中70多个模块, 进行了分析 实施建议时的风险 Perl 7 实施计划。 让我们回想一下,在 Perl 7 分支中,他们打算默认启用严格检查模式“strict”,激活“使用警告”并更改一些影响与旧代码兼容性的参数值。

预计这一更改将破坏 Perl 7 中的大量 CPAN 模块,并需要对每个模块进行更改,这在目标年内实施是不现实的,特别是因为并非所有作者都可用。 Perl 7 中的更改还将阻止使用旨在支持不仅仅是最新版本 Perl 的模块。

此外,还提到了以下可能出现的问题:

  • 由于为 Perl 7 编写的手册中的一些示例和建议在 Perl 5 中不起作用,初学者会感到困惑。
  • 对单行发展的影响尚未研究。 Perl 不仅广泛用于编写大型脚本,而且还用于根据管理员的需要创建单行脚本和短脚本,其中不需要使用严格模式。
  • 发行版在同时提供可执行文件来运行 Perl 7 和 Perl 5 脚本方面存在问题(预计 Python 2 和 3 也会重演这个故事)。
  • 为 Perl 7 编写的代码不必特别指出它不能在 Perl 5 中运行;许多开发人员不会指定最低支持版本。
  • 基于 Perl 5 的各种实用程序和模块将需要更正。
  • 由于资源的重新分配,Perl 7 的准备工作将冻结 Perl 新功能的开发一段时间。
  • 由于出现大量额外负载而没有适当的动力(并非每个人都同意创建 Perl 7 的需要),因此存在倦怠和 Perl 解释器、模块、工具和随附软件包的活跃开发人员离开的风险。
  • 社区文化和对 Perl 稳定性的态度将从根本上改变。
  • 由于缺乏根本性的新东西,Perl 7 与现有代码不兼容的批评将削弱该语言的权威。

为了消除负面后果,丹·布克提出了他的计划,这将避免兼容性差距。 建议保持相同的开发流程,而不是5.34.0,指定下一个版本号7.0.0,其中我们将禁用对间接对象调用表示法的支持并启用一些新功能,例如try/catch。 建议通过“use v7”编译指示在代码中显式指定 Perl 版本来规范“use strict”和“use warnings”等更改(“use v5.12”和较新版本已默认启用 strict) )。

默认情况下,建议解释器保留一组与 Perl 5 没有区别的参数,但清理之前使用的过时语法的标准过程除外。 根据现有的弃用规则,可以继续停止对旧功能和已弃用语法的支持。 建议在代码中使用新的 Perl 7 元素,并使用“use v7”编译指示来区分新旧样式。

来源: opennet.ru

添加评论