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 解譯器、模組、工具和隨附軟體包的活躍開發人員有倦怠和離職的風險,因為沒有適當的動力(並非每個人都同意創建 Perl 7 的必要性)帶來大量額外工作。
  • 社區文化和對 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

添加評論