Risikoanalyse für die Perl 7-Initiative

Dan-Buch (Dan Buch), unterstützt mehr als 70 Module in CPAN, hat die Analyse durchgeführt Risiken bei der Umsetzung des Vorschlags Implementierungsplan für Perl 7. Erinnern wir uns daran, dass im Perl 7-Zweig beabsichtigt ist, standardmäßig den strengen Prüfmodus „streng“ zu aktivieren, „Warnungen verwenden“ zu aktivieren und den Wert einer Reihe von Parametern zu ändern, die sich auf die Kompatibilität mit altem Code auswirken.

Es wird erwartet, dass die Änderung eine große Anzahl von CPAN-Modulen in Perl 7 kaputt macht und Änderungen an jedem Modul erfordert, was unrealistisch ist, sie innerhalb des Zieljahres umzusetzen, insbesondere da nicht alle Autoren weiterhin verfügbar sind. Die Änderungen in Perl 7 verhindern auch die Verwendung von Modulen, die mehr als nur die neueste Version von Perl unterstützen sollen.

Darüber hinaus werden folgende mögliche Probleme genannt:

  • Verwirrung unter Anfängern aufgrund einiger Beispiele und Empfehlungen aus Handbüchern, die für Perl 7 geschrieben wurden und in Perl 5 nicht funktionieren.
  • Die Auswirkungen auf die Entwicklung von Einzeilern wurden nicht untersucht. Perl wird nicht nur aktiv zum Schreiben großer Skripte verwendet, sondern auch zum Erstellen von Einzeilern und kurzen Skripten für die Bedürfnisse von Administratoren, bei denen die Verwendung des strikten Modus nicht erforderlich ist.
  • Distributionen haben ein Problem mit der gleichzeitigen Bereitstellung ausführbarer Dateien zum Ausführen von Perl 7- und Perl 5-Skripten (die Geschichte wird sich voraussichtlich mit Python 2 und 3 wiederholen).
  • Für Perl 7 geschriebener Code muss nicht ausdrücklich darauf hinweisen, dass er nicht in Perl 5 läuft; viele Entwickler geben keine unterstützte Mindestversion an.
  • Verschiedene auf Perl 5 basierende Dienstprogramme und Module erfordern Korrekturen.
  • Die Vorbereitung von Perl 7 wird aufgrund der Neuzuweisung von Ressourcen die Entwicklung neuer Perl-Funktionen für einige Zeit einfrieren.
  • Es besteht die Gefahr eines Burnouts und des Abgangs aktiver Entwickler des Perl-Interpreters, der Module, Tools und Begleitpakete aufgrund des Auftretens einer großen zusätzlichen Last ohne entsprechende Motivation (nicht alle sind mit der Notwendigkeit, Perl 7 zu erstellen, einverstanden).
  • Die Kultur in der Community und die Einstellung zur Stabilität von Perl werden sich grundlegend ändern.
  • Die Autorität der Sprache wird durch die Kritik untergraben, dass Perl 7 mangels etwas grundsätzlich Neuem mit bestehendem Code inkompatibel sei.

Um die negativen Folgen auszugleichen, schlug Dan Book seinen Plan vor, der eine Kompatibilitätslücke vermeiden soll. Es wird vorgeschlagen, den gleichen Entwicklungsprozess beizubehalten und anstelle von 5.34.0 die nächste Release-Nummer 7.0.0 zuzuweisen, in der wir die Unterstützung für die Notation indirekter Objektaufrufe deaktivieren und einige neue Funktionen wie Try/Catch aktivieren. Es wird vorgeschlagen, Änderungen wie „use strict“ und „use warnings“ durch die explizite Angabe der Perl-Version im Code über das Pragma „use v7“ zu regulieren (strict ist bereits standardmäßig für „use v5.12“ und neuere Versionen aktiviert). ).

Standardmäßig wird empfohlen, dass der Interpreter eine Reihe von Parametern beibehält, die sich nicht von Perl 5 unterscheiden, mit Ausnahme des zuvor verwendeten Standardprozesses zur Bereinigung veralteter Syntax. Die Unterstützung älterer Funktionen und veralteter Syntax kann gemäß den bestehenden veralteten Regeln weiterhin eingestellt werden. Es wird vorgeschlagen, die Verwendung neuer Perl 7-Elemente im Code zu signalisieren und neue und alte Stile mithilfe des Pragmas „use v7“ zu trennen.

Source: opennet.ru

Kommentar hinzufügen